#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
В идеальном сценарии вы также проверяете подписи / контрольные суммы в загруженном файле, чтобы убедиться, что у вас нет поврежденного архива