久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

Debian軟件包恢復(fù)

2024-01-11 322

Debian系統(tǒng)中,由于各種原因可能會(huì)導(dǎo)致軟件包損壞或安裝失敗。本教程將詳細(xì)介紹如何從這些損壞的系統(tǒng)中恢復(fù)軟件包,并提供相應(yīng)的解決方案和技巧。通過掌握這些知識(shí)將能夠更有效地管理和使用Debian系統(tǒng),確保軟件包的穩(wěn)定運(yùn)行和安全使用。

一、缺少依賴

如果通過”sudo dpkg -i …”強(qiáng)制安裝一個(gè)軟件包到系統(tǒng),而不安裝它所依賴的所有軟件包,這個(gè)軟件包將作為“部分安裝”而失敗。

應(yīng)當(dāng)安裝所有依賴的軟件包,使用 APT 系統(tǒng)或者 “sudo dpkg -i …”。然后,使用下列命令來配置所有部分安裝的軟件包。

# dpkg --configure -a

二、軟件包數(shù)據(jù)緩存錯(cuò)誤

軟件包數(shù)據(jù)緩存錯(cuò)誤,能夠造成奇怪的錯(cuò)誤,比如 APT 的 “GPG error: … invalid: BADSIG …”。

應(yīng)該通過 “sudo rm -rf /var/lib/apt/* ” 刪除所有緩存的數(shù)據(jù),然后重新嘗試。(如果使用了 apt-cacher-ng,還應(yīng)運(yùn)行”sudo rm -rf /var/cache/apt-cacher-ng/* “。 )

三、不兼容舊用戶配置

如果一個(gè)桌面 GUI 程序在重要的上游版本升級(jí)后變得不穩(wěn)定,應(yīng)該懷疑這是舊的本地配置文件(由它創(chuàng)建的)所導(dǎo)致的。如果它在新建的用戶賬號(hào)下運(yùn)行穩(wěn)定,那么這個(gè)假設(shè)就得到了證實(shí)。(這是一個(gè)打包的 bug 并且打包者通常會(huì)避免它。)

為了恢復(fù)穩(wěn)定,應(yīng)該移除相應(yīng)的本地配置文件并重新啟動(dòng) GUI 程序??赡苄枰喿x舊的配置文件內(nèi)容以便之后恢復(fù)配置信息。

四、不同軟件包

文檔級(jí)的軟件包管理系統(tǒng),比如說 aptitude(8) 或 apt-get(1), 使用軟件包依賴,當(dāng)出現(xiàn)相同文件時(shí),不會(huì)嘗試去安裝軟件包。

軟件包維護(hù)者的錯(cuò)誤,或者系統(tǒng)管理員配置了不一致的檔案庫混合源,都會(huì)出現(xiàn)不正確的軟件包依賴情況。如果在出現(xiàn)相同文件的情況下,通過 aptitude(8) 或 apt-get(1) 安裝軟件包,dpkg(1) 在對(duì)軟件包解包時(shí),確定會(huì)給調(diào)用程序返回錯(cuò)誤,并不會(huì)覆蓋已經(jīng)存在的文件。

使用第三方軟件包會(huì)導(dǎo)致重大的系統(tǒng)風(fēng)險(xiǎn),因?yàn)槠渫ㄟ^使用 root 權(quán)限運(yùn)行維護(hù)者腳本能夠?qū)ο到y(tǒng)做任何事。dpkg(1) 命令只防止解包時(shí)的覆蓋行為??梢韵韧ㄟ^刪除舊的令人討厭的軟件包,old-package,來解決這類錯(cuò)誤的安裝問題。

$ sudo dpkg -P old-package

五、修復(fù)軟件包腳本

當(dāng)軟件包腳本中的一個(gè)命令由于某些原因返回錯(cuò)誤,腳本也將由于錯(cuò)誤而退出,軟件包管理系統(tǒng)忽略它們的行為,并導(dǎo)致部分安裝的軟件包。當(dāng)一個(gè)軟件包在它的刪除腳本中有錯(cuò)誤時(shí),該軟件包將會(huì)成為不可能刪除的軟件包,處理這些問題,都會(huì)變得相當(dāng)棘手。

對(duì)于 “package_name” 的軟件包腳本問題,應(yīng)該查看下列的軟件包腳本。

  • “/var/lib/dpkg/info/package_name.preinst”
  • “/var/lib/dpkg/info/package_name.postinst”
  • “/var/lib/dpkg/info/package_name.prerm”
  • “/var/lib/dpkg/info/package_name.postrm”

使用下列的方法,以 root 編輯損壞的軟件包腳本。

  • 在行首添加 “#” 可以禁用出錯(cuò)的行;
  • 在出錯(cuò)行的行尾添加 “|| true” 可以強(qiáng)制返回成功。

六、使用dpkg命令

因?yàn)?dpkg 是非常底層的軟件包工具,它可以在很糟糕的情況下進(jìn)行工作,例如無法啟動(dòng)系統(tǒng)且沒有網(wǎng)絡(luò)連接。讓我們假定 foo 軟件包損壞了,并且需要更換。

可以在軟件包緩存目錄:“/var/cache/apt/archives/” 中找到舊的 foo 軟件包的無 bug 版本。(如果找不到,可以從檔案庫 https://snapshot.debian.org/ 中下載它,或從具有軟件包緩存功能的機(jī)器中拷貝它。)

如果能夠啟動(dòng)系統(tǒng),可以通過下列命令來安裝它。

# dpkg -i /path/to/foo_old_version_arch.deb

如果系統(tǒng)無法從硬盤啟動(dòng),應(yīng)該尋找其它方式來啟動(dòng)它。

  • 使用 Debian 安裝光盤以救援模式啟動(dòng)系統(tǒng);
  • 將硬盤上無法啟動(dòng)的系統(tǒng)掛載到 “/target”;
  • 通過下列命令安裝舊版本的 foo 軟件包。
# dpkg --root /target -i /path/to/foo_old_version_arch.deb

即使位于硬盤上的 dpkg 命令已損壞,該命令依舊可以執(zhí)行。

任何由硬盤、live GNU/Linux CD、可啟動(dòng)的 USB 驅(qū)動(dòng)或網(wǎng)絡(luò)啟動(dòng)上的另一系統(tǒng)啟動(dòng)的 GNU/Linux 系統(tǒng)到可以類似地用來救援損壞的系統(tǒng)。如果由于依賴問題,無法用這種方式安裝軟件包,并且真的必須真么做,可以使用 dpkg 的 “–ignore-depends”、“–force-depends” 和其它選項(xiàng)來無視依賴。如果這么做了,之后必須認(rèn)真努力地修復(fù)依賴關(guān)系。

如果系統(tǒng)嚴(yán)重?fù)p壞了,應(yīng)該將系統(tǒng)完整備份到一個(gè)安全的地方(參見 第 10.2 節(jié) “備份和恢復(fù)”)并進(jìn)行一次全新的安裝。這是耗時(shí)較少且效果較好的辦法。

七、恢復(fù)軟件包選擇數(shù)據(jù)

如果 “/var/lib/dpkg/status” 因?yàn)槟撤N原因出現(xiàn)錯(cuò)誤,Debian 系統(tǒng)會(huì)丟失軟件包選擇數(shù)據(jù)并受到嚴(yán)重影響。尋找位于 “/var/lib/dpkg/status-old” 或 “/var/backups/dpkg.status.*” 中舊的 “/var/lib/dpkg/status” 文件。

給 “/var/backups/” 分配一個(gè)單獨(dú)的分區(qū)是一個(gè)好習(xí)慣,因?yàn)檫@個(gè)目錄包含了許多重要的系統(tǒng)數(shù)據(jù)。對(duì)于嚴(yán)重的損壞,我建議備份系統(tǒng)后重新安裝。即使失去 “/var/” 中的所有數(shù)據(jù),依舊可以從 “/usr/share/doc/” 目錄恢復(fù)一些信息來引導(dǎo)進(jìn)行新的安裝。

重新安裝最?。ㄗ烂妫┫到y(tǒng):

# mkdir -p /path/to/old/system
將舊系統(tǒng)掛載到 “/path/to/old/system/”。
# cd /path/to/old/system/usr/share/doc
# ls -1 >~/ls1.txt
# cd /usr/share/doc
# ls -1 >>~/ls1.txt
# cd
# sort ls1.txt | uniq | less

然后就可以根據(jù)軟件包名稱來進(jìn)行安裝了。(可能會(huì)有一些非軟件包名稱,例如 “texmf”。)

  • 廣告合作

  • QQ群號(hào):4114653

溫馨提示:
1、本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享網(wǎng)絡(luò)內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。郵箱:2942802716#qq.com(#改為@)。 2、本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)裁,轉(zhuǎn)載請(qǐng)注明出處“站長(zhǎng)百科”和原文地址。