升级 python3.10 时子进程 /usr/bin/dpkg 返回错误代码 (1)

升级 python3.10 时子进程 /usr/bin/dpkg 返回错误代码 (1)

apt upgrade

$ sudo apt-get full-upgrade -y

Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 libpython3.10 : Depends: libpython3.10-stdlib (= 3.10.4-1+focal2) but 3.10.4-1+focal1 is installed
 libpython3.10-dev : Depends: libpython3.10-stdlib (= 3.10.4-1+focal2) but 3.10.4-1+focal1 is installed
 python3.10 : Depends: libpython3.10-stdlib (= 3.10.4-1+focal2) but 3.10.4-1+focal1 is installed
 python3.10-minimal : Depends: libpython3.10-minimal (= 3.10.4-1+focal2) but 3.10.4-1+focal1 is installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

apt --fix-broken install

$ sudo apt --fix-broken install

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following additional packages will be installed:
  libpython3.10-minimal libpython3.10-stdlib
The following packages will be upgraded:
  libpython3.10-minimal libpython3.10-stdlib
2 upgraded, 0 newly installed, 0 to remove and 10 not upgraded.
9 not fully installed or removed.
Need to get 0 B/2,566 kB of archives.
After this operation, 68.6 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 279178 files and directories currently installed.)
Preparing to unpack .../libpython3.10-stdlib_3.10.4-1+focal2_amd64.deb ...
Unpacking libpython3.10-stdlib:amd64 (3.10.4-1+focal2) over (3.10.4-1+focal1) ...
dpkg: error processing archive /var/cache/apt/archives/libpython3.10-stdlib_3.10.4-1+focal2_amd64.deb (--unpack):
 trying to overwrite '/usr/lib/python3.10/_sysconfigdata__linux_x86_64-linux-gnu.py', which is also in package libpython3.10-minimal:amd64 3.10.4-1+fo
cal1
Preparing to unpack .../libpython3.10-minimal_3.10.4-1+focal2_amd64.deb ...
Unpacking libpython3.10-minimal:amd64 (3.10.4-1+focal2) over (3.10.4-1+focal1) ...
dpkg: error processing archive /var/cache/apt/archives/libpython3.10-minimal_3.10.4-1+focal2_amd64.deb (--unpack):
 trying to overwrite '/usr/lib/python3.10/typing.py', which is also in package libpython3.10-stdlib:amd64 3.10.4-1+focal1
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/libpython3.10-stdlib_3.10.4-1+focal2_amd64.deb
 /var/cache/apt/archives/libpython3.10-minimal_3.10.4-1+focal2_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

试着消除安装了python3.10软件包但导致错误 Unmet dependencies

这个错误信息是什么意思?有没有办法修复它?

答案1

尝试删除有问题的软件包,例如 libpython3.10-minimal libpython3.10-stdlib。

sudo apt remove libpython3.10-minimal libpython3.10-stdlib

如果这表示运行 --fix-broken 然后手动将其删除,即像这样

ls -l /var/lib/dpkg/info | grep -i libpython3.10-minimal

这将显示包含 的截断文件名libpython3.10-minimal。现在将其移动到不同的目录

sudo mv /var/lib/dpkg/info/libpython3.10-minimal:amd64.* /tmp

然后做

sudo apt --fix-broken install

它会说没有找到 libpython3.10-minimal,所以它会重新安装它。

答案2

作为霍布斯据说,问题是一个文件从一个包移动到另一个包,现在它们在更新过程中互相影响。我按照他们的建议强制升级,但不得不稍微调整一下。以下是我最终做的事情:

sudo dpkg --force-all --remove libpython3.10-stdlib libpython3.10-minimal

这会强制卸载两个发生冲突的包,即使其他包依赖它们。

sudo apt-get install libpython3.10-stdlib libpython3.10-minimal

这样就可以再次安装它们,而不会互相踩踏。sudo apt --fix-broken install此时可能也可以工作,但我没有尝试过。

答案3

答案调整自这里

无需删除它们,强制安装一个包,然后修复其余的。

sudo dpkg -i --force-overwrite /var/cache/apt/archives/libpython3.10-stdlib_3.10.4-1+focal2_amd64.deb
sudo apt --fix-broken install

相关内容