![无法连接到 https://changelogs.ubuntu.com/meta-release-development。请检查您的 Internet 连接或代理设置](https://linux22.com/image/1009685/%E6%97%A0%E6%B3%95%E8%BF%9E%E6%8E%A5%E5%88%B0%20https%3A%2F%2Fchangelogs.ubuntu.com%2Fmeta-release-development%E3%80%82%E8%AF%B7%E6%A3%80%E6%9F%A5%E6%82%A8%E7%9A%84%20Internet%20%E8%BF%9E%E6%8E%A5%E6%88%96%E4%BB%A3%E7%90%86%E8%AE%BE%E7%BD%AE.png)
当我想通过终端使用sudo do-release-upgrade -d
命令将 Ubuntu 从 18.04 Bionic Beaver 升级到 18.10 到 Cosmic Cuttlefish 时,它给出了警告:
Failed to connect to https://changelogs.ubuntu.com/meta-release-development.
Check your Internet connection or proxy settings.
但是我有互联网连接,我现在从我的 Ubuntu 电脑上写下这个问题。
我该如何解决这个问题?
答案1
似乎存在与证书相关的问题:
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
答案2
问题是使用的ca:
$ python3 -c 'import ssl; print(ssl.get_default_verify_paths().openssl_cafile)'
/usr/lib/ssl/cert.pem
该路径可能/usr/local/ssl/cert.pem
适用于您的安装,如果是您的情形,请调整以下命令以使用该路径。
但:
$ ls /usr/lib/ssl/cert.pem
ls: cannot access '/usr/lib/ssl/cert.pem': No such file or directory
您可以通过将全局 ca 证书链接到 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
答案3
这是一个 Ubuntu已修复错误,但我不确定该补丁是否会在 18.04.2 LTS 的更新中提供。
从2018年起:
更新管理器(1:18.10.3)宇宙;紧急程度=中等
- 添加对 HTTPS 代理的支持;这会破坏 UpdateManager.Core.utils.init_proxy() API - 返回值现在是一个字典,而不是字符串 (LP:#1771914)。...
update
-manager 的稳定版本更新验证已成功完成,并且该软件包现已发布到 -updates。