将 ubuntu 从 v20 更新到 v22 后遇到了一些问题,我真的需要你的帮助。
我确实弄乱了一些 python 文件,现在绝大多数“apt”命令根本无法工作。
由于我的 ubuntu-desktop 已经出现问题,我想重新安装它。问题是,它确实正确卸载了,但我无法安装它,我总是得到相同的 python 错误:
python3 : Depends: libpython3-stdlib ( = 3.10.11-1+focal1) but it is not going to be installed
python3.10 : Depends: libpython3.10-stdlib (= 3.10.11-1+focal1) but it is not going to be installed
python3.10-minimal : Depends : libpython3.10-minimal (=3.10.11-1+focal1) but it is not going to be installed```
基本上,我已经尝试了在网上能找到的所有方法。
没有任何 apt/apt-get/purge/autoremove/fix-broken,...命令工作 add-apt-repository 也坏了
所以现在我基本上被困在一个只能使用 CLI 的 ubuntu 上,无法安装任何东西,我真的不知道该怎么做。
在尝试恢复我的计算机时,我可能把它弄得比以前更乱,而且我可能现在安装了多个 python,但我甚至不确定如何检查它。
答案1
一种方法:备份您的数据,然后全新安装 Ubuntu 22.04。
“我尝试了网上能找到的所有方法“太模糊了,无法理解您可能做了什么,并且对于大多数人来说,重新安装比您不知道如何进行的故障排除要快得多。
展望未来,有两种安全的方法可以让不同版本的 Python 共存而不会破坏您的系统。您应该至少掌握其中一种。在当前系统上使用它们已经太晚了——损害已经造成。
- 虚拟化
- 正确使用
update-alternatives
答案2
在尝试此操作之前,请备份您的重要数据并为 jammy 制作适当的安装媒体!
mkdir $HOME/backup/
然后我们将 sources.list 从外部包源中移到这个文件夹中。
sudo mv /etc/apt/sources.list.d/* $HOME/backup/
然后我们从您的旧 sources.list 中进行备份。
sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
创建新的
deb http://archive.ubuntu.com/ubuntu jammy main restricted
deb http://archive.ubuntu.com/ubuntu jammy-updates main restricted
deb http://archive.ubuntu.com/ubuntu jammy universe
deb http://archive.ubuntu.com/ubuntu jammy-updates universe
deb http://archive.ubuntu.com/ubuntu jammy multiverse
deb http://archive.ubuntu.com/ubuntu jammy-updates multiverse
deb http://archive.ubuntu.com/ubuntu jammy-security main restricted
deb http://archive.ubuntu.com/ubuntu jammy-security universe
deb http://archive.ubuntu.com/ubuntu jammy-security multiverse
deb http://archive.canonical.com/ubuntu jammy partner
当我们尝试通过 apt 固定来强制软件包到 jammy 版本时。创建
sudo nano /etc/apt/preferences.d/jammy.pref
内容如下。
Package: *
Pin: release n=jammy
Pin-Priority: 1001
刷新包缓存
sudo apt update
首先进行部分升级的模拟注意这是 Debian 的方式。
apt -s upgrade
仔细检查输出。如果 apt 提示您正在做一些危险的事情(删除必要的软件包),请停止。然后按照@user535733 所说的重新安装。
如果没有错误
sudo apt upgrade
然后进行下一次模拟
sudo apt -s full-upgrade
在真正执行命令之前,请再次检查输出。
sudo apt full-upgrade
请注意,这是修复安装的危险尝试。这就是为什么在安装前进行备份和使用可用的安装介质如此重要。