Linux

如何驅除在安裝後腳本上崩潰的特定 Ubuntu 包?

  • April 22, 2013

我安裝了一個 libssl-dev 包,可能是因為我不確定我是否繞過了包管理器,並且它從包管理器中可見但不會消失。

root@li393-189:/home/jonathan/python-amazon-product-api-0.2.5# aptitude purge l
ibssl-開發
以下軟體包將被刪除: 
libssl-開發{p}
將配置以下部分安裝的軟體包:
易於
0 個軟體包已升級,0 個新安裝,1 個要刪除,84 個未升級。
需要獲取 0 B 的檔案。解壓後 4,929 kB 將被釋放。
你要繼續嗎?[是/否/?]是
設置 apt (0.8.16~exp12ubuntu10.10) ...
gpg:無效選項“--primary-keyring”
gpg: [不知道]: 無效數據包 (ctb=03)
gpg:read_keyblock:讀取錯誤:無效數據包
gpg: enum_keyblocks(read) failed: 無效的密鑰環
gpg:警告:沒有導出任何內容
dpkg: 錯誤處理 apt (--configure):
子程序安裝後安裝腳本返回錯誤退出狀態 2
由於已達到 MaxReports,因此未編寫任何報告報告
處理時遇到錯誤:
易於
E:子程序/usr/bin/dpkg返回錯誤碼(1)
安裝包失敗。試圖恢復:
設置 apt (0.8.16~exp12ubuntu10.10) ...
gpg:無效選項“--primary-keyring”
gpg: [不知道]: 無效數據包 (ctb=03)
gpg:read_keyblock:讀取錯誤:無效數據包
gpg: enum_keyblocks(read) failed: 無效的密鑰環
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 remove l
ibssl-開發
閱讀包裹清單...完成
建構依賴樹 
讀取狀態資訊...完成
以下軟體包將被刪除:
libssl-開發
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(read) failed: 無效的密鑰環
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 update
+ 設置-e
+ 取消設置 GREP_OPTIONS
+ mktemp
+ 密鑰環=/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
+ 身份證 -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 ]
+ 需要_root
+ 身份證 -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/共享/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) failed: 無效的密鑰環
gpg:警告:沒有導出任何內容
+ rm -f /tmp/tmp.yKRn2OqlH3

因此,我們從您的apt-key update輸出中看到gpg文件令人窒息/etc/apt/trusted.gpg。該文件很可能已以某種方式損壞。

嘗試從已知良好的備份中恢復此文件,然後apt-get再次執行您的命令。

如果失敗,請嘗試刪除該文件,然後執行apt-key update以重新生成它。

您的問題是配置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

獲取更多資訊。

引用自:https://serverfault.com/questions/500997