pyenv: решение проблемы с сертификатом SSL Печать
Добавил(а) microsin   

При установке разных версий 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 install 3.6.15

Подобным образом из кэша pyenv можно установить любую версию Python.

[Ссылки]

1. Управление несколькими версиями Python с помощью pyenv.
2. curl: проверка сертификата SSL.
3. Файл конфигурации curl.
4. Install Python source from a local directory thru pyenv site:github.com.