我有一个来自 HostWinds 的标准 Ubuntu 远程服务器,它是按照正常设置 Ubuntu 22.04.5 LTS 设置的。我添加了 MySQL,但除了安装 Python 3.13 之外,我做了很少的更改,因为我想使用最新的 Python 版本,而不是 Ubuntu 附带的标准 Python 3.10.12。现在我根本无法更新服务器,并且我尝试安装的所有内容都会出现类似的错误。例如,运行命令:
sudo apt update && sudo apt upgrade -y
Reading package lists...
Building dependency tree...
Reading state information...
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
libpython3.13 : Depends: libpython3.13-stdlib (= 3.13.1-1+jammy1) but 3.13.0-1+jammy1 is installed
libpython3.13-dev : Depends: libpython3.13-stdlib (= 3.13.1-1+jammy1) but 3.13.0-1+jammy1 is installed
python3.13-dev : Depends: python3.13 (= 3.13.1-1+jammy1) but 3.13.0-1+jammy1 is installed
我已经尝试了错误推荐的
apt --fix-broken install
命令,但这也给出了一个错误,其中充满了对 Python 3.13 的引用。我几乎确信我根本不应该通过安装 3.13 来搞乱 Python。我应该坚持使用 3.10.12,但是如何在不重新启动服务器的情况下返回?如果不需要的话,我真的不想设置非 root 用户和数据库以及数据库用户名和数据库权限以及所有内容。
另外,当我尝试安装 nginx 时,我遇到了同样的错误,我想安装但现在不能。
我意识到我的标题假设了我的错误的特定原因。至少,我希望至少消除 Python 3.13 安装这个可能的原因,这样我就可以继续前进,因为我根本不使用它。我真的很努力坚持“标准”,而且我很后悔安装了 Python 3.13,但我确实这么做了,但现在我陷入了困境。
如何回到未安装 Python 3.13 的位置?或者还有什么可能导致此错误?我希望能够更新我的服务器并安装 nginx。
我也遇到了类似的问题。最终让我克服这个错误的是立即删除足够的 Python3.13 包,以便解决所有冲突。我从一个包开始,然后添加错误中引用的任何 Python3.13 包,并重复此过程,直到不再有错误为止。这意味着这可能不是解决问题的完美方法。
这是最终没有错误地通过的:
sudo apt remove --purge python3.13 libpython3.13-minimal libpython3.13-stdlib
此后,我能够重新安装 Python3.13,而不会导致后续
apt
命令出现错误。
一些中间错误供参考:
python3.13-venv : Depends: python3.13 (= 3.13.1-1+jammy1) but 3.13.0-1+jammy1 is installed
sudo apt --fix-broken install
Unpacking python3.13 (3.13.1-1+jammy1) over (3.13.0-1+jammy1) ...
dpkg: error processing archive /var/cache/apt/archives/python3.13_3.13.1-1+jammy
1_amd64.deb (--unpack):
trying to overwrite '/usr/bin/python3.13', which is also in package python3.13-minimal 3.13.0-1+jammy1
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Preparing to unpack .../libpython3.13-stdlib_3.13.1-1+jammy1_amd64.deb ...
Unpacking libpython3.13-stdlib:amd64 (3.13.1-1+jammy1) over (3.13.0-1+jammy1) ...