При установке разных версий Python с помощью утилиты pyenv [1] столкнулся с проблемой, что pyenv не могла скачать пакет с исходным кодом Python из-за ошибки curl при попытке проверки сертификата.
Вот так выглядит ошибка:
$ pyenv install 3.6.15
Downloading Python-3.6.15.tar.xz...
-> https://www.python.org/ftp/python/3.6.15/Python-3.6.15.tar.xz
error: failed to download Python-3.6.15.tar.xz
BUILD FAILED (Ubuntu 20.04 using python-build 20180424)
Results logged to /tmp/python-build.20230917160637.389.log
Last 10 log lines:
/tmp/python-build.20230917160637.389 /mnt/m/aaa8
curl: (60) SSL certificate problem: self signed certificate in certificate chain
More details here: https://curl.haxx.se/docs/sslcerts.html
curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.
Попытки отключить проверки сертификата curl (настройка alias curl="curl -k" [2] и добавление --insecure в конфигурацию curl [3]) ничего не дали. В попытках загуглить решение проблемы наткнулся на пост [4].
Оказывается, можно вручную скачать пакет с исходным кодом Python (по ссылке https://www.python.org/ftp/python/3.6.15/Python-3.6.15.tar.xz для моего случая), и подсунуть его в директорию кэша утилиты pyenv (каталог ~/.pyenv/cache/). Она увидит этот файл и не будет пытаться скачивать, а просто выполнит его распаковку и сборку, как обычно.
Итак, процесс по шагам:
$ mkdir ~/.pyenv/cache/
$ wget --no-check-certificate https://www.python.org/ftp/python/3.6.15/Python-3.6.15.tar.xz \
-P ~/.pyenv/cache/
После этого установка пройдет без проблем:
Подобным образом из кэша pyenv можно установить любую версию Python.
[Ссылки]
1. Управление несколькими версиями Python с помощью pyenv. 2. curl: проверка сертификата SSL. 3. Файл конфигурации curl. 4. Install Python source from a local directory thru pyenv site:github.com. |