Vreau să actualizez versiunea Python de pe boxa mea Linux, dar singura modalitate pe care o știu este dezinstalarea versiunii curente și instalarea celei noi. Sistemul meu este deja actualizat (am actualizat ieri). Voiam să știu dacă există o modalitate de a actualiza un anumit program din linia de comandă, de genul sudo apt-get update <nume-program>
. Știu că această comandă nu există, dar sper că există ceva echivalent.
După cum au observat deja alții, sudo apt-get install package
va instala cea mai recentă versiune disponibilă, înlocuind-o pe cea mai veche, dacă este necesar.
Dar cu unele programe (printre care se numără și Python) situația este oarecum diferită. Unele versiuni majore, foarte și incompatibil-diferite, primesc propriile pachete. De exemplu, Python 2.6, Python 2.7, Python 3.13 trăiesc toate în pachete separate pe Ubuntu.
De o importanță deosebită este faptul că una dintre politicile Ubuntu este aceea de a folosi extensiv Python pentru scrierea de software pentru utilizatorii finali. Deci, de fapt, o parte destul de mare a sistemului este scrisă în Python. În acest moment, codul rulează pe Python 2.6 - deci această versiune este cea implicită la instalare; iar codul nu va rula cu ușurință pe, să zicem, Python 2.7 - deoarece există incompatibilități. Pentru a trece sistemul la Python 2.7 trebuie făcută o lucrare, care constă în actualizarea și retestarea tuturor scripturilor. Acest lucru nu se poate face cu ușurință; adică, nu puteți pur și simplu "trece" sistemul la Python 2.7 și șterge versiunea mai veche.
Dar. dacă nu vă pasă de angrenajele fanteziste ale sistemului dvs. și aveți nevoie doar de un Python mai nou - nu vedeți niciun obstacol. Mergeți și sudo apt-get install python3
și codificați pentru Python 3.x cu curaj; amintiți-vă doar să vă lansați scripturile cu python3
și să folosiți linia shebang #!/usr/bin/env python3
.
apt-get install python
Cred că acest lucru ar trebui să funcționeze. Va trebui să schimbați 'python' pentru a se potrivi cu numele pachetului corespunzător din depozit, evident.