Когда я хочу обновить Ubuntu от 18.04 Бионических Бобров к 18,10 Космической Каракатице через терминал с sudo do-release-upgrade -d
команда это дает мне предупреждающий:
Failed to connect to https://changelogs.ubuntu.com/meta-release-development.
Check your Internet connection or proxy settings.
Однако у меня есть интернет-соединение, я пишу этот вопрос теперь из моего компьютера Ubuntu.
Как я могу разрешить это?
Кажется, что существует проблема о сертификатах: result of meta-release download: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:841)>
Как обходное решение, я отредактировал файл /usr/lib/python3/dist-packages/UpdateManager/Core/MetaRelease.py
и добавил эти строки к началу:
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
Это - ошибка Ubuntu, которая была исправлена, но я не уверен, будет ли патч доступен в обновлениях для 18.04.2 LTS.
С 2018:
менеджер обновления (1:18.10.3) космический; urgency=medium
- Добавьте поддержку прокси HTTPS; это повреждает UpdateManager. Ядро utils.init_proxy () API - возвращаемое значение является теперь dict, а не строкой (LP: № 1771914).
...
Проверка Обновления Стабильной версии для менеджера обновления завершилась успешно, и пакет был теперь выпущен к - обновления.
Проблема в используемом ca:
$ python3 -c 'import ssl; print(ssl.get_default_verify_paths().openssl_cafile)'
/usr/lib/ssl/cert.pem
Но:
$ ll /usr/lib/ssl/cert.pem
ls: cannot access '/usr/lib/ssl/cert.pem': No such file or directory
Вы можете исправить это, связав глобальный ca -certificates к файлу, который Python использует:
ln -s /etc/ssl/certs/ca-certificates.crt /usr/lib/ssl/cert.pem
После этого запуск do-release-upgrade
работает нормально.
Для временного решения:
SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt do-release-upgrade