AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 988022
Accepted
port5432
port5432
Asked: 2019-10-15 23:03:09 +0800 CST2019-10-15 23:03:09 +0800 CST 2019-10-15 23:03:09 +0800 CST

如何在 Ubuntu 上修复损坏的软件包

  • 772

我有一台 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

它神奇地起作用了。

赏金仍然可供可以解释此处发生的事情以及最佳实践/故障排除提示的人使用。

linux
  • 3 3 个回答
  • 11541 Views

3 个回答

  • Voted
  1. Best Answer
    Lacek
    2019-11-26T04:47:05+08:002019-11-26T04:47:05+08:00

    这里发生的是 libpaper1 包的安装后脚本被破坏,并在安装过程中出错退出。这不应该发生,因为它会破坏包状态,就像您所经历的那样,这就是为什么向包维护者报告错误是个好主意。有关详细信息,请参阅ReportingBugs wiki 页面。

    您的选择如下:

    移除包并等待修复。这就是您的情况可能发生的情况:当您决定清除 libpaper1 软件包时,它已得到修复,并且新安装成功。

    需要注意的是,无论是否有可用的升级包,都不会在包状态损坏时下载。因此,您必须删除该软件包,然后重新安装。

    修复安装后脚本。如果您真的、绝对需要该软件包,并且您不想等到修复,这是一个替代方案。您确实需要知道自己在做什么(必须具备 shell 编程知识),但修复脚本通常很简单。

    每个软件包都可以有一个预安装和一个安装后脚本,它们驻留在/var/lib/dpkg/info目录中,并命名package[:arch].preinst为package[:arch].postinst. 这些分别在安装之前和之后执行 [*]。

    在您的情况下,安装后脚本失败,这意味着软件包已安装(因此文件已被提取),唯一剩下的就是执行安装后脚本。因此,您需要做的是libpaper1:amd64.postinst从根终端运行脚本 ( ),并记录发生错误的行。从这里修复脚本通常是微不足道的,但请务必了解脚本试图做什么,因为失败的命令可能对包至关重要。请尝试实际修复脚本(例如,附加|| true到行尾,但可能不是最好的主意)。

    如果脚本运行没有错误,则

    dpkg --configure -a
    

    命令将配置所有待处理的包,并在此过程中运行 postinstall 脚本,恢复包状态。

    [*] 实际过程当然要复杂一些;如果您想知道在安装/删除期间究竟发生了什么,请参阅dpkg(1) 手册页中的 、 和 操作install的configure描述。remove

    • 3
  2. Andre
    2019-10-16T03:22:24+08:002019-10-16T03:22:24+08:00

    您是否尝试过 apt-get install -f?

    当我不得不在具有不同包源的服务器上工作时,我已经遇到了这样的问题。

    解决方案是不同的。一般来说,您应该避免混合不同的包源。

    如果安装了带有 apt 参数 -t <...> 的软件包,那么它有助于在此参数的帮助下安装所有有问题的软件包。

    但是,有时我不得不先删除这些包。

    但我也遇到过必须使用 -Force 参数的情况。你尝试过 apt-get install -f 吗?

    • 1
  3. user946296
    2021-12-18T17:38:10+08:002021-12-18T17:38:10+08:00

    对我有用的简短回答

    sudo rm /var/cache/debconf/*.dat
    

    然后,完美地更新和升级

    • 0

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve