![Ubuntu 18.04 升级至 Ubuntu 20 问题](https://linux22.com/image/1022461/Ubuntu%2018.04%20%E5%8D%87%E7%BA%A7%E8%87%B3%20Ubuntu%2020%20%E9%97%AE%E9%A2%98.png)
这是我当前正在使用的发行版:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.5 LTS
Release: 18.04
Codename: bionic
因此我尝试升级到 Ubuntu 20.04:
$sudo do-release-upgrade -d
Reading cache
Checking package manager
Can not upgrade
Your python3 install is corrupted. Please fix the '/usr/bin/python3'
symlink.
=== Command terminated with exit status 1 (Wed Apr 7 17:07:46 2021) ===
然后我检查我的升级替代方案:
$update-alternatives --display python3
python3 - manual mode
link best version is /usr/bin/python3.8
link currently points to /usr/bin/python3.6
link python3 is /usr/bin/python3
/usr/bin/python3.6 - priority 1
/usr/bin/python3.8 - priority 2
所以我切换到python3.8
$sudo update-alternatives --config python3
There are 2 choices for the alternative python3 (providing /usr/bin/python3).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/bin/python3.8 2 auto mode
* 1 /usr/bin/python3.6 1 manual mode
2 /usr/bin/python3.8 2 manual mode
Press <enter> to keep the current choice[*], or type selection number: 2
并尝试再次升级:
$ sudo do-release-upgrade -d
Traceback (most recent call last):
File "/usr/bin/do-release-upgrade", line 11, in <module>
from UpdateManager.Core.MetaRelease import MetaReleaseCore
File "/usr/lib/python3/dist-packages/UpdateManager/Core/MetaRelease.py", line 25, in <module>
import apt
File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
所有答案ModuleNotFoundError: No module named 'apt_pkg'
均无帮助。
出路何在?
答案1
升级之前您需要删除所有第三方 ppa 及其软件包。
使用 ppa-purge 即可。升级完成后,只需重新安装所需的一切,然后再次添加这些 ppa。
对于 python,一旦 ppa 被删除,请使用以下命令重新安装默认 ppa:sudo apt-get install --reinstall python3
它应该可以解决你的问题。
答案2
让生活变得简单;
- 保存您的数据,即
$HOME/
ls -lA
(注意隐藏文件!这些文件在输出中的名称以点开头)、您安装了哪些软件包,以及您对它们和其他软件包所做的任何自定义。 - 检查您是否应该/可以/必须重新排列当前安装正在使用的分区;借此机会进行清理。
- 安排安装新的操作系统版本,并执行此操作。
除上述情况之外的任何其他情况都有可能在更新后引发问题。
提示:
$ apt-mark showmanual | less
将显示手动安装到 apt 的软件包列表,该列表可能包含您的“特殊”软件选择。
例如
$ apt-mark showmanual > file_before.txt
...将保存当前操作系统的列表,等待您将其保存在某处。
$ apt-mark showmanual > file_after.txt
重新安装后使用类似...,然后使用
$ diff -u0 file_before.txt file_after.txt | less
检查差异。
以类似的方式,您可以检查在新操作系统中重新安装的以前安装的软件的任何设置文件。
请注意,如果您拥有同一软件的较新版本,仅复制回设置文件可能会有问题。
注意,我的个人经验是:是虽然工作量较大,但事实证明这是升级时避免麻烦的最“安全”的方法。