如何使用 debian 打包中止安裝可解除安裝包
TLDR
我從較新版本的發行版中發布了
dpkg -i PACKAGE
較新版本的 PACKAGE。它依賴於一個新的 libc6 包,因此安裝失敗。現在這個包阻塞了整個apt
系統。我只是想讓系統明白它可以停止安裝這個包。我該怎麼做?
更長的完整版
我的伺服器在 Debian 10 上。它
mawk-1.3.3
從 1996 年開始發貨(根據mawk -W version
)。在我的 ubuntu 筆記型電腦上mawk-1.3.4
,我在筆記型電腦上編寫的腳本不兼容mawk-1.3.3
。所以我開始尋找一種快速的方法(是的,我知道……)在我的伺服器上安裝它。恰好在下一個 debian
mawk-1.3.4
中unstable
和testing
for中。sid
我偷偷下載了deb
,想試試看dpkg -i mawk_1.3.4.20200120-2_amd64.deb
。這失敗了:mawk depends on libc6 (>= 2.29); however: Version of libc6:amd64 on system is 2.28-10.
公平地說,這不是要走的路,我該如何回到以前?反正什麼也沒安裝,這應該不會太難吧?
我試過的
apt --fix-broken install
想解除安裝base-files
andbash
,對此我有一種很不好的感覺:The following packages will be REMOVED: base-files bash mawk rsync WARNING: The following essential packages will be removed. This should NOT be done unless you know exactly what you are doing! base-files mawk (due to base-files) bash
我記得
dpkg -r
併為我的實際遺留版本發出了dpkg -r mawk
一點恐懼mawk
:base-files depends on awk; however: Package awk is not installed. Package mawk which provides awk is to be removed. dpkg: error processing package mawk (--remove): dependency problems - not removing Errors were encountered while processing: mawk
所以我嘗試安裝
gawk
一個微妙的嘗試來保持awk
依賴不變,從而保持base-files
和bash
(mawk
並且gawk
兩者都可以提供awk
)。但請記住,安裝系統被阻止,這是我從中得到的apt-get install gawk
。The following packages have unmet dependencies: gawk : PreDepends: libsigsegv2 (>= 2.9) but it is not going to be installed mawk : Depends: libc6 (>= 2.29) but 2.28-10 is to be installed E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
在“指定解決方案”之前,它似乎不想讓我做任何事情。具有諷刺意味的是:對於這個問題,我有一個非常清晰和合理的解決方案:不要再安裝這個包了。我怎樣才能做到這一點 ?
更多資訊
似乎告訴我
dpkg
它無法安裝任何東西,我假設系統上沒有真正觸及任何東西,所有這些問題似乎都位於dpkg
’s 狀態。所以在絕望中,我查看
/var/lib/dpkg
並發現提到了罪魁禍首包status
,這裡有一些看起來很有趣的部分:... Package: mawk Status: install ok unpacked Priority: required ... Architecture: amd64 Multi-Arch: foreign Version: 1.3.4.20200120-2 Config-Version: 1.3.3-17+b3 ...
如果有人有建議。我已經準備好通過文件和文件夾破解我的方式
/var/lib/dpkg
,但這似乎有點愚蠢(而且它似乎也可能是很常見的情況)應該有一個很好的dpkg
命令來禮貌地告訴dpkg
我忘記我想要安裝此軟體包。
我認為沒有必要進行任何黑客攻擊。要求
apt
安裝目前的 Debian 10 版本就足夠了:sudo apt install mawk/buster
或者,問
dpkg
:sudo dpkg -i /var/cache/apt/archives/mawk_1.3.3-17+b3_amd64.deb
(假設您的 APT 記憶體中仍有包)。