我如何才能驱除在安装后脚本中崩溃的特定 Ubuntu 包?

我如何才能驱除在安装后脚本中崩溃的特定 Ubuntu 包?

我安装了一个 libssl-dev 包,可能是因为我不确定我是否绕过了包管理器,并且它在包管理器中可见但不会消失。

root@li393-189:/home/jonathan/python-amazon-product-api-0.2.5# aptitude purge l
ibssl-dev
下列软件包将被删除:  
  libssl-dev{p}
将配置以下部分安装的软件包:
  易于
升级了 0 个软件包,新安装了 0 个软件包,删除了 1 个软件包,还有 84 个软件包未被升级。
需要获取 0 B 的档案。解压后将释放 4,929 kB。
您想继续吗?[Y/n/?] Y
设置 apt (0.8.16~exp12ubuntu10.10) ...
gpg:无效选项“--primary-keyring”
gpg:[不知道]:无效数据包(ctb=03)
gpg: read_keyblock:读取错误:无效数据包
gpg: enum_keyblocks(读取)失败:无效的密钥环
gpg:警告:未导出任何内容
dpkg:错误处理 apt(--configure):
 子进程安装后安装脚本返回错误退出状态 2
由于已达到 MaxReports 数量,因此未编写任何 apport 报告
                                                              处理时遇到错误:
 易于
E: 子进程 /usr/bin/dpkg 返回错误代码 (1)
软件包安装失败。尝试恢复:
设置 apt (0.8.16~exp12ubuntu10.10) ...
gpg:无效选项“--primary-keyring”
gpg:[不知道]:无效数据包(ctb=03)
gpg: read_keyblock:读取错误:无效数据包
gpg: enum_keyblocks(读取)失败:无效的密钥环
gpg:警告:未导出任何内容
dpkg:错误处理 apt(--configure):
 子进程安装后安装脚本返回错误退出状态 2
处理时遇到错误:
 易于

root@li393-189:/home/jonathan/python-amazon-product-api-0.2.5#

我希望用新安装的软件包替换当前安装的 libssl-dev。我见过的 aptitude 配置都无法删除它。

我如何删除现有包以便能够从头开始重新安装它?

- 编辑 -

@Brigo,我曾尝试使用 aptitude 而不是 apt-get,但 apt-get 给出了在我看来明显等同的结果:

root@li393-189:/home/jonathan/python-amazon-product-api-0.2.5# apt-get 删除 l
ibssl-dev
正在读取软件包列表...完成
构建依赖关系树       
正在读取状态信息...完成
下列软件包将被删除:
  libssl-dev
升级了 0 个,新安装了 0 个,删除了 1 个,还有 84 个没有升级。
1 未完全安装或删除。
此操作后将释放4,929 kB的磁盘空间。
您想继续吗 [Y/n]?Y
设置 apt (0.8.16~exp12ubuntu10.10) ...
gpg:gpg:无效选项“--primary-keyring”
[不知道]:无效数据包(ctb=03)
gpg: read_keyblock:读取错误:无效数据包
gpg: enum_keyblocks(读取)失败:无效的密钥环
gpg:警告:未导出任何内容
dpkg:错误处理 apt(--configure):
 子进程安装后安装脚本返回错误退出状态 2
处理时遇到错误:
 易于
E: 子进程 /usr/bin/dpkg 返回错误代码 (1)
root@li393-189:/home/jonathan/python-amazon-product-api-0.2.5#

- 编辑 -

这是建议的 sh -x /usr/bin/apt-key update 的输出。

谢谢,

