Jak mogę zaktualizować Python do wersji 2.7.9 na Ubuntu 14.4?


32

Ubuntu 14.4 jest wyposażony we wbudowany Python 2.7.6, ale chciałbym go zaktualizować do wersji 2.7.9 (ma funkcje bezpieczeństwa, których chcę).

Czy to w ogóle możliwe? Jeśli tak, jak można to osiągnąć?


2
Upstream wersja Pythona 2.7 zawsze będzie w wersji 2.7.6. Sprawdź numer wersji dystrybucji, a następnie sprawdź dziennik zmian ( packages.ubuntu.com/source/trusty/python2.7 ), aby sprawdzić, czy aktualizacje zabezpieczeń zostały przeniesione.
Roger Sherman,

Odpowiedzi:


16

Możesz użyć pyenv:

 git clone https://github.com/pyenv/pyenv.git ~/.pyenv
 git clone https://github.com/pyenv/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv

Następnie dodaj

   #   for PyEnv
  export PYENV_ROOT="$HOME/.pyenv"
  export PATH="$HOME/.pyenv/bin:$PATH"
  export PATH="$HOME/.pyenv/shims:$PATH"
  eval "$(pyenv init -)"

do .bash_profile, wtedy możesz zobaczyć wersję Pythona, którą chcesz zainstalować lub zaktualizować:

pyenv install --list

chcesz python 2.7.10? możesz spróbować:

 pyenv virtualenv 2.7.10

Mam nadzieję, że może ci to pomóc.


W Ubuntu ten blok działa lepiej w ~ / .bashrc zamiast ~ / .bash_profile. Następnie wykonaj polecenie „$ SHELL”.
brendan

31

ppa: fkrull / deadsnakes to najnowsza wersja python2.7

sudo add-apt-repository ppa:fkrull/deadsnakes
sudo apt-get update
sudo apt-get upgrade

Uaktualni Python do wersji 2.7.10


1
wypróbowane w maszynach programistycznych (wszystkie komputery stacjonarne 14.04), bardzo dobra alternatywa.
Yonsy Solis,

Ale okazało się, że nie jest kompatybilny z moją aplikacją.
Jak

4
Uważaj, że poleganie na nieoficjalnym pakiecie i / lub PPA, szczególnie w przypadku czegoś tak podstawowego jak Python w Ubuntu, omija ważne procesy bezpieczeństwa i może prowadzić do wielu problemów. Niektóre pakiety wyraźnie zależą od oficjalnych pakietów lub wersji. Zamiast tego możesz chcieć użyć virtualenv z nowszą wersją Pythona tylko dla aplikacji, których potrzebujesz. Zobacz także Uaktualnienie do Python 2.7.9 na Ubuntu 14.04 LTS i stwórz własny pakiet .deb do wdrożenia - Renoir Boulanger
nealmcb

Dobry. Masz rację. Kilka miesięcy temu zrezygnowałem z podejścia.
Jak

3
Spowoduje to uaktualnienie wszystkich twoich pakietów.
mpen

10

Nie jestem fanem poprzednich odpowiedzi sugerujących instalację z różnych umów PPA. Nie zamierzano braku szacunku, ale nie znam ludzi, którzy je zbudowali i nie mam pojęcia, co może tam być. W każdym środowisku, w którym ktoś musi odpowiedzieć pracownikowi ochrony, taka praktyka byłaby niezadowolona.

Właśnie odkryłem, że pobranie 2.7.9 ze źródła i instalacja go obok siebie to dobry początek. Ten niesamowity post na blogu opisał kolejne kroki. (odtworzono tutaj, aby zachować zgodność z wytycznymi dotyczącymi przepełnienia stosu)

wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
tar xfz Python-2.7.9.tgz
cd Python-2.7.9/
./configure --prefix /usr/local/lib/python2.7.9
make
make install

Sprawdź, czy wersja działa

/usr/local/lib/python2.7.9/bin/python -V
Python 2.7.9

Teraz, gdy mam zainstalowaną wersję 2.7.9, mogę zadzwonić bezpośrednio lub dowiązać do niej z dowolnego miejsca. (lub skopiuj go do virtualenv itp.)

I zauważ, że przybyłem tutaj z sytuacji, w której otrzymywałem niebezpieczne ostrzeżenia na platformie i brakujące ostrzeżenia SNI. Co mnie tu doprowadziło . Wyobrażam sobie, że wiele osób znajduje to pytanie na tej samej ścieżce. A jeśli właśnie dlatego tu jesteś, ten fragment może ci się przydać

pip install urllib3[secure]

To jest właściwie lepsza odpowiedź, szczególnie jeśli już używasz virtualenv. Powód uważam, że tak jest lepiej, ponieważ nie polega on na aplikacjach ani repozytoriach stron trzecich, które mogłyby uszkodzić coś innego.
Andre

3

Oto nowe uaktualnione repozytorium strony trzeciej:

sudo add-apt-repository ppa:jonathonf/python-2.7
sudo apt-get update
sudo apt-get install python2.7
python --version

2

Możesz przejść do python.org, pobrać kompilację pliku .tar.gz i zainstalować ją. Będziesz potrzebował podstawowych narzędzi do skompilowania kodu źródłowego. Nie pamiętam, czy pakiet „build-essential” wystarczy, ale spróbuj.


2

Wersja, którą chcesz, jest już w Ubuntu, w wersji Vivid (wcześniejszej). Jeśli jesteś odważny, możesz mieszać wersje i instalować wersję Pythona Vivid pod Trusty. Poniżej znajduje się ogólne rozwiązanie, które działa na niektórych pakietach, nie mogę tego zagwarantować w Pythonie. Szanse wynoszą ~ 50/50, że się uda. Jeśli jednak znajdziesz odpowiednie repozytorium backportów dla 14.04 z wymaganą wersją pakietu, to powinien być lepszym wyborem.

  1. Masz w swoim wierszu „... zaufaną linię główną” /etc/apt/sources.list, skopiuj ją dwukrotnie, zmieniając „wierną” na „utopiczną” i „żywą”.

  2. Uruchom apt-get updatei wtedy apt-get -t vivid install python2.7. Przejrzyj zależności zainstalowane przed kontynuowaniem. Przerwij aktualizację, jeśli podejrzewasz uszkodzenie systemu (usunięte ważne pakiety itp.).

  3. Usuń lub zaszyfruj dwie linie z /etc/apt/sources.list.

Nigdy nie rób tego na maszynach produkcyjnych. Wykonaj kopię zapasową systemu operacyjnego i przygotuj nośnik rozruchowy, aby go przywrócić w razie potrzeby. Spodziewaj się problemów z aktualizacjami. Zostałeś ostrzeżony.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.