新聞中心
目錄

成都網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁(yè)設(shè)計(jì)、成都網(wǎng)站建設(shè)、微信開(kāi)發(fā)、成都小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站制作等服務(wù)項(xiàng)目。核心團(tuán)隊(duì)均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗(yàn),服務(wù)眾多知名企業(yè)客戶;涵蓋的客戶類型包括:成都餐廳設(shè)計(jì)等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗(yàn),同時(shí)也獲得了客戶的一致表?yè)P(yáng)!
- 2.1. Debian 軟件包管理的前提
-
- 2.1.1. 軟件包配置
- 2.1.2. 基本的注意事項(xiàng)
- 2.1.3. 持續(xù)升級(jí)的生活
- 2.1.4. Debian 檔案庫(kù)基礎(chǔ)
- 2.1.5. Debian 是100% 的自由軟件
- 2.1.6. 軟件包依賴關(guān)系
- 2.1.7. 包管理的事件流
- 2.1.8. 對(duì)包管理問(wèn)題的第一個(gè)回應(yīng)
- 2.2. 基礎(chǔ)軟件包管理操作
-
-
2.2.1.
aptvs.apt-get/apt-cachevs.aptitude - 2.2.2. 命令行中的基礎(chǔ)軟件包管理操作
- 2.2.3. aptitude 的交互式使用
- 2.2.4. aptitude 的按鍵綁定
- 2.2.5. aptitude 軟件包視圖
- 2.2.6. aptitude 搜索方式選項(xiàng)
- 2.2.7. aptitude 正則表達(dá)式
- 2.2.8. aptitude 的依賴解決
- 2.2.9. 軟件包活動(dòng)日志
-
2.2.1.
- 2.3. aptitude 操作范例
-
- 2.3.1. 通過(guò)正則表達(dá)式匹配軟件包名稱來(lái)列出軟件包
- 2.3.2. 使用正則表達(dá)式匹配瀏覽
- 2.3.3. 完整地清理已刪除軟件包
- 2.3.4. 調(diào)整自動(dòng)/手動(dòng)安裝狀態(tài)
- 2.3.5. 全面的系統(tǒng)升級(jí)
- 2.4. 高級(jí)軟件包管理操作
-
- 2.4.1. 命令行中的高級(jí)軟件包管理操作
- 2.4.2. 驗(yàn)證安裝的軟件包文件
- 2.4.3. 預(yù)防軟件包故障
- 2.4.4. 搜索軟件包元數(shù)據(jù)
- 2.5. Debian 軟件包內(nèi)部管理
-
- 2.5.1. 檔案庫(kù)元數(shù)據(jù)
- 2.5.2. 頂層“Release”文件及真實(shí)性
- 2.5.3. 檔案庫(kù)層的“Release”文件
- 2.5.4. 獲取用于軟件包的元數(shù)據(jù)
- 2.5.5. APT 的軟件包狀態(tài)
- 2.5.6. aptitude 的軟件包狀態(tài)
- 2.5.7. 獲取的軟件包的本地副本
- 2.5.8. Debian 軟件包文件名稱
- 2.5.9. dpkg 命令
- 2.5.10. update-alternatives 命令
- 2.5.11. dpkg-statoverride 命令
- 2.5.12. dpkg-divert 命令
- 2.6. 從損壞的系統(tǒng)中恢復(fù)
-
- 2.6.1. Failed installation due to missing dependencies
- 2.6.2. Caching errors of the package data
- 2.6.3. 不兼容舊的用戶配置
- 2.6.4. 具有相同文件的不同軟件包
- 2.6.5. 修復(fù)損壞的軟件包腳本
- 2.6.6. 使用 dpkg 命令進(jìn)行救援
- 2.6.7. 恢復(fù)軟件包選擇數(shù)據(jù)
- 2.7. 軟件包管理技巧
-
- 2.7.1. 如何挑選 Debian 軟件包
- 2.7.2. 混合源檔案庫(kù)中的軟件包
- 2.7.3. 調(diào)整候選版本
- 2.7.4. 更新和向后移植
- 2.7.5. 阻止推薦的軟件包的安裝
-
2.7.6. 使用帶有
unstable軟件包的testing版本 -
2.7.7. 使用帶有
experimental軟件包的unstable版本 - 2.7.8. 自動(dòng)下載和升級(jí)軟件包
- 2.7.9. 限制 APT 的下載帶寬
- 2.7.10. 緊急降級(jí)
- 2.7.11. 上傳軟件包的是誰(shuí)?
- 2.7.12. equivs 軟件包
- 2.7.13. 移植一個(gè)軟件包到 stable 系統(tǒng)
- 2.7.14. 用于 APT 的代理服務(wù)器
- 2.7.15. 更多關(guān)于軟件包管理的文檔
| 注意 | |
|---|---|
|
這一章假定最新的穩(wěn)定版的代號(hào)為: |
Debian 是一個(gè)志愿者組織,它建立一致的自由軟件的預(yù)編譯二進(jìn)制包并從檔案庫(kù)中分發(fā)它們。
許多遠(yuǎn)程鏡像站提供了 HTTP 和 FTP 的方式來(lái)訪問(wèn) Debian 檔案庫(kù)。也可以使用 CD-ROM/DVD 。
目前 Debian 的軟件包管理系統(tǒng)是 高級(jí)軟件包工具 (APT),它能夠使用所有這些資源。
Debian 軟件包管理系統(tǒng),當(dāng)使用適當(dāng)時(shí),可以讓用戶從檔案庫(kù)安裝統(tǒng)一設(shè)置的二進(jìn)制軟件包 到系統(tǒng)中?,F(xiàn)在,有 66314 個(gè)可用于 amd64 架構(gòu)的軟件包。
Debian 軟件包管理系統(tǒng)有豐富的歷史,有許多可供選擇的前端用戶程序和后端訪問(wèn)方式?,F(xiàn)在,我們推薦下列的這些。
-
apt(8) 用于所有的交互式命令行操作,包含軟件包的安裝、移除和版本升級(jí)。 -
apt-get(8) 用于從腳本中調(diào)用 Debian 軟件包管理系統(tǒng)。它在apt不可用時(shí)也可作為一個(gè)備選選項(xiàng)(常見(jiàn)于較舊的 Debian 系統(tǒng))。 -
aptitude(8) 使用一個(gè)交互式的文本界面來(lái)管理已安裝的軟件包和搜索可用的軟件包。
表 2.1. Debian 軟件包管理工具列表
| 軟件包 | 流行度 | 大小 | 說(shuō)明 |
|---|---|---|---|
dpkg |
V:924, I:999 | 6900 | 用于 Debian 的底層軟件包管理系統(tǒng)(基于文件的) |
apt |
V:870, I:999 | 4351 | 使用命令行管理軟件包的 APT 前端: apt/apt-get/apt-cache |
aptitude |
V:66, I:359 | 4256 | 使用全屏控制臺(tái)交互式管理軟件包的 APT 前端: aptitude(8) |
tasksel |
V:34, I:978 | 395 | 用來(lái)安裝選擇的任務(wù)的 APT 前端: tasksel(8) |
unattended-upgrades |
V:314, I:465 | 326 | 用于 APT 的增強(qiáng)軟件包,會(huì)自動(dòng)安裝安全更新 |
gnome-software |
V:130, I:232 | 2856 | GNOME 軟件中心(圖形化的 APT 前端) |
synaptic |
V:46, I:356 | 7874 | 圖形化的軟件包管理工具(GTK 的 APT 前端) |
apt-utils |
V:382, I:997 | 1167 | APT 實(shí)用程序:apt-extracttemplates(1) 、apt-ftparchive(1) 和 apt-sortpkgs(1) |
apt-listchanges |
V:358, I:855 | 423 | 軟件包歷史更改提醒工具 |
apt-listbugs |
V:7, I:11 | 465 | 在每次 APT 安裝前列出嚴(yán)重的 bug |
apt-file |
V:18, I:75 | 90 | APT 軟件包搜索工具 —— 命令行界面 |
apt-rdepends |
V:0, I:6 | 41 | 遞歸列出軟件包依賴 |
2.1. Debian 軟件包管理的前提
2.1.1. 軟件包配置
下面是 Debian 系統(tǒng)軟件包配置的一些要點(diǎn)。
-
Debian 尊重系統(tǒng)管理員的手動(dòng)配置。換句話說(shuō),軟件包配置系統(tǒng)不會(huì)為了方便而去更改那些配置。
-
每個(gè)軟件包都帶有自己的配置腳本,它使用標(biāo)準(zhǔn)用戶接口
debconf(7) 來(lái)幫助軟件包初始化安裝過(guò)程。 -
Debian 開(kāi)發(fā)者通過(guò)軟件包配置腳本,盡力使你能有一個(gè)完美的升級(jí)體驗(yàn)。
-
系統(tǒng)管理員可以使用軟件包工具的全部功能。但在默認(rèn)的安裝中會(huì)禁用那些具有安全風(fēng)險(xiǎn)的。
-
如果你手動(dòng)激活了一些具有安全隱患的服務(wù),你有責(zé)任遏制風(fēng)險(xiǎn)。
-
高深的配置可以由系統(tǒng)管理員手動(dòng)啟用。這可能會(huì)對(duì)用于系統(tǒng)配置的通用流行幫助程序造成干擾。
2.1.2. 基本的注意事項(xiàng)
| 警告 | |
|---|---|
|
不要從任何的混合套件中安裝軟件包。它可能會(huì)打破軟件包的一致性,這需要你要深厚的系統(tǒng)管理知識(shí),例如 ABI 編譯器、庫(kù)版本和解釋器特性等等。 |
Debian 系統(tǒng)管理員中的新手應(yīng)該保持在只進(jìn)行安全更新的 stable 版本。我的意思是,最好避免下列的一些行為作為一項(xiàng)預(yù)防措施,直到你十分了解 Debian 系統(tǒng)。下面有一些提醒。
-
在 “
/etc/apt/sources.list” 中不要包含testing或unstable。 -
在 “
/etc/apt/sources.list” 里不要在標(biāo)準(zhǔn)的 Debian 中混合使用其它非 Debian 的檔案庫(kù),例如 Ubuntu 。 -
不要建立 “
/etc/apt/preferences” 。 -
不了解會(huì)造成的全部影響,就不要通過(guò)配置文件改變軟件包管理工具的默認(rèn)行為。
-
不要使用 “
dpkg -i random_package” 安裝任何軟件包。 -
絕不使用 “
dpkg --force-all -i random_package” 安裝任何軟件包。 -
不要?jiǎng)h除或修改 “
/var/lib/dpkg/” 中的文件。 -
不要讓從源碼直接安裝的程序覆蓋系統(tǒng)文件。
-
如果需要的話,將它們安裝到 “
/usr/local” 或 “/opt” 中。
-
上述對(duì) Debian 軟件包管理系統(tǒng)做的行為所導(dǎo)致的不兼容影響可能會(huì)使你的系統(tǒng)無(wú)法使用。
負(fù)責(zé)有關(guān)鍵任務(wù)的服務(wù)器的嚴(yán)謹(jǐn)?shù)?Debian 系統(tǒng)系統(tǒng)管理員,應(yīng)該使用額外的預(yù)防措施。
-
沒(méi)有在安全的條件下使用你特定的配置進(jìn)行徹底地測(cè)試,就不要從 Debian 安裝任何軟件包(包含安全更新)。
-
你作為系統(tǒng)管理員要對(duì)你的系統(tǒng)負(fù)責(zé)到底。
-
Debian 系統(tǒng)長(zhǎng)久的穩(wěn)定史并無(wú)法保證什么。
-
2.1.3. 持續(xù)升級(jí)的生活
| 小心 | |
|---|---|
|
對(duì)于你的生產(chǎn)服務(wù)器,建議使用帶有安全更新的 |
盡管我在上面進(jìn)行了警告,我知道本文檔的許多讀者希望可以運(yùn)行更新的 testing 或 unstable 版。
菩薩使用下面的內(nèi)容拯救一個(gè)人,使他從掙扎于持續(xù)升級(jí)地獄的因果報(bào)應(yīng)中脫困,并讓他達(dá)到 Debian 的極樂(lè)世界。
這個(gè)列表面向 自己管理的 桌面環(huán)境。
-
使用
testing版,實(shí)際上,它是自動(dòng)滾動(dòng)發(fā)布的,由 Debian 檔案庫(kù)的 QA 質(zhì)量架構(gòu)來(lái)管理,比如:Debian 持續(xù)集成、只上傳源代碼實(shí)踐 和 庫(kù)轉(zhuǎn)換跟蹤。在testing版中的軟件包被更新得足夠頻繁來(lái)提供全部最新的特性。 -
在"
/etc/apt/sources.list"里面設(shè)置testing版相應(yīng)的代碼名(目前是 “bookworm”)。 -
大概在主版本發(fā)布一個(gè)月后,僅僅在你自己評(píng)估了形勢(shì)后,才手動(dòng)更新"
/etc/apt/sources.list"里的這個(gè)代碼名到新的版本號(hào)。對(duì)于這個(gè)更新,Debian 用戶和開(kāi)發(fā)者郵件列表也是好的信息來(lái)源。
使用 unstable 版是不推薦的。unstable 版對(duì)開(kāi)發(fā)者 調(diào)試軟件包合適,但對(duì)普通的桌面使用而言,會(huì)有使你暴露在不必要的風(fēng)險(xiǎn)中的傾向。 盡管 Debian 系統(tǒng)的 unstable 版在大多數(shù)時(shí)候看起來(lái)都非常穩(wěn)定,但會(huì)有一些軟件包問(wèn)題,并且它們中的一部分是不容易解決的。
這里有一些基本預(yù)防措施意見(jiàn),確保簡(jiǎn)單快速地從 Debian 軟件包的 bug 中恢復(fù)。
-
通過(guò)將 Debian 系統(tǒng)的
stable版安裝到另一個(gè)分區(qū),可以使系統(tǒng)能夠進(jìn)行雙啟動(dòng) -
制作安裝 CD 便于用于 救援啟動(dòng)
-
考慮安裝
apt-listbugs,這可以在升級(jí)之前檢查 Debian Bug 跟蹤系統(tǒng)(BTS) 的信息 -
對(duì)軟件包系統(tǒng)的基礎(chǔ)設(shè)施有足夠的了解來(lái)解決問(wèn)題
-
在遇到問(wèn)題的情況下,安裝上游相應(yīng)的沙盒化二進(jìn)制軟件包(參見(jiàn) 第 7.6 節(jié) “沙盒”)
-
建立一個(gè) chroot 或類似的環(huán)境來(lái)提前運(yùn)行最新的系統(tǒng)(參見(jiàn)第 9.11 節(jié) “虛擬化系統(tǒng)”)
| 小心 | |
|---|---|
|
如果你無(wú)法做到這些預(yù)防措施中的任何一個(gè),那你可能還沒(méi)做好使用 |
2.1.4. Debian 檔案庫(kù)基礎(chǔ)
讓我們從系統(tǒng)用戶的角度來(lái)看看 Debian 檔案庫(kù)。
| 提示 | |
|---|---|
|
Debian 檔案庫(kù)官方政策的定義參見(jiàn) Debian 政策文檔,第2章 —— Debian 檔案庫(kù)。 |
對(duì)于典型的 HTTP 訪問(wèn),檔案庫(kù)在 “/etc/apt/sources.list” 文件中像下面那樣指定,例如,現(xiàn)在 stable = bullseye 系統(tǒng)。
deb http://deb.debian.org/debian/ bullseye main contrib non-free deb-src http://deb.debian.org/debian/ bullseye main contrib non-free deb http://security.debian.org/debian-security bullseye-security main contrib deb-src http://security.debian.org/debian-security bullseye-security main contrib
這里,我傾向于使用代號(hào) “bullseye” 來(lái)代替套件名 “stable” ,以避免下一個(gè) stable 版本發(fā)布時(shí)出現(xiàn)意外。
“/etc/apt/sources.list” 的含義在 sources.list(5) 中進(jìn)行了描述,下面是一些要點(diǎn)。
-
“
deb” 的那行定義了二進(jìn)制軟件包。 -
“
deb-src” 的那行定義了源代碼軟件包。 -
第一個(gè)參數(shù)是 Debian 檔案庫(kù)的根 URL 。
-
第二個(gè)參數(shù)是發(fā)行版名稱:可以使用套件名或代號(hào)。
-
第三個(gè)和之后的參數(shù)是 Debian 檔案庫(kù)的有效檔案庫(kù)范圍名稱。
如果只是用 aptitude(它不訪問(wèn)源代碼相關(guān)的元數(shù)據(jù)),“deb-src”那行可以安全地刪掉(或者在文件開(kāi)頭添加 “#” 來(lái)將它注釋掉)。這可以加速檔案庫(kù)元數(shù)據(jù)的更新。URL 可以是“http://” 、“ftp://” 、 “file://” ……
| 提示 | |
|---|---|
|
如果在上述的例子中,使用了 “ |
下面是配置文件所使用的 Debian 檔案庫(kù)站點(diǎn)的 URL 和套件名或代號(hào)的列表。
表 2.2. Debian 檔案庫(kù)站點(diǎn)列表
| 檔案庫(kù) URL | 套件名(代號(hào)) | 目的 |
|---|---|---|
| http://deb.debian.org/debian/ | stable (bullseye) |
stable (bullseye) release 版本 |
| http://deb.debian.org/debian/ | testing (bookworm) |
testing (bookworm) release 版本 |
| http://deb.debian.org/debian/ | unstable (sid) |
unstable (sid) release 版本 |
| http://deb.debian.org/debian/ | experimental |
experimental pre-release 版本(可選,只適用于開(kāi)發(fā)者) |
| http://deb.debian.org/debian/ | stable-proposed-updates (bullseye-proposed-updates) |
用于下一個(gè)穩(wěn)定版 (bullseye)點(diǎn)版本(小版本)發(fā)布的更新(可選) |
| http://deb.debian.org/debian/ | stable-updates(bullseye-updates) |
用于穩(wěn)定版( bullseye )的垃圾郵件過(guò)濾器、IM客戶端等的兼容更新 |
| http://deb.debian.org/debian/ | stable-backports (bullseye-backports) |
用于穩(wěn)定版(bullseye ) 的較新的向后移植的軟件包(可選) |
| http://security.debian.org/debian-security/ | stable-security (bullseye-security) |
用于穩(wěn)定版(bullseye) 發(fā)布的安全更新(重要) |
| http://security.debian.org/debian-security/ | testing-security (bookworm-security) |
用于測(cè)試版發(fā)布的安全更新(這個(gè)沒(méi)有安全團(tuán)隊(duì)的積極支持) |
| 小心 | |
|---|---|
|
只有帶有安全更新的純凈的 |
| 小心 | |
|---|---|
|
在 " |
| 提示 | |
|---|---|
|
對(duì)于使用 |
| 注意 | |
|---|---|
|
Debian 安全團(tuán)體將會(huì)修正 |
表 2.3. Debian 歸檔區(qū)域(area)列表
| 區(qū)域 | 軟件包數(shù)量 | 軟件包組件標(biāo)準(zhǔn) |
|---|---|---|
main |
65132 | 遵從 Debian 自由軟件指導(dǎo)方針(DFSG),并且不依賴于 non-free |
contrib |
372 | 遵從 Debian 自由軟件指導(dǎo)方針(DFSG),但依賴于 non-free |
non-free |
810 | 不遵從 Debian 自由軟件指導(dǎo)方針(DFSG) |
上述軟件包的數(shù)量是 amd64 架構(gòu)的。main 區(qū)域提供 Debian 系統(tǒng)(參見(jiàn) 第 2.1.5 節(jié) “Debian 是100% 的自由軟件”)。
通過(guò)把你的瀏覽器指向檔案庫(kù) URL,這些 URL 在 dists 或 pool 之后是各不相同的,Debian 檔案庫(kù)能夠被有規(guī)劃的組織。
發(fā)行版可以用套件或代號(hào)來(lái)指定。發(fā)行版在許多文檔中也被當(dāng)做是套件的同義詞。套件和代號(hào)的關(guān)系總結(jié)如下。
表 2.4. 套件和代號(hào)的關(guān)系
| 時(shí)間 | suite = stable |
suite = testing |
suite = unstable |
|---|---|---|---|
在 bullseye 發(fā)布后 |
codename = bullseye |
codename = bookworm |
codename = sid |
在 bookworm 發(fā)布后 |
codename = bookworm |
codename = trixie |
codename = sid |
代號(hào)的歷史參見(jiàn) Debian FAQ: 6.2.1 以前用過(guò)哪些代號(hào)名?
在較嚴(yán)格的 Debian 檔案術(shù)語(yǔ),“部分 section”這一詞特指按應(yīng)用領(lǐng)域來(lái)分類的軟件包類別。(但是,主要部分 ("main section") 這一詞有時(shí)會(huì)用來(lái)描述 Debian 檔案區(qū)中,名為”main 主要"的區(qū)域 。)
Debian 開(kāi)發(fā)者(DD)每次上傳軟件包到 unstable 檔案庫(kù)(通過(guò) incoming 處理),都必須確保上傳的軟件包與最新的 unstable 檔案庫(kù)中的最新軟件包兼容。
如果 DD 故意打破重要的庫(kù)升級(jí)等的這種兼容性,這通常會(huì)在 Debian 開(kāi)發(fā)者郵件列表等進(jìn)行公告。
在 Debian 檔案庫(kù)維護(hù)腳本將軟件包從 unstable 檔案庫(kù)移動(dòng)到 testing 檔案庫(kù)前,檔案庫(kù)維護(hù)腳本不僅檢查時(shí)間(約10天)和軟件包的 RC bug 報(bào)告的狀態(tài),還嘗試確保它們可以和最新的 testing 檔案庫(kù)中的軟件兼容。這個(gè)過(guò)程使得testing 檔案庫(kù)非常正確可用。
通過(guò)由發(fā)布團(tuán)隊(duì)領(lǐng)導(dǎo)的逐步凍結(jié)檔案庫(kù)的過(guò)程,并進(jìn)行一些手動(dòng)干預(yù),使 testing 檔案庫(kù)完全一致,無(wú)缺陷。然后,將舊的 testing 檔案庫(kù)的代碼名稱分配給新的 stable 檔案庫(kù),并為新的 testing 檔案庫(kù)創(chuàng)建新的代碼名稱。新的 testing 檔案庫(kù)最初的內(nèi)容和新發(fā)布的 stable 檔案庫(kù)的內(nèi)容完全相同。
unstable 和 testing 檔案庫(kù)都可能會(huì)遭受由以下幾個(gè)因素導(dǎo)致的臨時(shí)的小故障。
-
損壞的軟件包被上傳到檔案庫(kù)(多見(jiàn)于
unstable) -
延遲接受新的軟件包到檔案庫(kù)(多見(jiàn)于
unstable) -
檔案庫(kù)時(shí)間同步問(wèn)題(
testing和unstable) -
手動(dòng)干預(yù)檔案庫(kù),例如移除軟件包(多見(jiàn)于
testing)等。
因此,如果你決定使用這些檔案庫(kù),你應(yīng)該能夠修復(fù)或忍受這些類型的小故障。
| 小心 | |
|---|---|
|
在新的 |
| 提示 | |
|---|---|
|
跟蹤 |
檔案庫(kù)的定義參見(jiàn) Debian 政策文檔。
-
部分
-
"優(yōu)先級(jí)"
-
"基本系統(tǒng)"
-
"極重要的軟件包"
2.1.5. Debian 是100% 的自由軟件
Debian 是100%的自由軟件,因?yàn)椋?/p>
-
Debian 默認(rèn)只安裝自由軟件,這尊重了用戶的自由。
-
Debian 在
main中只提供自由軟件。 -
Debian 建議只運(yùn)行來(lái)自
main的自由軟件。 -
在
main中的軟件包沒(méi)有依賴于在non-free或contrib中的軟件包。
有人想知道下列的兩個(gè)事實(shí)是否互相矛盾。
-
“ Debian 將始終是 100% 的自由軟件”。( Debian 社群契約中的第一條)
-
Debian 服務(wù)器上有一些
non-free和contrib軟件包。
因?yàn)橄铝性颍@并不矛盾。
-
Debian 系統(tǒng)具有100%的自由,并且它的軟件包位于 Debian 服務(wù)器的
main區(qū)域。 -
Debian 系統(tǒng)之外的軟件包位于 Debian 服務(wù)器的
non-free和contrib區(qū)域。
在 Debian 社群契約的第4條和第5條對(duì)這進(jìn)行了明確的解釋:
-
我們將優(yōu)先考慮我們的用戶及自由軟件
-
我們由我們的用戶及自由軟件社群的需要所導(dǎo)向。我們將優(yōu)先考慮他們的利益。我們將在多種計(jì)算環(huán)境中支持我們的用戶的操作需要。我們不反對(duì)在 Debian 系統(tǒng)上使用非自由軟件,我們也不會(huì)嘗試向創(chuàng)建和使用這部分軟件的用戶索取費(fèi)用。我們?cè)试S他人,在沒(méi)有我們的資金的參與下,制造包括 Debian 以及商業(yè)軟件的增值套件。為了達(dá)成這些目標(biāo),我們將提供集成的、高質(zhì)量的、100%自由的軟件,而不附加任何可能阻止在這些方面使用的法律限制。
-
-
哪些作品不符合我們的自由軟件規(guī)范
-
我們明了,某些我們的用戶需要使用不符合 Debian 自由軟件指導(dǎo)方針的作品。 我們?yōu)檫@些作品,在我們的檔案庫(kù)中留出了 “
contrib" 以及 “non-free" 目錄。在這些目錄下的軟件包,并不屬于 Debian 系統(tǒng) 盡管它們已被配置成可以在 Debian 下使用。我們鼓勵(lì)光盤(pán)制造商閱讀這些目錄下的軟件的許可證,以判斷他們是否可以在光盤(pán)中發(fā)行這些軟件 。所以,盡管非自由軟件并非 Debian 系統(tǒng)的一部分,我們?nèi)灾С炙鼈兊氖褂?,并且我們?yōu)榉亲杂绍浖峁┝斯操Y源 (諸如我們的缺陷跟蹤系統(tǒng)以及郵件列表)。
-
用戶應(yīng)該了解使用 non-free 和 contrib 中的軟件包所需要冒的風(fēng)險(xiǎn):
-
使用類似的軟件包會(huì)失去自由
-
失去 Debian 對(duì)軟件包的支持(這些軟件包無(wú)法訪問(wèn)源代碼,Debian 不能進(jìn)行完全的支持。)
-
污染你100%自由的 Debian 系統(tǒng)
Debian 自由軟件指導(dǎo)方針為 Debian 設(shè)立了自由軟件標(biāo)準(zhǔn)。Debian 對(duì)軟件包中的軟件做了最廣泛的解釋,包含文檔、固件、圖標(biāo)和圖形數(shù)據(jù)。這使得 Debian 的自由軟件標(biāo)準(zhǔn)非常嚴(yán)格。
典型的 non-free 和 contrib 軟件包包含了下列類型的自由分發(fā)的軟件包:
-
在GNU Free Documentation License下的文檔包 ,包含不變的部分 ,比如GCC 和 Make的。 (大多數(shù)都可以在
non-free/doc找到 .) -
包含沒(méi)有源代碼的二進(jìn)制數(shù)據(jù)的固件軟件包,例如在 第 9.10.5 節(jié) “硬件驅(qū)動(dòng)和固件” 中列出的 non-free 軟件包。(多見(jiàn)于
non-free/kernel部分。) -
游戲和字體軟件包,對(duì)商業(yè)使用和/或內(nèi)容修改進(jìn)行了限制。
請(qǐng)注意,non-free 和 contrib 軟件包的數(shù)量少于 main 軟件包的2%。允許訪問(wèn) non-free 和 contrib 并不會(huì)模糊軟件包的來(lái)源。使用 aptitude(8) 的全屏交互式界面可以提供完全的可見(jiàn)性和完全的控制,可以讓你決定安裝來(lái)自某個(gè)部分的軟件包,來(lái)使你的系統(tǒng)保持自由。
2.1.6. 軟件包依賴關(guān)系
Debian 系統(tǒng)通過(guò)其控制文件字段中的版本化二進(jìn)制依賴聲明機(jī)制來(lái)提供一致的二進(jìn)制軟件包集合。下面有一些它們的簡(jiǎn)單定義。
-
“依賴”
-
絕對(duì)的依賴,所有在這里列出的軟件包都必須同時(shí)或提前安裝。
-
-
"預(yù)依賴"
-
類似于 Depends,但列出的軟件包必須提前完成安裝。
-
-
"推薦"
-
這里表示一個(gè)強(qiáng),但不是絕對(duì)的依賴關(guān)系 。大多數(shù)用戶不會(huì)想要這個(gè)包,除非在這里列出的所有包都已經(jīng)安裝。
-
-
"建議"
-
較弱的依賴。這個(gè)軟件包的大多數(shù)用戶可能會(huì)從安裝所列的軟件包中受益,但沒(méi)有它們也可以有適當(dāng)?shù)墓δ堋?
-
-
"增強(qiáng)"
-
這里表明一個(gè)像建議的弱依賴關(guān)系,不裝也沒(méi)關(guān)系。
-
-
"破損"
-
表明一個(gè)軟件包不兼容一些版本規(guī)范。一般的解決方法就是升級(jí)列出的所有軟件包。
-
-
"沖突"
-
這表明了絕對(duì)的不兼容。為了安裝這個(gè)軟件包必須移除所有列出的軟件包。
-
-
"替代"
-
這表明這個(gè)文件安裝的文件會(huì)替代所列的軟件包的文件。
-
-
"提供"
-
表明這個(gè)軟件包會(huì)提供所列的軟件包所有的文件和功能。
-
| 注意 | |
|---|---|
|
請(qǐng)注意,同時(shí)將 “Provides” 、“Conflicts” 和 “Replaces” 定義到一個(gè)虛擬的軟件包是一個(gè)明智的配置。這確保了在任何一個(gè)時(shí)間只能安裝一個(gè)提供該虛擬包的真正軟件包。 |
包含源代碼依賴關(guān)系的官方定義位于 the Policy Manual: Chapter 7 - Declaring relationships between packages。
2.1.7. 包管理的事件流
這是 APT 提供的軟件包管理的簡(jiǎn)單事件流摘要。
-
更新(“
apt update”、“aptitude update” 或 “apt-get update”):-
從遠(yuǎn)程檔案庫(kù)獲取檔案庫(kù)元數(shù)據(jù)
-
重建和更新 APT 使用的本地元數(shù)據(jù)
-
-
升級(jí)(“
apt upgrade” 和 “apt full-upgrade”,或 “aptitude safe-upgrade” 和 “aptitude full-upgrade”,或 “apt-get upgrade” 和 “apt-get dist-upgrade”):-
選擇候選版本,它所安裝的軟件包通常都是最新的可用版本(例外參見(jiàn) 第 2.7.3 節(jié) “調(diào)整候選版本” )
-
解決軟件包依賴關(guān)系
-
如果候選版本與已安裝的版本不同,會(huì)從遠(yuǎn)程檔案庫(kù)獲取所選擇的二進(jìn)制軟件包
-
解包所獲取的二進(jìn)制軟件包
-
運(yùn)行 preinst 腳本
-
安裝二進(jìn)制文件
-
運(yùn)行 postinst 腳本
-
-
安裝(“
apt install ...”、“aptitude install ..." 或者 "apt-get install …” ):-
選擇命令行中列出的包
-
解決軟件包依賴關(guān)系
-
從遠(yuǎn)程服務(wù)器獲取已選二進(jìn)制包
-
解包所獲取的二進(jìn)制軟件包
-
運(yùn)行 preinst 腳本
-
安裝二進(jìn)制文件
-
運(yùn)行 postinst 腳本
-
-
移除 ("
apt remove …", “aptitude remove …” 或 “apt-get remove …”):-
選擇命令行中列出的包
-
解決軟件包依賴關(guān)系
-
運(yùn)行 prerm 腳本
-
移除已安裝的文件,除了配置文件
-
運(yùn)行 postrm 腳本
-
-
清除 ("
apt purge",“aptitude purge …” 或 “apt-get purge …”):-
選擇命令行中列出的包
-
解決軟件包依賴關(guān)系
-
運(yùn)行 prerm 腳本
-
移除已安裝的文件,包含配置文件
-
運(yùn)行 postrm 腳本
-
這里,為了大局,我特意省略了技術(shù)細(xì)節(jié)。
2.1.8. 對(duì)包管理問(wèn)題的第一個(gè)回應(yīng)
你應(yīng)該閱讀優(yōu)良的官方文檔。第一個(gè)閱讀的文檔是 Debian 特定的 “/usr/share/doc/package_name/README.Debian”。同時(shí)也應(yīng)該查詢 “/usr/share/doc/package_name/” 中的其它文檔。如果你設(shè)置 shell 為第 1.4.2 節(jié) “定制 bash”,輸入下列命令。
$ cd package_name $ pager README.Debian $ mc
你可能需要安裝以 “-doc” 后綴命名的對(duì)應(yīng)文檔軟件包來(lái)獲取詳細(xì)的信息。
如果你在使用一個(gè)特定的軟件包時(shí)出現(xiàn)了問(wèn)題,一定要首先檢查 Debian bug 跟蹤系統(tǒng)(BTS) 網(wǎng)站。
表 2.5. 解決特定軟件包問(wèn)題的主要網(wǎng)站
| 網(wǎng)站 | 命令 |
|---|---|
| Debian bug 跟蹤系統(tǒng)(BTS) 的主頁(yè) | sensible-browser "http://bugs.debian.org/" |
| 軟件包名稱已知的 bug 報(bào)告 | sensible-browser "http://bugs.debian.org/package_name" |
| bug 編號(hào)已知的 bug 報(bào)告 | sensible-browser "http://bugs.debian.org/bug_number" |
使用 Google 搜索,在關(guān)鍵字中包含 “site:debian.org”,“site:wiki.debian.org”,“site:lists.debian.org” 等等。
當(dāng)你要發(fā)送一份 bug 報(bào)告時(shí),請(qǐng)使用 reportbug(1) 命令。
2.2. 基礎(chǔ)軟件包管理操作
在 Debian 系統(tǒng)中有許多基于 APT 的軟件包管理工具可以在 Debian 系統(tǒng)上進(jìn)行基于倉(cāng)庫(kù)的軟件包管理操作。在這里,我們將介紹 3 種基本的軟件包管理工具:apt,apt-get / apt-cache 和 aptitude 。
對(duì)于涉及軟件包安裝或更新軟件包元數(shù)據(jù)的軟件包管理操作,你必須有 root 權(quán)限。
2.2.1. apt vs. apt-get / apt-cache vs. aptitude
盡管 aptitude 是作者主要使用的一個(gè)非常好的可互動(dòng)工具,但你應(yīng)該知道下列警示:
-
不建議在新版本發(fā)布后在
stableDebian 系統(tǒng)上使用aptitude命令來(lái)進(jìn)行跨版本的系統(tǒng)升級(jí)。-
建議使用"
apt full-upgrade"或“apt-get dist-upgrade” 來(lái)進(jìn)行這個(gè)操作。參見(jiàn) Bug #411280。
-
-
aptitude命令有時(shí)候會(huì)為了testing或unstableDebian 系統(tǒng)升級(jí)清除大量軟件包。-
這個(gè)情況嚇壞了許多的系統(tǒng)管理員。請(qǐng)不要驚慌。
-
這似乎大多數(shù)是由元軟件包的依賴或推薦的軟件包版本偏差造成的,例如
gnome-core。 -
要解決這個(gè)問(wèn)題,可以在
aptitude命令菜單中選擇 “取消待執(zhí)行的動(dòng)作” ,退出aptitude,并使用 “apt full-upgrade”。
-
apt-get 和 apt-cache 是最基礎(chǔ) 的基于 APT 的軟件包管理工具。
-
apt-get和apt-cache只提供命令行用戶界面。 -
apt-get是進(jìn)行跨版本的主系統(tǒng)升級(jí)等操作的最合適工具。 -
apt-get提供了一個(gè)強(qiáng)大的軟件包依賴解析器。 -
apt-get對(duì)硬件資源的要求不高。它消耗更少的內(nèi)存并且運(yùn)行速度更快。 -
apt-cache提供了一個(gè) 標(biāo)準(zhǔn)的正則表達(dá)式來(lái)搜索軟件包名稱和描述。 -
apt-get和apt-cache可以使用/etc/apt/preferences來(lái)管理軟件包的多個(gè)版本,但這非常繁瑣。
apt 命令是一個(gè)用于軟件包管理的高級(jí)命令行界面。它基本上是 apt-get、apt-cache 和類似命令的一個(gè)封裝,被設(shè)計(jì)為針對(duì)終端用戶交互的界面,它默認(rèn)啟用了某些適合交互式使用的選項(xiàng)。
-
apt工具在用戶使用apt install安裝軟件包時(shí)提供了一個(gè)友好的進(jìn)度條。 -
在成功安裝下載的軟件包后,
apt將默認(rèn)刪除緩存的.deb軟件包。
| 提示 | |
|---|---|
|
建議用戶使用新的 |
aptitude 命令是最通用的基于 APT 的軟件包管理工具。
-
aptitude提供了一個(gè)全屏的交互式文本用戶界面。 -
aptitude同樣也提供了一個(gè)命令用戶界面。 -
aptitude是用于日常軟件包管理(例如檢查已安裝的軟件包和搜索可用的軟件包)的最合適工具。 -
aptitude對(duì)硬件資源的要求更高。它消耗更多的內(nèi)存并且運(yùn)行速度更慢。 -
aptitude提供一個(gè)增強(qiáng)的正則表達(dá)式來(lái)搜索所有的軟件包元數(shù)據(jù)。 -
aptitude可以管理軟件包的多個(gè)版本,并且不使用/etc/apt/preferences,這會(huì)十分直觀。
2.2.2. 命令行中的基礎(chǔ)軟件包管理操作
下面是使用 apt(8), aptitude(8) 和 apt-get(8) / apt-cache(8) 的命令行基本軟件包管理操作。
表 2.6. 使用 apt(8), aptitude(8) 和 apt-get(8) / apt-cache(8) 的命令行基本軟件包管理操作
apt 語(yǔ)法 |
aptitude 語(yǔ)法 |
apt-get / apt-cache 語(yǔ)法 |
說(shuō)明 |
|---|---|---|---|
apt update |
aptitude update |
apt-get update |
更新軟件包檔案庫(kù)元數(shù)據(jù) |
apt install foo |
aptitude install foo |
apt-get install foo |
安裝 “foo” 軟件包的候選版本以及它的依賴 |
apt upgrade |
aptitude safe-upgrade |
apt-get upgrade |
安裝已安裝的軟件包的候選版本并且不移除任何其它的軟件包 |
apt full-upgrade |
aptitude full-upgrade |
apt-get dist-upgrade |
安裝已安裝的軟件包的候選版本,并且需要的話會(huì)移除其它的軟件包 |
apt remove foo |
aptitude remove foo |
apt-get remove foo |
移除 “foo” 軟件包,但留下配置文件 |
apt autoremove |
N/A | apt-get autoremove |
移除不再需要的自動(dòng)安裝的軟件包 |
apt purge foo |
aptitude purge foo |
apt-get purge foo |
清除 “foo” 軟件包的配置文件 |
apt clean |
aptitude clean |
apt-get clean |
完全清除本地倉(cāng)庫(kù)的軟件包檢索文件 |
apt autoclean |
aptitude autoclean |
apt-get autoclean |
清除本地倉(cāng)庫(kù)中過(guò)時(shí)軟件包的軟件包檢索文件 |
apt show foo |
aptitude show foo |
apt-cache show foo |
顯示 “foo” 軟件包的詳細(xì)信息 |
apt search 正則表達(dá)式 |
aptitude search regex |
apt-cache search regex |
搜索匹配 regex 的軟件包 |
| N/A | aptitude why regex |
N/A | 解釋匹配 regex 的軟件包必須被安裝的原因 |
| N/A | aptitude why-not regex |
N/A | 解釋匹配 regex 的軟件包不必安裝的原因 |
| N/A | aptitude search '~i!~M' |
apt-mark showmanual |
列出手動(dòng)安裝的軟件包 |
apt / apt-get 和 aptitude 能夠混用,沒(méi)有大問(wèn)題。
“aptitude why regex” 可以通過(guò) “aptitude -v why regex” 列出更多的信息。類似的信息可以通過(guò)"apt rdepends package" 或 “apt-cache rdepends package” 獲取。
當(dāng) aptitude 命令在命令行模式下啟動(dòng)后遇到了一些問(wèn)題(例如軟件包沖突),你可以在之后的提示中按下 “e” 鍵切換到全屏的交互模式。
| 注意 | |
|---|---|
|
雖然 |
你可以在 “aptitude” 后面使用的命令選項(xiàng)。
表 2.7. aptitude(8) 中重要的命令選項(xiàng)
| 命令選項(xiàng) | 說(shuō)明 |
|---|---|
-s |
模擬命令的結(jié)果 |
-d |
僅下載,不進(jìn)行安裝/更新 |
-D |
在自動(dòng)安裝和刪除前,顯示簡(jiǎn)要的說(shuō)明 |
更多內(nèi)容參見(jiàn) aptitude(8) 和位于 “/usr/share/doc/aptitude/README” 的 “aptitude 用戶手冊(cè)”。
2.2.3. aptitude 的交互式使用
要使用交互式的軟件包管理,你可以像下面那樣以交互模式啟動(dòng) aptitude 。
$ sudo aptitude -u Password:
這將更新檔案庫(kù)信息的本地副本,并以菜單的形式全屏顯示軟件包列表。 aptitude 將它的配置放在 “~/.aptitude/config”。
| 提示 | |
|---|---|
|
如果你想用 root 的配置而非使用者的,可以在上面的例子中使用 “ |
| 提示 | |
|---|---|
|
當(dāng) |
2.2.4. aptitude 的按鍵綁定
在全屏模式下瀏覽軟件包狀態(tài)和設(shè)置動(dòng)作的按鍵如下。
表 2.8. aptitude 的按鍵綁定
| 快捷鍵 | 鍵綁定功能 |
|---|---|
F10 或 Ctrl-t |
菜單 |
? |
顯示按鍵幫助(更加完整的清單) |
F10 → 幫助 → 用戶手冊(cè) |
顯示用戶手冊(cè) |
u |
更新軟件包檔案庫(kù)信息 |
+ |
標(biāo)記該軟件包以便升級(jí)或安裝 |
- |
標(biāo)記該軟件包以便移除(保留配置文件) |
_ |
標(biāo)記該軟件包以便清除(移除配置文件) |
= |
將軟件包設(shè)為保持狀態(tài) |
U |
標(biāo)記所有可升級(jí)包(動(dòng)作如同 full-upgrade) |
g |
開(kāi)始 下載 并 安裝 所選擇包 |
q |
退出該界面并保存變更 |
x |
退出該界面并清除變更 |
Enter |
查看軟件包的信息 |
C |
查看軟件包的變更記錄 |
l |
變更軟件包的顯示限制 |
/ |
搜尋匹配的第一個(gè)軟件包 |
\ |
重復(fù)上一個(gè)搜索 |
可以通過(guò)命令行指定文件名稱,也可以通過(guò)按 “l” 或 “/” 之后在菜單提示下輸入下列所述的 aptitude 正則表達(dá)式。aptitude 正則表達(dá)式可以使用 “~n” 開(kāi)頭后接軟件包名稱的字符串來(lái)精確匹配軟件包名稱。
| 提示 | |
|---|---|
|
你需要在可視化界面中按下 “ |
2.2.5. aptitude 軟件包視圖
aptitude(8) 全屏交互模式下,軟件包列表里的軟件包會(huì)像下面的例子那樣顯示。
idA libsmbclient -2220kB 3.0.25a-1 3.0.25a-2
該行的從左到右的含義如下。
-
“狀態(tài)”標(biāo)簽 (第一個(gè)字母)
-
“動(dòng)作”標(biāo)簽(第二個(gè)字母)
-
“自動(dòng)”標(biāo)簽(第三個(gè)字母)
-
軟件包名稱
-
該“動(dòng)作”對(duì)磁盤(pán)空間的變化
-
軟件包當(dāng)前版本
-
軟件包可用版本
| 提示 | |
|---|---|
|
您可以在幫助菜單中找到完整的標(biāo)簽列表,按“ |
可用版本 的選擇是依據(jù)當(dāng)前的本地首選項(xiàng)(參見(jiàn) apt_preferences(5) 和 第 2.7.3 節(jié) “調(diào)整候選版本”)。
軟件包視圖的幾種類型都可以在“ 視圖 ”菜單下找到。
表 2.9. aptitude 視圖
| 視圖 | 視圖描述 |
|---|


咨詢
建站咨詢