root@li393-189:~# sh -x /usr/bin/apt-key 更新
+ 设置-e
+ 取消设置 GREP_OPTIONS
+ 管理温度
+ SECRETKEYRING=/tmp/tmp.yKRn2OqlH3
+ 陷阱 rm -f'/tmp/tmp.yKRn2OqlH3' 0 HUP INT QUIT ILL ABRT FPE SEGV PIPE TERM
+ GPG_CMD=gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /tmp/tmp.yKRn2OqlH3
+ ID-U
+ [ 0 -当量 0 ]
+ GPG_CMD=gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /tmp/tmp.yKRn2OqlH3 --trustdb-name /etc/apt/trustdb.gpg
+ GPG=gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /tmp/tmp.yKRn2OqlH3 --trustdb-name /etc/apt/trustdb.gpg
+ MASTER_KEYRING=/usr/share/keyrings/ubuntu-master-keyring.gpg
+ ARCHIVE_KEYRING=/usr/share/keyrings/ubuntu-archive-keyring.gpg
+ REMOVED_KEYS=/usr/share/keyrings/ubuntu-archive-removed-keys.gpg
+ ARCHIVE_KEYRING_URI=http://archive.ubuntu.com/ubuntu/project/ubuntu-archive-keyring.gpg
+ TMP_KEYRING=/var/lib/apt/keyrings/maybe-import-keyring.gpg
+ [ 更新 = --keyring ]
+ TRUSTEDFILE=/etc/apt/trusted.gpg
+ apt-config shell TRUSTEDFILE Apt::GPGV::TrustedKeyring
+评估
+ apt-config shell TRUSTEDFILE Dir::Etc::Trusted/f
+ eval TRUSTEDFILE ='/etc/apt/trusted.gpg'
+ TRUSTEDFILE=/etc/apt/trusted.gpg
+ [ -r /etc/apt/trusted.gpg ]
+ GPG=gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /tmp/tmp.yKRn2OqlH3 --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg
+ GPG=gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /tmp/tmp.yKRn2OqlH3 --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg
+ TRUSTEDPARTS=/etc/apt/trusted.gpg.d
+ apt-config shell TRUSTEDPARTS Dir::Etc::TrustedParts/d
+ eval TRUSTEDPARTS='/etc/apt/trusted.gpg.d/'
+ TRUSTEDPARTS=/etc/apt/trusted.gpg.d/
+ [ -d /etc/apt/trusted.gpg.d/ ]
+ 运行部分 --list /etc/apt/trusted.gpg.d/ --regex ^.*\.gpg$
+ 命令=更新
+ [ -z 更新 ]
+ Shift
+ [ 更新 != 帮助 ]
+ 哪个 gpg
+ 更新
+ [ !-f /usr/share/keyrings/ubuntu-archive-keyring.gpg ]
+ 需要根目录
+ ID-U
+ [ 0 -ne 0 ]
+ gpg --ignore-time-conflict --no-options+ --no-default-keyring --secret-keyring /tmp/tmp.yKRn2OqlH3gpg --trustdb-name /etc/apt/trustdb.gpg --ignore-time-conflict --no-options --no-default-keyring --quiet --batch --secret-keyring /tmp/tmp.yKRn2OqlH3 --keyring --trustdb-name /etc/apt/trustdb.gpg /usr/share/keyrings/ubuntu-archive-keyring.gpg --keyring /etc/apt/trusted.gpg --export --primary-keyring /etc/apt/trusted.gpg
 - 进口
gpg:无效选项“--primary-keyring”
gpg:[不知道]:无效数据包(ctb=03)
gpg: read_keyblock:读取错误:无效数据包
gpg: enum_keyblocks(读取)失败:无效的密钥环
gpg:警告:未导出任何内容
+ rm -f /tmp/tmp.yKRn2OqlH3

答案1

apt-key update因此,我们从您的输出中看到gpg文件阻塞了/etc/apt/trusted.gpg。很可能该文件以某种方式损坏了。

尝试从已知的良好备份恢复此文件,然后apt-get再次运行您的命令。

如果失败,请尝试移除该文件,然后运行apt-key update以重新生成它。

答案2

您的问题在于配置apt包:

Setting up apt (0.8.16~exp12ubuntu10.10) ...
subprocess installed post-installation script returned error exit status 2
Errors were encountered while processing:

/var/lib/dpkg/info/apt.postinst是存在问题的脚本。您可以查看它并尝试调试问题。从输出来看,我猜apt-key update是导致问题的原因。尝试直接运行它:

sh -x /usr/bin/apt-key update

以获取更多信息。

相关内容