Не удается установить python 3.6.5

#python #openssl #python-3.6 #wget

#python #openssl #python-3.6 #wget

Вопрос:

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

 # new openssl install
curl https://github.com/openssl/openssl/archive/OpenSSL_1_1_1a.zip | tar xz amp;amp; cd OpenSSL_1_1_1a amp;amp; ./config shared --prefix=/usr/local/ enable-weak-ssl-ciphers amp;amp; make amp;amp; 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 amp;amp; 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. В отличие от этого curl , wget по умолчанию загруженные байты не записываются в стандартный вывод. Я думаю, вы хотите, amp;amp; а не | между wget и tar ?

Ответ №1:

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

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

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

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

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

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