在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

debian軟件包管理詳解

PoisonApple ? 來(lái)源:網(wǎng)絡(luò)整理 ? 2018-02-12 15:50 ? 次閱讀

廣義的Debian是指一個(gè)致力于創(chuàng)建自由操作系統(tǒng)的合作組織及其作品,由于Debian項(xiàng)目眾多內(nèi)核分支中以Linux宏內(nèi)核為主,而且 Debian開(kāi)發(fā)者 所創(chuàng)建的操作系統(tǒng)中絕大部分基礎(chǔ)工具來(lái)自于GNU工程 ,因此 “Debian” 常指Debian GNU/Linux。

非官方內(nèi)核分支還有只支持x81的Debian GNU/Hurd(Hurd微內(nèi)核),只支持amd14的Dyson(OpenSolaris混合內(nèi)核)等。這些非官方分支都存在一些嚴(yán)重的問(wèn)題,沒(méi)有實(shí)用性,比如Hurd微內(nèi)核在技術(shù)上不成熟,而Dyson則基礎(chǔ)功能仍不完善。

“Debian” 正式發(fā)音為 /?d?.bi.?n/ ,Debian 是國(guó)際化協(xié)作項(xiàng)目,官方未指定任何非英文名稱。

Debian 軟件包管理

高級(jí)包管理工具 aptitude 是目前首選的字符界面的 APT 前端程序。它會(huì)記住哪些包是你安裝的,哪些是為了滿足依賴關(guān)系而安裝的;在不被已安裝包需要的情況下aptitude 會(huì)自動(dòng)卸載后者。它內(nèi)建一套高級(jí)的包過(guò)濾器,但是比較難上手。

synaptic 是目前首選的基于 GTK 的圖形化 APT 前端程序。它的包過(guò)濾器比 aptitude 的好用多了。它包含了對(duì) Debian Package Tags的實(shí)驗(yàn)性支持。

為了減少 Debian 倉(cāng)庫(kù)的網(wǎng)絡(luò)負(fù)擔(dān)和加快你下載的速度,你應(yīng)該從 Debian 鏡像下載。

如果你需要在你本地網(wǎng)絡(luò)的許多臺(tái)機(jī)器上安裝相同的包。在使用 APT 下載包的時(shí)候,請(qǐng)考慮使用squid 來(lái)設(shè)置本地 HTTP 代理。必要的話,可以設(shè)置環(huán)境變量 http_proxy 或者在/etc/apt/apt.conf 里面設(shè)置 http 的值。

盡管 apt_preferences(5) 中描述的 APT 的 pinning 功能非常強(qiáng)大,但造成的影響是難以察覺(jué)和管理的。你應(yīng)該把它作為一個(gè)高級(jí)功能來(lái)看待。

在 chroot, 第 8.1.35 節(jié) 中描述的使用方法非常適合于需要同時(shí)確保系統(tǒng)的穩(wěn)定性和使用最新軟件的情況。

本章節(jié)是基于 Woody 之后的系統(tǒng)寫(xiě)的,某些東西只適合于 Sarge 或更新的系統(tǒng)。

1.1 介紹

如果你沒(méi)有精力閱讀完所有的開(kāi)發(fā)者文檔,那么先看看本章的內(nèi)容,然后開(kāi)始體驗(yàn) Debiantesting/unstable 的威力吧:-)

1.1.1 主要的包管理工具

dpkg – Debian 包安裝工具

apt-get – APT 的命令行前端

aptitude – APT 的高級(jí)的字符和命令行前端

synaptic – 圖形界面的 APT 前端

dselect – 使用菜單界面的包管理工具

tasksel – Task 安裝工具

這些工具不是用來(lái)取代對(duì)方的,比如 dselect 同時(shí)使用 APT 和 dpkg。

