我如何驱除在安装后脚本崩溃的特定Ubuntu软件包?

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

 root @ li393-189:/home/jonathan/python-amazon-product-api-0.2.5# aptitude purge l
 ibssl-dev的
以下软件包将被删除:  
  的libssl-dev的{P} 
以下部分安装的软件包将被configuration:
  易于 
 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:error handlingapt(--configure):
 安装后的subprocess脚本返回错误退出状态2
由于已经达到MaxReports,因此没有写入报告
                                                              处理过程中遇到错误:
 易于
 E:subprocess/ usr / bin / dpkg返回错误码(1)
一个包没有安装。 试图恢复:
设置apt(0.8.16〜exp12ubuntu10.10)...
 gpg:无效的选项“--primary-keyring”
 gpg:[不知道]:无效的数据包(ctb = 03)
 gpg:read_keyblock:读取错误:无效的数据包
 gpg:enum_keyblocks(读取)失败:无效的钥匙圈
 gpg:警告:没有任何输出
 dpkg:error handlingapt(--configure):
 安装后的subprocess脚本返回错误退出状态2
处理过程中遇到错误:
 易于

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

我想要将现在安装的libssl-devreplace为新的软件包安装。 没有我已经看到的智能configurationconfiguration将删除它。

我怎样才能删除现有的包,从头开始重新安装?

– 编辑 –

@Brigo,我曾经用aptitude而不是apt-get,但apt-get给了我一种看似平等的东西:

 root @ li393-189:/home/jonathan/python-amazon-product-api-0.2.5# apt-get remove l
 ibssl-dev的
正在读取软件包列表...完成
build立依赖关系树       
阅读状态信息...完成
以下软件包将被删除:
  的libssl-dev的
 0升级,0新安装,1删除和84未升级。
 1没有完全安装或删除。
在这个操作之后,4,929 kB磁盘空间将被释放。
你想继续[Y / N]吗?  ÿ
设置apt(0.8.16〜exp12ubuntu10.10)...
 gpg:gpg:无效的选项“--primary-keyring”
 [不知道]:无效的数据包(ctb = 03)
 gpg:read_keyblock:读取错误:无效的数据包
 gpg:enum_keyblocks(读取)失败:无效的钥匙圈
 gpg:警告:没有任何输出
 dpkg:error handlingapt(--configure):
 安装后的subprocess脚本返回错误退出状态2
处理过程中遇到错误:
 易于
 E:subprocess/ usr / bin / dpkg返回错误码(1)
根@ li393-189:/home/jonathan/python-amazon-product-api-0.2.5# 

– 编辑 –

这是输出到build议的sh -x / usr / bin / apt-key更新。

谢谢,

 root @ li393-189:〜#sh -x / usr / bin / apt-key更新
 +设置-e
 +取消设置GREP_OPTIONS
 + mktemp
 + SECRETKEYRING = / tmp / tmp.yKRn2OqlH3
 + trap 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 -eq 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
 + [update = --keyring]
 + TRUSTEDFILE = / etc / apt / trusted.gpg
 + apt-config shell TRUSTEDFILE Apt :: GPGV :: TrustedKeyring
 + eval
 + 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  - 无选项 - 无默认密钥环--secret-keyring /tmp/tmp.yKRn2OqlH3 --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg
 + GPG = gpg --ignore-time-conflict  - 无选项 - 无默认密钥环--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/]
 + run-parts --list /etc/apt/trusted.gpg.d/ --regex ^。* \。gpg $
 +命令=更新
 + [-z更新]
 +轮class
 + [更新!=帮助]
 +哪个gpg
 +更新
 + [!  -f /usr/share/keyrings/ubuntu-archive-keyring.gpg]
 + requires_root
 + 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
  - import
 gpg:无效的选项“--primary-keyring”
 gpg:[不知道]:无效的数据包(ctb = 03)
 gpg:read_keyblock:读取错误:无效的数据包
 gpg:enum_keyblocks(读取)失败:无效的钥匙圈
 gpg:警告:没有任何输出
 + rm -f /tmp/tmp.yKRn2OqlH3

所以,我们从apt-key update输出中看到, gpg在文件/etc/apt/trusted.gpg上是窒息的。 很可能这个文件已经被破坏了。

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

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

你的问题是configurationapt软件包:

 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是有问题的脚本。 你可以看看它,并尝试debugging该问题。 从输出我猜apt-key update导致的问题。 尝试直接运行它:

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

得到一些更多的信息。