Не могу установить python 3.6.5 - PullRequest
0 голосов
/ 14 марта 2019

Я пытаюсь установить python 3.6.5 из исходного кода и связать его с openssl. Это мой скрипт:

# new openssl install
curl https://github.com/openssl/openssl/archive/OpenSSL_1_1_1a.zip | tar xz && cd OpenSSL_1_1_1a && ./config shared --prefix=/usr/local/ enable-weak-ssl-ciphers && make && make install

# Python install script
export LDFLAGS="-L/usr/local/lib/"
export LD_LIBRARY_PATH="/usr/local/lib/"
export CPPFLAGS="-I/usr/local/include -I/usr/local/include/openssl"
apt-get update
apt-get install build-essential checkinstall -y
apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev -y
cd /home/web/
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz | tar xzf Python-3.6.5.tgz && cd Python-3.6.5 
./configure --prefix=/usr/local/ 
make install

Когда я пытаюсь запустить его из загрузок, используя: ~/Downloads$ sudo bash custom_python.sh

Я получаю:

tar: Child returned status 2
tar: Error is not recoverable: exiting now
Resolving www.python.org (www.python.org)... 151.101.16.223, 2a04:4e42:4::223
Connecting to www.python.org (www.python.org)|151.101.16.223|:443... connected.
ERROR: cannot verify www.python.org's certificate, issued by ‘CN=DigiCert SHA2 Extended Validation Server CA,OU=www.digicert.com,O=DigiCert Inc,C=US’:
  Unable to locally verify the issuer's authority.
To connect to www.python.org insecurely, use `--no-check-certificate'.
custom_python.sh: line 13: ./configure: No such file or directory
make: *** No rule to make target 'install'.  Stop.

Что это вызывает? Как это решить? Я могу открыть URL-адрес Python, предоставленный в Wget обычно из браузера.

1 Ответ

0 голосов
/ 15 марта 2019

Как прокомментировал другой пользователь, wget не записывает данные в стандартный вывод по умолчанию. Есть два способа исправить ваш скрипт:

wget -O- https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz | tar xzf Python-3.6.5.tgz && cd Python-3.6.5

В этом случае вы выводите Wget на stdout. Однако мне, как правило, не нравится этот метод. Не очень хорошая идея передавать данные напрямую по сети. Есть много вопросов безопасности и надежности.

Вместо этого вы должны сделать это:

wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz && tar xzf Python-3.6.5.tgz && cd Python-3.6.5

В идеальном случае вы также проверяете подписи / контрольные суммы в загруженном файле, чтобы убедиться, что у вас нет поврежденного архива

...