如何手动从 Ubuntu 中强行删除软件包?

Chr*_*ard 2 ubuntu apt package-management

我在 ServerFault 上发布了这个,并收到了一些看起来很有帮助的问题,但没有我能做什么的答案。在低级别上,我可以做些什么来完全消除干扰能力升级的软件包?

——

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

root@li393-189:/home/jonathan/python-amazon-product-api-0.2.5# aptitude purge l
ibssl-dev
The following packages will be REMOVED:  
  libssl-dev{p} 
The following partially installed packages will be configured:
  apt 
0 packages upgraded, 0 newly installed, 1 to remove and 84 not upgraded.
Need to get 0 B of archives. After unpacking 4,929 kB will be freed.
Do you want to continue? [Y/n/?] Y
Setting up apt (0.8.16~exp12ubuntu10.10) ...
gpg: Invalid option "--primary-keyring"
gpg: [don't know]: invalid packet (ctb=03)
gpg: read_keyblock: read error: invalid packet
gpg: enum_keyblocks(read) failed: invalid keyring
gpg: WARNING: nothing exported
dpkg: error processing apt (--configure):
 subprocess installed post-installation script returned error exit status 2
No apport report written because MaxReports is reached already
                                                              Errors were encountered while processing:
 apt
E: Sub-process /usr/bin/dpkg returned an error code (1)
A package failed to install.  Trying to recover:
Setting up apt (0.8.16~exp12ubuntu10.10) ...
gpg: Invalid option "--primary-keyring"
gpg: [don't know]: invalid packet (ctb=03)
gpg: read_keyblock: read error: invalid packet
gpg: enum_keyblocks(read) failed: invalid keyring
gpg: WARNING: nothing exported
dpkg: error processing apt (--configure):
 subprocess installed post-installation script returned error exit status 2
Errors were encountered while processing:
 apt
Run Code Online (Sandbox Code Playgroud)

我希望将当前安装的 libssl-dev 替换为全新的软件包安装。我所见过的 aptitude 配置都不会删除它。

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

- 编辑 -

@Brigo,我尝试过使用 aptitude 而不仅仅是 apt-get,但是 apt-get 给了我看起来很明显的等价物:

root@li393-189:/home/jonathan/python-amazon-product-api-0.2.5# apt-get remove 我希望将当前安装的 libssl-dev 替换为全新的软件包安装。我所见过的 aptitude 配置都不会删除它。

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

- 编辑 -

@Brigo,我尝试过使用 aptitude 而不仅仅是 apt-get,但是 apt-get 给了我看起来很明显的等价物:

root@li393-189:/home/jonathan/python-amazon-product-api-0.2.5# apt-get remove l
ibssl-dev
阅读包裹清单...完成
构建依赖树       
读取状态信息...完成
以下软件包将被删除:
  libssl-dev
0 升级,0 新安装,1 删除,84 未升级。
1 未完全安装或拆除。
此操作后,将释放 4,929 kB 磁盘空间。
你想继续[是/否]吗?是
设置 apt (0.8.16~exp12ubuntu10.10) ...
gpg: gpg: 无效的选项“--primary-keyring”
[不知道]:无效数据包(ctb=03)
gpg:read_keyblock:读取错误:数据包无效
gpg: enum_keyblocks(read) 失败: 无效的密钥环
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 + mktemp + 秘密钥匙圈=/tmp/tmp.yKRn2OqlH3 + trap rm -f '/tmp/tmp.yKRn2OqlH3' 0 HUP INT 退出 ILL ABRT FPE SEGV 管道术语 + 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 + [ 更新 = --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 更新 ] + 班次 + [更新!=帮助] + 哪个 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 - 进口 gpg:无效的选项“--primary-keyring” gpg: [不知道]: 无效数据包 (ctb=03) gpg:read_keyblock:读取错误:数据包无效 gpg: enum_keyblocks(read) 失败: 无效的密钥环 gpg:警告:未导出任何内容 + rm -f /tmp/tmp.yKRn2OqlH3

slm*_*slm 7

在 SuperUser 上找到了这个方法

 sudo dpkg --remove --force-remove-reinstreq libssl-dev
Run Code Online (Sandbox Code Playgroud)