我有一台 Ubuntu 18.10 服务器,最近尝试更新git
. 我不断收到许多软件包未正确安装的错误。
Errors were encountered while processing:
libpaper1:amd64
libpaper-utils
unattended-upgrades
libgs9:amd64
ghostscript
然后我跑了dpkg --configure -a
,看到了同样的错误。我要小心,不要给我的系统灌水,但我该如何解决这些错误?
~ $ sudo apt list --upgradable
Listing... Done
~ $ sudo apt-get check
Reading package lists... Done
Building dependency tree
Reading state information... Done
~ $ sudo apt-get check
Reading package lists... Done
Building dependency tree
Reading state information... Done
~ $ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
5 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Setting up libpaper1:amd64 (1.1.24+nmu5ubuntu1) ...
dpkg: error processing package libpaper1:amd64 (--configure):
installed libpaper1:amd64 package post-installation script subprocess returned error exit status 10
dpkg: dependency problems prevent configuration of libpaper-utils:
libpaper-utils depends on libpaper1; however:
Package libpaper1:amd64 is not configured yet.
dpkg: error processing package libpaper-utils (--configure):
dependency problems - leaving unconfigured
Setting up unattended-upgrades (1.5ubuntu3.18.10.4) ...
dpkg: error processing package unattended-upgrades (--configure):
installed unattended-upgrades package post-installation script subprocess returned error exit status 10
dpkg: dependency problems prevent configuration of libgs9:amd64:
libgs9:amd64 depends on libpaper1; however:
Package libpaper1:amd64 is not configured yet.
dpkg: error processing package libgs9:amd64 (--configure):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of ghostscript:
ghostscript depends on libgs9 (= 9.26~dfsg+0-0ubuntu0.18.10.9); however:
Package libgs9:amd64 is not configured yet.
dpkg: error processing package ghostscript (--configure):
dependency problems - leaving unconfigured
Processing triggers for libc-bin (2.28-0ubuntu1) ...
Errors were encountered while processing:
libpaper1:amd64
libpaper-utils
unattended-upgrades
libgs9:amd64
ghostscript
E: Sub-process /usr/bin/dpkg returned an error code (1)
编辑
回应@Stefan Skoglund 的问题:
~ $ sudo apt-cache policy libpaper1
libpaper1:
Installed: 1.1.24+nmu5ubuntu1
Candidate: 1.1.24+nmu5ubuntu1
Version table:
*** 1.1.24+nmu5ubuntu1 500
500 http://mirror.hetzner.de/ubuntu/packages cosmic/main amd64 Packages
500 http://de.archive.ubuntu.com/ubuntu cosmic/main amd64 Packages
100 /var/lib/dpkg/status
~ $ sudo dpkg-reconfigure -plow libpaper1
/usr/sbin/dpkg-reconfigure: libpaper1 is broken or not fully installed
编辑 2
我不顾一切,闭上眼睛,十指交叉,试了试:
sudo apt-get --purge remove libpaper1:amd64 libpaper-utils unattended-upgrades libgs9:amd64 ghostscript
sudo apt-get clean
sudo apt-get update && sudo apt-get upgrade
sudo apt autoremove
它神奇地起作用了。
赏金仍然可供可以解释此处发生的事情以及最佳实践/故障排除提示的人使用。
这里发生的是 libpaper1 包的安装后脚本被破坏,并在安装过程中出错退出。这不应该发生,因为它会破坏包状态,就像您所经历的那样,这就是为什么向包维护者报告错误是个好主意。有关详细信息,请参阅ReportingBugs wiki 页面。
您的选择如下:
移除包并等待修复。这就是您的情况可能发生的情况:当您决定清除 libpaper1 软件包时,它已得到修复,并且新安装成功。
需要注意的是,无论是否有可用的升级包,都不会在包状态损坏时下载。因此,您必须删除该软件包,然后重新安装。
修复安装后脚本。如果您真的、绝对需要该软件包,并且您不想等到修复,这是一个替代方案。您确实需要知道自己在做什么(必须具备 shell 编程知识),但修复脚本通常很简单。
每个软件包都可以有一个预安装和一个安装后脚本,它们驻留在
/var/lib/dpkg/info
目录中,并命名package[:arch].preinst
为package[:arch].postinst
. 这些分别在安装之前和之后执行 [*]。在您的情况下,安装后脚本失败,这意味着软件包已安装(因此文件已被提取),唯一剩下的就是执行安装后脚本。因此,您需要做的是
libpaper1:amd64.postinst
从根终端运行脚本 ( ),并记录发生错误的行。从这里修复脚本通常是微不足道的,但请务必了解脚本试图做什么,因为失败的命令可能对包至关重要。请尝试实际修复脚本(例如,附加|| true
到行尾,但可能不是最好的主意)。如果脚本运行没有错误,则
命令将配置所有待处理的包,并在此过程中运行 postinstall 脚本,恢复包状态。
[*] 实际过程当然要复杂一些;如果您想知道在安装/删除期间究竟发生了什么,请参阅dpkg(1) 手册页中的 、 和 操作
install
的configure
描述。remove
您是否尝试过 apt-get install -f?
当我不得不在具有不同包源的服务器上工作时,我已经遇到了这样的问题。
解决方案是不同的。一般来说,您应该避免混合不同的包源。
如果安装了带有 apt 参数 -t <...> 的软件包,那么它有助于在此参数的帮助下安装所有有问题的软件包。
但是,有时我不得不先删除这些包。
但我也遇到过必须使用 -Force 参数的情况。你尝试过 apt-get install -f 吗?
对我有用的简短回答
然后,完美地更新和升级