ayi*_*gan 7 upgrade networking internet proxy do-release-upgrade
当我想通过终端使用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.
Run Code Online (Sandbox Code Playgroud)
但是我有互联网连接,我现在从我的 Ubuntu 计算机上写这个问题。
我该如何解决这个问题?
ome*_*gan 13
证书好像有问题:
result of meta-release download: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:841)>
Run Code Online (Sandbox Code Playgroud)
作为一种解决方法,我编辑了该文件/usr/lib/python3/dist-packages/UpdateManager/Core/MetaRelease.py并将这些行添加到开头:
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
Run Code Online (Sandbox Code Playgroud)
小智 13
问题是使用的 ca:
$ python3 -c 'import ssl; print(ssl.get_default_verify_paths().openssl_cafile)'
/usr/lib/ssl/cert.pem
Run Code Online (Sandbox Code Playgroud)
该路径可能适合/usr/local/ssl/cert.pem您的安装,如果是您的情况,请调整以下命令以使用此路径。
但:
$ ls /usr/lib/ssl/cert.pem
ls: cannot access '/usr/lib/ssl/cert.pem': No such file or directory
Run Code Online (Sandbox Code Playgroud)
您可以通过将全局 ca 证书链接到 Python 使用的文件来修复它:
ln -s /etc/ssl/certs/ca-certificates.crt /usr/lib/ssl/cert.pem
Run Code Online (Sandbox Code Playgroud)
之后跑步do-release-upgrade就可以正常工作了。
对于临时解决方案:
SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt do-release-upgrade
Run Code Online (Sandbox Code Playgroud)