APT 使用 /var/lib/apt/lists/* 來(lái)跟蹤可用的軟件包,而 dpkg 使用的是/var/lib/dpkg/available。如果你使用了 aptitude 或者其他 APT 前端來(lái)安裝軟件包,同時(shí)你希望使用 dselect 來(lái)安裝軟件包,請(qǐng)不要忘記使用 dselect 菜單上的 [U]pdate (或者運(yùn)行“dselect update”) 來(lái)更新 /var/lib/dpkg/available。

在處理依賴關(guān)系上 apt-get 會(huì)自動(dòng)下載安裝依賴的軟件包,但是不會(huì)處理所安裝軟件推薦的或者建議的軟件包。

相反 aptitude 可以設(shè)置成安裝所安裝軟件推薦的或者建議的軟件包。

dselect 給使用者列出所安裝軟件推薦或建議的軟件包,可以進(jìn)行單獨(dú)選擇。 參閱 軟件包依賴關(guān)系, 第 2.2.8 節(jié)。

1.1.2 方便的工具

dpkg-reconfigure - 重新配置已安裝的軟件包

(如果它是使用 debconf 進(jìn)行配置的)

dpkg-source - 管理源碼包

dpkg-buildpackage - 自動(dòng)生成包文件

apt-cache - 在本地緩沖區(qū)檢查包文件

1.2 Debian 軟件包管理基礎(chǔ)

1.2.1 設(shè)置 APT

參考 準(zhǔn)備升級(jí)工作, 第 5.2 節(jié) 來(lái)設(shè)置 sources.list。 [34] 請(qǐng)參考 Debian 系統(tǒng)安裝提示, 第 3 章, 發(fā)行版升級(jí)到 stable、testing 或 unstable, 第 5 章, 和 應(yīng)急的編輯器, 第 11.2 節(jié)。

1.2.2 安裝 tasks

你可以安裝一些軟件包集合,這些集合是由使 Debian 系統(tǒng)滿足某些特定用途的典型軟件包組成的。 這些集合被稱為“tasks”。

在初始化安裝中,安裝 tasks 最簡(jiǎn)單的方法就是使用 tasksel。注意在使用之前,你需要運(yùn)行

dselect update

建議使用 aptitude 來(lái)安裝 tasks。 它能讓你在選擇好 tasks 并準(zhǔn)備安裝之前,刪除 tasks 中的某些軟件包。

1.2.3 aptitude

aptitude 是全新的可菜單操作的包安裝工具,和 dselect 類似,但是是針對(duì) APT 從頭設(shè)計(jì)的。從大多數(shù)參數(shù)來(lái)講,aptitude 完全可以作為 apt-get 的一個(gè)兼容的代替品。 參閱 aptitude(1)和 /usr/share/doc/aptitude/README.

一旦開(kāi)始使用 aptitude,你最好繼續(xù)使用它,而不是選擇其他替代工具。否則你將失去aptitude 包存的軟件安裝清單,你就不能享受自動(dòng)刪除多余軟件包的功能了。

全屏狀態(tài)下 aptitude 接受單鍵的命令,大多數(shù)是小寫(xiě)的。主要的幾個(gè)功能鍵如下:

按鍵 動(dòng)作

F10 菜單

? 按鍵命令幫助(完整的清單)

u 更新軟件包信息

+ 標(biāo)記軟件包為升級(jí)或者新安裝

- 標(biāo)記軟件包為刪除(保留配置文件)

_ 標(biāo)記軟件包為完全刪除(刪除配置文件)

= 保持軟件包的當(dāng)前版本,阻止其被升級(jí)

U 標(biāo)記所有可以升級(jí)的軟件包為升級(jí)

g 下載和安裝選擇的軟件包

q 退出當(dāng)前屏幕,保存改變

x 退出當(dāng)前屏幕,忽略改變

Enter 查看一個(gè)軟件包的信息

C 查看一個(gè)軟件包的更新日志

l 改變軟件包樹(shù)狀顯示限制

/ 搜索第一個(gè)匹配的軟件包

重復(fù)最后一次搜索

和 apt-get 一樣, aptitude 安裝軟件包的時(shí)候自動(dòng)解決依賴問(wèn)題。 aptitude 還能安裝即將安裝的軟件包推薦或者建議的軟件包。你通過(guò) F10 -》 選項(xiàng) -》 處理依賴關(guān)系 在菜單上更改這一默認(rèn)設(shè)置。

aptitude 的其他特點(diǎn)如下:

aptitude 能訪問(wèn)所有版本的軟件包。

aptitude 的動(dòng)作記錄在 /var/log/aptitude。

aptitude 能輕松的追蹤陳舊的和本地建立的軟件包,并在“過(guò)期的和在本地創(chuàng)建的軟件包”上列出。

aptitude 內(nèi)建強(qiáng)大的包搜索和顯示功能。熟悉 mutt 的用戶很容易上手,因?yàn)檫@個(gè)顯示方法的靈感來(lái)源于 mutt。 參閱 /usr/share/doc/aptitude/README 中的 “SEARCHING, LIMITING, AND EXPRESSIONS”

aptitude 在全屏狀態(tài)下有嵌入的 su 功能。普通用戶都可以執(zhí)行,直到安裝或刪除軟件的時(shí)候再取得管理員權(quán)限。

1.2.4 dselect

從 stable 發(fā)行到現(xiàn)在為止(包含 Potato),dselect 一直是主要的包維護(hù)工具。對(duì)于 Sarge,你可以考慮用 aptitude 代替。

當(dāng)你啟動(dòng)程序的時(shí)候,dselect 會(huì)自動(dòng)選擇所有“Required”“Important”和“Standard”的包。

dselect 的用戶界面是有些奇怪,但是大部分人已經(jīng)習(xí)慣了。它有四個(gè)主要命令: (指令都是大寫(xiě)的!):

按鍵 動(dòng)作

Q 退出。確認(rèn)當(dāng)前的選擇并退出。

(忽略依賴關(guān)系)

R 撤銷(xiāo)! 我不是那個(gè)意思。

D 不管他!我不管你 dselect 怎么想的,照做就好了!

U 都照建議的來(lái)做

使用 D 和 Q,你可以選擇有沖突的選項(xiàng)。請(qǐng)小心使用這個(gè)命令。

在 /etc/dpkg/dselect.cfg 中加上一行“expert”來(lái)減少干擾。

如果你的機(jī)器運(yùn)行 dselect 的速度很慢,你可以考慮在速度快一點(diǎn)的機(jī)器上運(yùn)行 dselect,確定你要安裝的軟件包之后,在慢的機(jī)器上通過(guò) apt-get 來(lái)安裝它們。

1.2.5 使用 APT 來(lái)維護(hù)發(fā)行版本

請(qǐng)編輯 /etc/apt/preferences 并加入以下內(nèi)容來(lái)維持系統(tǒng)為 testing 版本:

Package: *

Pin: release a=testing

Pin-Priority: 800

Package: *

Pin: release a=stable

Pin-Priority: 100

要注意的是追蹤 testing 版本可能帶來(lái)延誤安裝安全性修正軟件包的副作用。因?yàn)檫@些軟件包都是上傳到 unstable 一段時(shí)間后再移植到 testing

更多復(fù)雜的例子請(qǐng)參考apt_preferences(5),可以讓您做更多的事情,例如安裝 unstable 的軟件包的同時(shí)還能把系統(tǒng)維持在 testing。

關(guān)于限制特定軟件在特定版本上,而其他軟件隨系統(tǒng)升級(jí)的設(shè)置在 examples subdirectory找到,即 preferences.testing 和preferences.unstable。

如果你混用不同的發(fā)行版本,例如 testing 和 stable 或 unstable 和 stable,你終究還是會(huì)安裝上 testing 或 unstale 版本的核心軟件,例如 libc1,這樣作無(wú)法確保系統(tǒng)中沒(méi)有臭蟲(chóng)。你需要特別小心。

另外一個(gè)例子,preferences.stable,會(huì)強(qiáng)制降級(jí)所有的軟件到 stable。

Debian 不支持將某個(gè)軟件包降級(jí)到先前的發(fā)行版本。然而在新的軟件包出問(wèn)題時(shí),你會(huì)發(fā)現(xiàn)你不得不安裝舊的可用的軟件包。你可以在本地的 /var/cache/apt/archives/ 或遠(yuǎn)端的http://snapshot.debian.net/ 中找到先前的版本。請(qǐng)參考 使用 dpkg 救助, 第 1.3.3 節(jié)。

從某個(gè)發(fā)行版本降級(jí)到先前的發(fā)行版本也是不被支持的,而且這樣做往往造成很多問(wèn)題。不過(guò)你愿意冒險(xiǎn)的話,作為最后的手段這樣做也是值得的。

1.2.1 aptitude, apt-get 和 apt-cache 命令

還是以上面使用 testing 發(fā)行版的用戶為例,可使用下列命令來(lái)管系統(tǒng):

aptitude upgrade (或 apt-get upgrade 或 aptitude dist-upgrade 或 apt-get dist-upgrade)

這樣就會(huì)跟隨 testing 版本 — 它們會(huì)跟蹤 testing 版本的更新情況,對(duì)系統(tǒng)上所有軟件包進(jìn)行升級(jí),并從 testing 處重新分析依賴關(guān)系并安裝相關(guān)的包。 [35]

apt-get dselect-upgrade

這個(gè)命令跟蹤 testing 版本 — 根據(jù) dselect 的選擇對(duì)系統(tǒng)上的軟件包進(jìn)行升級(jí)。

aptitude -R -G install package (或 apt-get install package)

從 testing 版本安裝 package 以及依賴的包。

aptitude -r -G install package

從 testing 版本安裝 package 以及依賴和推薦的包。

aptitude -r -g install package

從 testing 版本安裝 package 以及依賴和建議的包。

aptitude install package/unstable

從 unstable 中安裝 package,并由 testing 版本提供安裝依賴的包。

aptitude install -t unstable package

通過(guò)設(shè)置 unstable 的 Pin-Priority 為 990,可以從 unstable 處安裝 package 及其依賴的包。

apt-cache policy foo bar

檢查 foo bar 軟件包的狀態(tài)。

aptitude show foo bar 。| less (或 apt-cache show foo bar 。 | less)

查看 foo bar 。軟件包的有關(guān)信息。

aptitude install foo=2.2.4-1

安裝 foo 軟件包的特定版本 2.2.4-1。

aptitude install foo bar-

安裝 foo 軟件包并刪除 bar 軟件包。

aptitude remove bar

刪除 bar 軟件包,但保留其配置文件。

aptitude purge bar

刪除 bar 軟件包及其所有配置文件。

在上面的例子中使用 -u 選項(xiàng)的作用是在實(shí)際升級(jí)之前將所有將要升級(jí)的軟件包列出,并提示用戶確認(rèn)。下面的操作可將 -u 設(shè)置為默認(rèn)行為:

$ cat 》》 /etc/apt/apt.conf 《《 。

// Always show packages to be upgraded (-u)

APT::Get::Show-Upgraded “true”;

使用 --no-act 可進(jìn)行模擬升級(jí),并不是進(jìn)行真正的升級(jí)行為。

1.3 Debian 生存命令

掌握了這些知識(shí),你就能夠享受無(wú)盡的“升級(jí)”了 :-)

1.3.1 檢測(cè)程序錯(cuò)誤尋求幫助

如你使用某個(gè)軟件包出現(xiàn)問(wèn)題,在尋求幫助或發(fā)送錯(cuò)誤報(bào)告之前請(qǐng)確認(rèn)查看過(guò)下列站點(diǎn) (lynx,links 和 w3m 都很好用):

$ lynx http://bugs.debian.org/

$ lynx http://bugs.debian.org/package-name # 如果你知道軟件包的名字

$ lynx http://bugs.debian.org/bugnumber # 如果你知道錯(cuò)誤序號(hào)

在 Google(www.google.com)中使用關(guān)鍵字“site:debian.org”搜索。

如有疑問(wèn),可閱讀幫助文件。設(shè)置 CDPATH 如下:

export CDPATH=。:/usr/local:/usr/share/doc

然后輸入

$ cd packagename

$ pager README.Debian # 如果存在的話

$ mc

更多技術(shù)支持資源列在 Debian 技術(shù)支持, 第 15 章。

1.3.2 APT 升級(jí)錯(cuò)誤以及解決方法

從 unstable/testing 進(jìn)行升級(jí)時(shí)可能出現(xiàn) 升級(jí), 第 5.3 節(jié) 中提到的軟件包關(guān)聯(lián)問(wèn)題。多數(shù)情況下,是因?yàn)樯?jí)的軟件包所需的新增的關(guān)聯(lián)包沒(méi)有安裝。可使用如下方法解決:

# aptitude dist-upgrade

如果這招無(wú)效,可以重復(fù)下面的方法至到問(wèn)題解決:

# aptitude -f upgrade # 即使遇到錯(cuò)誤也繼續(xù) upgrade

# aptitude -f dist-upgrade # 即使遇到錯(cuò)誤也繼續(xù) dist-upgrade

一些的確存在問(wèn)題的升級(jí)腳本會(huì)引起持續(xù)出錯(cuò)。最好的解決方法是檢查該軟件包的安裝腳本/var/lib/dpkg/info/packagename.{post-,pre-}{install,removal} 然后運(yùn)行:

# dpkg --configure -a # 配置所有安裝的軟件包

如果腳本報(bào)告缺少配置文件,查看一下 /etc 中相關(guān)的配置文件。如果配置文件有 .dpkg-new 擴(kuò)展名(或其它類似的擴(kuò)展名),去掉(mv)它的擴(kuò)展名。

從 unstable/testing 進(jìn)行升級(jí)時(shí)可能出現(xiàn)軟件包關(guān)聯(lián)問(wèn)題。可用這個(gè)方法智取:

# aptitude -f install package # 重載壞關(guān)聯(lián)

還可以用 equivs 包來(lái)解決此類問(wèn)題。參閱 /usr/share/doc/equivs/README.Debian 和equivs 軟件包, 第 1.5.2 節(jié)。

1.3.3 使用 dpkg 救助

如果你在使用 APT 的時(shí)候遇到死胡同了,那么可以從 Debian 的鏡像站點(diǎn)下載軟件包并使用dpkg 來(lái)安裝。如果你不能訪問(wèn)網(wǎng)絡(luò),可以在 /var/cache/apt/archives/ 中找到被緩存的軟件包。

# dpkg -i fetchmail_1.2.5-4_i381.deb

如果你用這種方法安裝軟件包,但是遇到了依賴問(wèn)題安裝失敗了,并且你確實(shí)需要安裝這個(gè)軟件包。你可以用 dpkg 的 --ignore-depends,--force-depends 和其他參數(shù)來(lái)安裝軟件包。dpkg(8) 有更詳細(xì)的介紹。

1.3.4 恢復(fù)軟件包選擇狀態(tài)的數(shù)據(jù)

如果 /var/lib/dpkg/status 因?yàn)槟撤N原因壞掉了,Debian 系統(tǒng)將會(huì)完全丟失軟件包選擇狀態(tài)的數(shù)據(jù)。趕快到 /var/lib/dpkg/status-old 或 /var/backups/dpkg.status.* 下找找舊的/var/lib/dpkg/status 文件

將 /var/backups/ 放在其它的分區(qū)是個(gè)好習(xí)慣,因?yàn)樵撃夸洶嗽S多非常重要的系統(tǒng)數(shù)據(jù)。

如果舊的 /var/lib/dpkg/status 文件也壞了,仍可以從 /usr/share/doc/ 下的目錄進(jìn)行恢復(fù)這些信息。

# ls /usr/share/doc |

grep -v [A-Z] |

grep -v ‘^texmf$’ |

grep -v ‘^debian$’ |

awk ‘{print $1 “ install”}’ |

dpkg --set-selections

# dselect --expert # 重新安裝系統(tǒng),如果需要的話去除一些選項(xiàng)

1.3.5 /var 崩潰之后如何恢復(fù)系統(tǒng)

/var 目錄包含著定時(shí)更新的數(shù)據(jù)如 mail,它們很容易遭破壞。將目錄放到別的分區(qū)可降低風(fēng)險(xiǎn),如果最壞的事情發(fā)生了,可以通過(guò)重建 /var 目錄來(lái)挽救 Debian 系統(tǒng)。

從相同或舊版本的最簡(jiǎn) Debian 系統(tǒng)中取得 /var 目錄的內(nèi)容框架,例如 var.tar.gz,然后它放入受損系統(tǒng)的 root 目錄,接著

# cd /

# mv var var-old # 如果里面還有其他有用資料的話

# tar xv*** var.tar.gz # 使用 Woody 框架文件

# aptitude # 或是用 dselect

上述步驟可使系統(tǒng)恢復(fù)工作。使用 恢復(fù)軟件包選擇狀態(tài)的數(shù)據(jù), 第 1.3.4 節(jié) 中描述的技術(shù)加速軟件包選擇數(shù)據(jù)的恢復(fù)。([FIXME]:該過(guò)程需要更多的實(shí)踐來(lái)檢驗(yàn))

1.3.6為無(wú)法啟動(dòng)的系統(tǒng)安裝軟件包

使用 Debian 急救軟盤(pán) /CD 或從多啟動(dòng) Linux 系統(tǒng)其它分區(qū)啟動(dòng)。 參閱 啟動(dòng)系統(tǒng), 第 8.1 節(jié)。 將無(wú)法啟動(dòng)的系統(tǒng)掛載到 /target 并使用 dpkg 的 chroot 安裝模式。

# dpkg --root /target -i packagefile.deb

接下來(lái)就可以著手配置并解決問(wèn)題。

如是只是由于 lilo 損壞而造系統(tǒng)無(wú)法啟動(dòng),可使用標(biāo)準(zhǔn) Debian 急救盤(pán)啟動(dòng)。假設(shè)你的 root 分區(qū)位于 /dev/hda12 且想使用 runlevel 3,在啟動(dòng)提示符輸入:

boot: rescue root=/dev/hda12 3

這樣,你就可以使用軟盤(pán)中內(nèi)核啟動(dòng)系統(tǒng),新系統(tǒng)的功能基本齊全。(可能丟失某些內(nèi)核特性或模塊)

1.3.7 如果 dpkg 命令出錯(cuò)怎么辦

如果 dpkg 損壞就不能安裝任何 .deb 文件。下面的操作可幫助你修復(fù)這種狀況。(在第一行,你可將“l(fā)inks”替換成你喜歡的瀏覽器。)

$ links http://http.us.debian.org/debian/pool/main/d/dpkg/

下載完好的 dpkg_version_arch.deb

$ su

password: *****

# ar x dpkg_version_arch.deb

# mv data.tar.gz /data.tar.gz

# cd /

# tar x***v data.tar.gz

對(duì) i381,亦可用 http://packages.debian.org/dpkg 作為 URL。

1.4 Debian 必殺技

有了這些命令的啟迪,你將會(huì)從無(wú)休止的升級(jí)沖突的地獄中解放出來(lái),達(dá)到 Debian 天堂。 :-)

1.4.1 文件信息

在已安裝的軟件包中許找特定文件所屬的軟件包:

$ dpkg {-S|--search} pattern

或者搜索 Debian archive:

$ wget http://ftp.us.debian.org/debian/dists/sarge/Contents-i381.gz

$ zgrep -e pattern Contents-i381.gz

或是用專門(mén)的軟件包命令:

# aptitude install dlocate

# 和 slocate 沖突 (locate 的安全版本)

$ dlocate filename # dpkg -L 和 dpkg -S 的高效代替品

# aptitude install auto-apt # 請(qǐng)求式軟件包安裝工具

# auto-apt update # 為 auto-apt 建立 db 文件

$ auto-apt search pattern

# 在所有軟件包中搜索 pattern,不論安裝與否

1.4.2 軟件包信息

搜索并顯示包文件的信息。編輯 /etc/apt/sources.list,讓 APT 指向正確的包文件。如果想了解 testing/unstable 中的相應(yīng)軟件包與當(dāng)前系統(tǒng)安裝的軟件包有何差別,使用 apt-cache policy — 更好。

# apt-get check # 更新緩沖區(qū)并檢查損壞的軟件包

$ apt-cache search pattern # 按文本描述搜索軟件包

$ apt-cache policy package # 軟件包的 priority/dists 信息

$ apt-cache show -a package # 顯示所有 dists 中軟件包描述信息

$ apt-cache showsrc package # 顯示相應(yīng)源碼包的信息

$ apt-cache showpkg package # 軟件包調(diào)試信息

# dpkg --audit|-C # 搜索未完成安裝的軟件包

$ dpkg {-s|--status} package 。 # 已安裝軟件包描述

$ dpkg -l package 。 # 已安裝軟件包的狀態(tài)(每個(gè)占一行)

$ dpkg -L package 。 # 列出軟件包安裝的文件的名稱

Woody 發(fā)布版沒(méi)有為 apt-cache showsrc 建檔,但該命令可用:)

你也這可這樣查看軟件包信息(我用 mc 瀏覽):

/var/lib/apt/lists/*

/var/lib/dpkg/available

比較下面的文件可以確切了解最近的安裝過(guò)程對(duì)系統(tǒng)造成了那些改變。

/var/lib/dpkg/status

/var/backups/dpkg.status*

1.4.3 使用 APT 無(wú)人執(zhí)守安裝

使用 APT 無(wú)人執(zhí)守安裝,要在 /etc/apt/apt.conf 中加上一行: /etc/apt/apt.conf:

Dpkg::Options {“--force-confold”;}

另一種等價(jià)的方法是運(yùn)行 apt-get -q -y packagename。這種方法可能產(chǎn)生嚴(yán)重的負(fù)作用,所以使用起來(lái)要小心。參閱 apt.conf(5)和 dpkg(1)。

安裝完畢以后,可以用 重新配置已安裝的軟件包, 第 1.4.4 節(jié) 中的方法配置特定的軟件包。

1.4.4 重新配置已安裝的軟件包

使用下列方法重新配置已安裝的軟件包。

# dpkg-reconfigure --priority=medium package

# dpkg-reconfigure --all # 重新配置所有的軟件包

# dpkg-reconfigure locales # 生成額外的 locales

# dpkg-reconfigure --p=low xserver-xfree81 # 重新配置 X 服務(wù)器

如果你想永久改變 debconf 對(duì)話框模式,可這么做。

某些程序用于生成特殊的配置腳本。

apt-setup - 創(chuàng)建 /etc/apt/sources.list

install-mbr - 安裝主引導(dǎo)(Master Boot Record)管理器

tzconfig - 設(shè)定本地時(shí)間

gpmconfig - 設(shè)置 gpm 鼠標(biāo) daemon

sambaconfig - 在 Potato 中配置 Samba( Woody 使用 debconf 來(lái)配置)

eximconfig - 配置 Exim (MTA)

texconfig - 配置 teTeX

apacheconfig - 配置 Apache (httpd)

cvsconfig - 配置 CVS

sndconfig - 配置聲音系統(tǒng)

update-alternatives - 設(shè)定默認(rèn)啟動(dòng)命令,例如設(shè)定 vi 啟動(dòng) vim

update-rc.d - System-V init 腳本管理工具

update-menus - Debian 菜單系統(tǒng)

1.4.5 刪除和清除軟件包

刪除軟件包但保留其配置文件:

# aptitude remove package 。

# dpkg --remove package 。

刪除軟件包并清除配置文件:

# aptitude purge package 。

# dpkg --purge package 。

1.4.6阻止舊軟件包升級(jí)

舉個(gè)例子,要阻止 libc1 和 libc1-dev 通過(guò) dselect 或使用 aptitude install package 命令升級(jí),可執(zhí)行:

# echo -e “l(fā)ibc1 holdnlibc1-dev hold” | dpkg --set-selections

這種方法不影響 aptitude install package 命令操作。要阻止 aptitude upgrade package 或aptitude dist-upgrade 命令對(duì)軟件包執(zhí)行的強(qiáng)制自動(dòng)降級(jí)行為,可在 /etc/apt/preferences中加上:

Package: libc1

Pin: release a=stable

Pin-Priority: 2000

這里“Package:”后不能使用通配符如“l(fā)ibc1*”,如果要保持所有與 glibc 源碼包相關(guān)的二進(jìn)制包的版本同步,可以明確的列出它們。

該命令可以顯示處于“阻止”狀態(tài)的軟件包:

dpkg --get-selections “*”|grep -e “hold$”

1.4.7 stable/testing/unstable 混合系統(tǒng)

apt-show-versions 可以列出發(fā)行版中可用軟件包的版本

$ apt-show-versions | fgrep /testing | wc

你有多少 testing 軟件包

$ apt-show-versions -u

列出可升級(jí)的軟件包

$ aptitude install `apt-show-versions -u -b | fgrep /unstable`

將所有 unstable 軟件包升級(jí)到最新版

1.4.8 刪除緩存包文件

使用 APT 安裝軟件包會(huì)在 /var/cache/apt/archives 目錄留下緩存文件,要清除這些文件可使用:

# aptitude autoclean # 僅刪除無(wú)用的包

# aptitude clean # 刪除所有的包

1.4.9 記錄/拷貝系統(tǒng)配置

對(duì)軟件包選擇情況進(jìn)行本地備份:

$ dpkg --get-selections “*” 》myselections # 或使用 *

“*” 使 myselections 包含那些被指定“完全刪除(purge)”的文件。

你可將這個(gè)文件發(fā)送到另一臺(tái)電腦并在那兒按文件中的選擇進(jìn)行軟件包安裝。

# dselect update

# dpkg --set-selections 《myselections

# apt-get -u dselect-upgrade # 或者 dselect install

1.4.10 向 stable 系統(tǒng)引入軟件包

對(duì) stable 系統(tǒng)進(jìn)行部分升級(jí),在軟件運(yùn)行環(huán)境中重新編譯源碼的確是個(gè)誘人的想法,這樣可以避免由于關(guān)聯(lián)關(guān)系不得不對(duì)大量軟件包升級(jí)。首先,將下列鏡像源加入/etc/apt/sources.list:

deb-src http://http.us.debian.org/debian testing

main contrib non-free

deb-src http://http.us.debian.org/debian unstable

main contrib non-free

由于屏幕輸出的限制,上述每條 deb-src 命令均分成了 2 行,實(shí)際上在 sources.list 中它們均為單行。

然后下載源碼并在本地生成軟件包:

$ apt-get update # 更新軟件包搜索列表

$ apt-get source package

$ dpkg-source -x package.dsc

$ cd package-version

。。。 查找需要的軟件包(編譯所需的關(guān)聯(lián)包列在.dsc文件中)并安裝它們,

你還需要“fakerroot”軟件包。

$ dpkg-buildpackage -rfakeroot

……或者(沒(méi)有簽名)

$ dpkg-buildpackage -rfakeroot -us -uc # 如果需要,再使用“debsign”

……然后安裝

$ su -c “dpkg -i packagefile.deb”

通常,需要安裝一些帶 “-dev” 后綴的軟件包以滿足關(guān)聯(lián)關(guān)系。debsign 在 devscripts 軟件包中。auto-apt 可以輕松解決這些關(guān)聯(lián)問(wèn)題。請(qǐng)使用 fakeroot,如是沒(méi)有必要,就別使用 root 帳號(hào)。

在 Woody 中,這些關(guān)聯(lián)問(wèn)題已被簡(jiǎn)化。例如,編譯 pine 源碼包:

# apt-get build-dep pine

# apt-get source -b pine

1.4.11 本地軟件包文件

為了創(chuàng)建與 APT 和 dselect 系統(tǒng)兼容的本地軟件包文件,需要?jiǎng)?chuàng)建 Packages,包中文件要放在特定的目錄樹(shù)中。

Debian 官方包文件喜歡存放于本地 deb 倉(cāng)庫(kù),下面就來(lái)創(chuàng)建倉(cāng)庫(kù):

# aptitude install dpkg-dev

# cd /usr/local

# install -d pool # 軟件包存放的物理地址

# install -d dists/unstable/main/binary-i381

# ls -1 pool | sed ‘s/_.*$/ priority section/’ | uniq 》 override

# 編輯 override # 調(diào)整 priority and section

# dpkg-scanpackages pool override /usr/local/

》 dists/unstable/main/binary-i381/Packages

# cat 》 dists/unstable/main/Release 《《 EOF

Archive: unstable

Version: 3.0

Component: main

Origin: Local

Label: Local

Architecture: i381

EOF

# echo “deb file:/usr/local unstable main”

》》 /etc/apt/sources.list

還有一種快速但是骯臟的方法來(lái)創(chuàng)建本地 deb 倉(cāng)庫(kù):

# aptitude install dpkg-dev

# mkdir /usr/local/debian

# mv /some/where/package.deb /usr/local/debian

# dpkg-scanpackages /usr/local/debian /dev/null |

gzip - 》 /usr/local/debian/Packages.gz

# echo “deb file:/usr/local/debian 。/” 》》 /etc/apt/sources.list

在 /etc/apt/sources.list 中設(shè)置相應(yīng)鏡像源入口地址,就可以通過(guò) HTTP 或 FTP 方式遠(yuǎn)程訪問(wèn)存放在其中的包文件了。

1.4.12 轉(zhuǎn)換或安裝外來(lái)的二進(jìn)制軟件包

alien 可將其它格式的二進(jìn)制軟件包如 Redhat 的 rpm、Stampede 的 slp 、Slackware 的tgz 和 Solaris 的 pkg 等轉(zhuǎn)化成 Debian 的 deb 格式軟件包,如果你想在自己的系統(tǒng)上使用別的 Linux 發(fā)行版中的軟件包,可使用 alien 將它轉(zhuǎn)化成系統(tǒng)首選的軟件包格式后安裝。alien 還支持 LSB 的軟件包。

1.4.13 自動(dòng)安裝命令

auto-apt 是一種請(qǐng)求式軟件包安裝工具。

$ sudo auto-apt update

。。。 升級(jí)數(shù)據(jù)庫(kù)

$ auto-apt -x -y run

進(jìn)入 auto-apt 模式:/bin/bash

退出這個(gè)命令繼而退出 auto-apt 模式。

$ less /usr/share/doc/med-bio/copyright # 訪問(wèn)不存在的文件

。。。 安裝提供了這個(gè)文件的軟件包。

。。。 同樣安裝依賴的包

1.4.14 校驗(yàn)已安裝的軟件包

debsums 可以校驗(yàn)已安裝軟件包的 MD5 編碼,對(duì)某些軟件包沒(méi)有可用的 MD5 編碼,系統(tǒng)管理員可使用一個(gè)臨時(shí)的解決辦法:

# cat 》》/etc/apt/apt.conf.d/90debsums

DPkg::Post-Install-Pkgs {“xargs /usr/bin/debsums -sg”;};

^D

per Joerg Wendland joergland@debian.org (untested)。

1.4.15 優(yōu)化 sources.list

簡(jiǎn)而言之,我嘗試過(guò)用各種優(yōu)化方法來(lái)創(chuàng)建 sources.list,但任何一種方法對(duì)我這個(gè)住在美國(guó)的人來(lái)說(shuō)都沒(méi)有明顯的改善。最后我還是用 apt-setup 手工選擇近一點(diǎn)的站點(diǎn)。

apt-spy 會(huì)根據(jù)站點(diǎn)回應(yīng)時(shí)間和帶寬自動(dòng)創(chuàng)建 sources.list。netselect-apt 會(huì)創(chuàng)建一個(gè)更完整的 sources.list 文件,但它使用更落后的方法來(lái)選擇鏡像站點(diǎn)(比較 ping 時(shí)間)。

# aptitude install apt-spy

# cd /etc/apt ; mv sources.list sources.list.org

# apt-spy -d testing -l sources.apt

1.5 其他 Debian 的特性

1.5.1 dpkg-divert 命令

使用文件轉(zhuǎn)移(diversions)的方法可以強(qiáng)令 dpkg 將文件安裝到 轉(zhuǎn)移 目錄而非默認(rèn)目錄。對(duì)于某個(gè)引起沖突的文件,可以在 Debian 軟件包腳本中使用 Diversions 將它安裝到別的目錄。系統(tǒng)管理員還可以使用 diversion 來(lái)重載軟件包配置文件,或者用來(lái)保留某些舊配置文件(這些文件沒(méi)有在 conffiles 中登記)當(dāng)安裝新版軟件時(shí)這些文件會(huì)被覆蓋。(參閱 保存本地配置, 第 2.2.4 節(jié))。

# dpkg-divert [--add] filename # 添加 “轉(zhuǎn)移”

# dpkg-divert --remove filename # 刪除 “轉(zhuǎn)移”

記住,不到萬(wàn)不得已不要使用 dpkg-divert。

1.5.2 equivs 軟件包

如果你從源碼編譯程序,最好將它做成本地 Debian 化軟件包(*.deb)。最新的方法是使用equivs。

Package: equivs

Priority: extra

Section: admin

Description: Circumventing Debian package dependencies

This is a dummy package which can be used to create Debian

packages, which only contain dependency information.

1.5.3 Alternative 命令

如果想用 vi 來(lái)啟動(dòng) vim,請(qǐng)用 update-alternatives:

# update-alternatives --display vi

。。。

# update-alternatives --config vi

Selection Command

-----------------------------------------------

1 /usr/bin/elvis-tiny

2 /usr/bin/vim

*+ 3 /usr/bin/nvi

Enter to keep the default[*], or type selection number: 2

Debian alternatives 系統(tǒng)中的這些項(xiàng)目,都是以符號(hào)連接的形式存放在 /etc/alternatives下的。

想設(shè)置你喜愛(ài)的 X window 環(huán)境,執(zhí)行 update-alternatives 來(lái)指定 /usr/bin/x-session-manager 和 /usr/bin/x-window-manager。詳情參閱 自定義 X 會(huì)話, 第 9.4.5.1 節(jié)

/bin/sh 是指向 /bin/bash 或 /bin/dash 的鏈接。想兼容舊的 Bash 腳本,使用/bin/bash 比較保險(xiǎn),但更好還是使用/bin/dash,因?yàn)樗?POSIX 標(biāo)準(zhǔn)。升級(jí)到 2.4 版 Linux 內(nèi)核,系統(tǒng)一般將它設(shè)置為/bin/dash。

1.5.4 運(yùn)行級(jí)別 Runlevel

安裝好之后,大部分 Debian 軟件包的服務(wù)被設(shè)定為在 runlevel 2 到 5 時(shí)運(yùn)行。所以,在沒(méi)有定制過(guò)的 Debian 系統(tǒng)中,runleve 2、3、4、5、1 是沒(méi)有區(qū)別的。Debian 保留這些給本地管理員使用。 自定義運(yùn)行級(jí)別, 第 2.4.3 節(jié) 說(shuō)明如何定制 runlevels。 這樣的 runlevels 系統(tǒng)和其他流行的 GNU/Linux 發(fā)行版本完全不同。 你可能要做的改變之一就是取消 runlevel 2 上的xdm 和 gdm,使得在完成啟動(dòng)之后 X 顯示管理去不會(huì)自動(dòng)啟動(dòng);然后你可以通過(guò)切換到 runlevel 3 來(lái)啟動(dòng) X 顯示管理器。

參閱 運(yùn)行級(jí)別, 第 2.4.2 節(jié) 來(lái)獲得更多關(guān)于 runlevels 的信息。

1.5.5 停止 daemon 服務(wù)

Debian 發(fā)行版非常注重系統(tǒng)安全,并期望系統(tǒng)管理員能擔(dān)此重任。它將系統(tǒng)的易用性放在了第二位,許多 daemon 服務(wù)都定位在最高安全級(jí)別,因而,默認(rèn)安裝狀態(tài)下系統(tǒng)只啟動(dòng)最少的(甚至沒(méi)有)可用的服務(wù)。

如果拿不定把握(有關(guān) Exim、DHCP.。。),可執(zhí)行 ps aux 或檢查 /etc/init.d/* 和/etc/inetd.conf 下的內(nèi)容,還可以使用 用 PAM 來(lái)控制登錄, 第 9.2.1 節(jié) 中提到的方法檢查/etc/hosts.deny。pidof 命令也很有用(參閱 pidof(8))

在最近的 Debian 系統(tǒng)中,默認(rèn)狀態(tài)下 X11 不允許 TCP/IP(遠(yuǎn)程)連接。參閱 在 TCP/IP 中使用 X, 第 9.4.1 節(jié),使用 SSH 進(jìn)行 X 傳送也是禁用的,參閱 聯(lián)接遠(yuǎn)程的 X 服務(wù)器 – ssh, 第 9.4.8 節(jié)

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 軟件包
    +關(guān)注

    關(guān)注

    0

    文章

    104

    瀏覽量

    11663
  • Debian
    +關(guān)注

    關(guān)注

    0

    文章

    75

    瀏覽量

    1253
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux環(huán)境下如何管理Python包管理工具

    Linux環(huán)境下,需要對(duì)軟件包進(jìn)行安裝、卸載、升級(jí)和查詢等操作,包含這些操作的工具,稱為包管理工具。
    發(fā)表于 08-22 15:14 ?690次閱讀
    Linux環(huán)境下如何<b class='flag-5'>管理</b>Python<b class='flag-5'>包管理</b>工具

    RT-Thread Studio中的RT-Thread Setting中已經(jīng)有軟件包管理和組件服務(wù)管理了,那還需要env工具嗎?

    RT-Thread Studio中的RT-Thread Setting中已經(jīng)有軟件包管理和組件服務(wù)管理了,那還需要env工具嗎,如果也使用env工具那不是和RT-Thread Setting中的管理沖突了?
    發(fā)表于 02-23 07:36

    rpm軟件包使用

    1-8-rhel7-軟件包管理
    發(fā)表于 08-09 09:56

    命令終端的常用操作有哪些?軟件包管理機(jī)制是什么

    一.命令終端(terminal)常用操作:ctrl+shift +t,在終端上打開(kāi)多個(gè)標(biāo)簽ctrl+alt+t,在終端上打開(kāi)另外一個(gè)終端二.deb軟件包管理1.Debian 軟件包管理
    發(fā)表于 12-21 06:38

    TB-RK3588x預(yù)裝的debian11常用軟件包介紹

    1、TB-RK3588x預(yù)裝的debian11常用軟件包系統(tǒng)軟件包TB-RK3588x預(yù)裝的debian11內(nèi)預(yù)置了以下常用到的各種軟件包
    發(fā)表于 06-16 17:55

    linux基礎(chǔ)(軟件包管理)

    介紹linux下軟件包主要的安裝方式:1 命令行安裝 2 圖像界面安裝 3 源代碼編譯安裝等
    發(fā)表于 03-25 14:01 ?3次下載

    debian安裝教程

    如果你使用Debian軟件包管理器來(lái)管理Linux軟件,應(yīng)該詳細(xì)了解Debian軟件倉(cāng)庫(kù)的原理,
    的頭像 發(fā)表于 02-23 09:14 ?1.1w次閱讀

    Linux教程之如何進(jìn)行軟件包管理

    軟件包管理器(RPM)是開(kāi)放打包系統(tǒng),在Red Hat Linux 里,因?yàn)橛辛薘ed Hat PackageManager(Red Hat 軟件包管理器),而使得安裝和升級(jí)軟件包輕松簡(jiǎn)單。RPM
    發(fā)表于 11-30 16:36 ?6次下載

    Linux Debian 11 Bullseye發(fā)布暫定軟件包凍結(jié)日期計(jì)劃

    Debian開(kāi)發(fā)團(tuán)隊(duì)發(fā)布了下一個(gè)主要版本Debian 11 Bullseye的暫定軟件包凍結(jié)日期計(jì)劃。
    的頭像 發(fā)表于 03-13 14:18 ?3670次閱讀
    Linux <b class='flag-5'>Debian</b> 11 Bullseye發(fā)布暫定<b class='flag-5'>軟件包</b>凍結(jié)日期計(jì)劃

    開(kāi)源軟件包管理升級(jí)的多目標(biāo)優(yōu)化方法

    近年來(lái),開(kāi)源軟件包管理成為軟件產(chǎn)品重用的一種普遍方式,尤其是在Linuⅹ發(fā)行版操作系統(tǒng)領(lǐng)域。其中,軟件升級(jí)題是軟件包管理工具必須要解決的關(guān)鍵挑戰(zhàn)之一。
    發(fā)表于 05-19 10:58 ?0次下載

    如何更新存儲(chǔ)庫(kù)簽名密鑰

      為了最好地確保 RPM 和 Debian 軟件包存儲(chǔ)庫(kù)的安全性和可靠性, NVIDIA 從 2022 年 4 月 27 日開(kāi)始更新并輪換apt、dnf/yum和zypper軟件包管理器使用的簽名密鑰。
    的頭像 發(fā)表于 05-07 10:50 ?1551次閱讀

    什么是Linux軟件包,如何管理它們

    現(xiàn)代類 Unix 操作系統(tǒng)都提供了一個(gè)集中的軟件包管理機(jī)制,以幫助用戶搜索、安裝和管理軟件。而軟件通常以包的形式存儲(chǔ)在倉(cāng)庫(kù)中,對(duì)軟件包的使用和管理
    的頭像 發(fā)表于 02-06 14:59 ?1513次閱讀

    在Linux中如何查找軟件包版本

    中找到軟件包版本,例如 Alpine Linux、Arch Linux 及其衍生產(chǎn)品、Debian 及其衍生產(chǎn)品、RHEL 及其衍生產(chǎn)品。
    的頭像 發(fā)表于 05-12 16:33 ?3145次閱讀

    華為云 CodeArts?Artifact:數(shù)字化時(shí)代軟件包管理的領(lǐng)航者

    隨著數(shù)字化浪潮的席卷,企業(yè)正在經(jīng)歷一場(chǎng)深刻的變革,而軟件包管理作為數(shù)字化轉(zhuǎn)型的關(guān)鍵環(huán)節(jié)備受矚目。在這個(gè)背景下,華為云 CodeArts?Artifact 應(yīng)運(yùn)而生,不僅僅是一款軟件包管理工具,更是
    的頭像 發(fā)表于 12-11 12:06 ?1332次閱讀
    華為云 CodeArts?Artifact:數(shù)字化時(shí)代<b class='flag-5'>軟件包管理</b>的領(lǐng)航者

    解鎖數(shù)字化時(shí)代的軟件包管理利器—華為云 CodeArts Artifact

    在數(shù)字化浪潮中,軟件開(kāi)發(fā)的速度和規(guī)模不斷增長(zhǎng),因此對(duì)于高效、安全的軟件包管理工具的需求也愈發(fā)迫切。華為云 CodeArts?Artifact 在此背景下應(yīng)運(yùn)而生,作為一款全面、高效的制品倉(cāng)庫(kù)服務(wù)
    的頭像 發(fā)表于 12-11 12:07 ?1330次閱讀
    解鎖數(shù)字化時(shí)代的<b class='flag-5'>軟件包管理</b>利器—華為云 CodeArts Artifact
    主站蜘蛛池模板: 欧美行爱| 最近观看免费高清视频 | 亚洲免费播放 | 亚洲最新在线 | 国产精品视频永久免费播放 | 美女操出水 | 国产在线99 | 色多多福利网站老司机 | 国产成人三级经典中文 | 成人午夜大片免费视频77777 | 欧美videos 另类| 日本三级吹潮 | 永久免费观看视频 | 噜噜噜噜噜久久久久久91 | 色88888久久久久久影院 | 亚洲第8页 | 夜夜天天操 | 337p欧洲亚洲大胆艺术 | 国模精品视频一区二区三区 | 欧美video free xxxxx | 国产一级影院 | 亚洲四虎影院 | 天天干小说 | 国产精品一区电影 | 2021年最热新版天堂资源中文 | 男女吃奶一进一出动态图 | 男男污肉高h坐便器调教 | 天堂资源最新版在线官网 | 免费人成在线 | 台湾一级毛片 | 特级毛片aaaa免费观看 | 亚欧毛片基地国产毛片基地 | 天天爽夜爽免费精品视频 | 天天干人人干 | 午夜dy888理论 | 福利视频一区二区牛牛 | 亚洲91精品| 亚洲丰满熟妇毛片在线播放 | 色婷综合 | 亚洲欧洲无码一区二区三区 | 黄 色 片成 人免费观看 |