从 14.04 升级到 16.04 后,apt-get 在我的系统上搞砸了,我xenial
不知道如何修复它。这是我得到的(之后apt update
)。
任何人都可以就如何解决这个问题提供一些建议吗?
$ sudo apt upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
libsimgearcore3.4.0v5 libsimgearscene3.4.0v5 linux-headers-4.4.0-97 linux-headers-4.4.0-97-generic linux-image-4.4.0-97-generic linux-image-extra-4.4.0-97-generic
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n]
Setting up snapd (2.28.5~14.04) ...
Failed to execute operation: No such file or directory
dpkg: error processing package snapd (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
snapd
E: Sub-process /usr/bin/dpkg returned an error code (1)
我也尝试运行apt -f install
并得到以下结果:
$ sudo apt -f install
[sudo] password for ron:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
libsimgearcore3.4.0v5 libsimgearscene3.4.0v5 linux-headers-4.4.0-97 linux-headers-4.4.0-97-generic linux-image-4.4.0-97-generic linux-image-extra-4.4.0-97-generic
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up snapd (2.28.5~14.04) ...
Failed to execute operation: No such file or directory
dpkg: error processing package snapd (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
snapd
E: Sub-process /usr/bin/dpkg returned an error code (1)
在哪里$ sudo dpkdg --configure -a
给我:
$ sudo dpkg --configure -a
Setting up snapd (2.28.5~14.04) ...
Failed to execute operation: No such file or directory
dpkg: error processing package snapd (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
snapd
哪里sudo apt-get --remove purge snapd
返回:
$ sudo apt-get --remove purge snapd
[sudo] password for ron:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
cgroup-lite libsimgearcore3.4.0v5 libsimgearscene3.4.0v5 linux-generic-lts-xenial linux-headers-4.4.0-97 linux-headers-4.4.0-97-generic linux-image-4.4.0-97-generic
linux-image-extra-4.4.0-97-generic squashfs-tools
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
snapd*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 74.5 MB disk space will be freed.
Do you want to continue? [Y/n]
(Reading database ... 661915 files and directories currently installed.)
Removing snapd (2.28.5~14.04) ...
Failed to stop snapd.autoimport.service: Unit snapd.autoimport.service not loaded.
Failed to stop snapd.socket: Unit snapd.socket not loaded.
Failed to stop snapd.service: Unit snapd.service not loaded.
dpkg: error processing package snapd (--purge):
subprocess installed pre-removal script returned error exit status 5
Errors were encountered while processing:
snapd
sudo aE: Sub-process /usr/bin/dpkg returned an error code (1)
@vskubriev 的这个答案可能是强制删除的关键。
本质上:在 shebang 之后
添加
exit 0
到/var/lib/dpkg/info/snapd.prerm
. 然后运行以下命令。可选择通过运行重新安装
apt-get install snapd
如果@vskubriev 的回答有助于在此处不赞成投票。
看起来您已经从安装了 snapd 的 14.04 升级到了 16.04,并且由于某种原因 snapd 包没有被替换,给您留下了这个问题,您可以执行以下操作来删除包:
这将删除删除前/删除后的脚本,并且应该允许在脚本失败时删除包。如果您确实需要 snapd(因为您之前已经安装了一些 snapd 等),您可以运行: