Kompilowanie Pythona 3.7 i na Ubuntu 14.04 nie działa z pudełka. Dzieje się tak, ponieważ Ubuntu 14.04 jest Baselined na OpenSSL 1.0.1 i Python 3.7 Wymaga OpenSSL 1.0.2 i up.

Jakie jest najlepsze rozwiązanie, które nie obejmuje PPA 3RD Party?

0
Daniel Goldberg 9 styczeń 2020, 10:26

1 odpowiedź

Najlepsza odpowiedź

Nie widziałem ani jednego definitywnego rozwiązania, więc postanowiłem napisać jeden na kompilacji ze źródła bez wpływu na resztę systemu.

Potrzebujesz dwóch kroków, jeden jest tworzony własną wersję OpenSSL, a drugi instruuje się Pyenvto używać go.

Aby zainstalować OpenSSL, uruchom następujące polecenia.

mkdir openssl 
cd openssl 
wget https://www.openssl.org/source/openssl-1.0.2u.tar.gz 
tar -xzvf openssl-1.0.2u.tar.gz 
cd openssl-1.0.2u 
./config --prefix=$HOME/openssl --openssldir=$HOME/openssl shared zlib 
make 
make install

Instaluje to najnowszą wersję na OpenSSL 1.0.2 (nie zostanie wydany więcej poprawek) do katalogu domowego. Teraz, aby zainstalować Python 3.7 za pomocą Pyenv.

Po skonfigurowaniu Pyenv Uruchom następujące polecenie

PATH="$HOME/openssl:$PATH" CPPFLAGS="-I$HOME/openssl/include" CFLAGS="-I$HOME/openssl/include/" LDFLAGS="-L$HOME/openssl/lib -Wl,-rpath,$HOME/openssl/lib" LD_LIBRARY_PATH=$HOME/openssl/lib:$LD_LIBRARY_PATH LD_RUN_PATH="$HOME/openssl/lib" CONFIGURE_OPTS="--with-openssl=$HOME/openssl" PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.7.5

Możesz dodać -O2, jeśli chcesz szybsze czasy działania.

3
Daniel Goldberg 21 marzec 2020, 20:55