在尝试将我的 Ubuntu 虚拟服务器从 17.10 升级到 18.04.2 LTS 时:
sudo do-release-upgrade
输出结果如下:
Traceback (most recent call last):
File "/usr/bin/do-release-upgrade", line 8, in <module>
from DistUpgrade.DistUpgradeVersion import VERSION
ImportError: No module named DistUpgrade.DistUpgradeVersion
这是该 Python 脚本中的第一个导入,因此我很担心我忽略了有关 Python 安装的一些相当明显的问题。我使用以下命令检查了 do-resease-upgrade 版本中使用的 Python 链接:
head -n1 /usr/bin/do-release-upgrade
#!/usr/bin/python3
验证 do-release-upgrade 是否指向正确的链接:
sudo which do-release-upgrade
/usr/bin/do-release-upgrade
我已经验证在 /usr/bin/ 中有一个指向 python3 的符号链接
lrwxrwxrwx 1 root root 18 Mar 22 12:34 python3 -> /usr/bin/python3.6
-rwxr-xr-x 2 root root 4568920 Oct 3 2017 python3.6
需要注意的是,重新安装 python3 不会改变结果。我最近没有对 python 进行其他更改。
如果我在 python 中运行该命令,/usr/bin/python3.6
生成的错误将从 ImportError 更改为 ModuleNotFound,如下所示:
>>> from DistUpgrade.DistUpgradeVersion import VERSION
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'DistUpgrade'
我对此不够熟悉,不知道是否应该搜索要安装的 DistUpgrade 模块,或者是否存在其他问题。
重新配置包sudo dpkg --configure -a
也不能解决问题。
我确实看过askubuntu.com/q/565107/301745但没有遇到用户遇到的其他问题。此外,我也没有像该用户一样尝试删除任何版本的 Python。(不过,在我的故障排除过程中,我确实重新安装了 Python3,但行为没有发生变化。)
先感谢您。
答案1
已解决:此问题是 Python 版本问题,请尝试安装 Python 3.6,这是导入包的最低要求。
如果失败了,不要担心,继续执行所有步骤:
sudo add-apt-repository ppa:jonathonf/python-3.6
然后通过命令检查更新并安装 Python 3.6:
sudo apt-get update
sudo apt-get install python3.6
现在您有三个 Python 版本,使用 python 命令来获取 2.7 版本,使用 python3 来获取 3.5 版本,或者使用 python3.6 来获取 3.6.1 版本
要使 python3 使用新安装的 python 3.6 而不是默认的 3.5 版本,请运行以下 2 个命令
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2
最后,通过命令在python3的两个python版本之间切换:
sudo update-alternatives --config python3
选择3.6版本后:
python3 -V
更新:由于这个错误,gnome-terminal 在第 3 步之后无法启动,解决方法是运行以下命令来重新创建符号链接:
sudo rm /usr/bin/python3
sudo ln -s python3.5 /usr/bin/python3
检查此资源:http://ubuntuhandbook.org/index.php/2017/07/install-python-3-6-1-in-ubuntu-16-04-lts/
现在如果您遇到另一个类似的错误:
Checking for a new Ubuntu release
Please install all available updates for your release before upgrading.
修复如果您遇到上述错误,请运行下面的每个命令。
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get dist-upgrade
sudo do-release-upgrade
资源:https://www.liquidweb.com/kb/troubleshooting-please-install-available-updates-release-upgrading/ 希望它也能帮助并解决您的问题。
答案2
我遇到了同样的问题,因为我禁用了snapd.service
。使用以下命令检查 snapd.service:
sudo systemctl status snapd.service
如果处于非活动状态:
● snapd.service - Snap Daemon 已加载:已加载(/lib/systemd/system/snapd.service;已禁用;供应商预设:已启用) 活动:未活动(已停止)
启动服务然后sudo systemctl start snapd.service
开始发布升级