嵌入式操作系統(tǒng)第4章軟件管理_第1頁
嵌入式操作系統(tǒng)第4章軟件管理_第2頁
嵌入式操作系統(tǒng)第4章軟件管理_第3頁
嵌入式操作系統(tǒng)第4章軟件管理_第4頁
嵌入式操作系統(tǒng)第4章軟件管理_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、嵌入式操作系統(tǒng)第第4章章 LINUX軟件管理軟件管理1.LINUX系統(tǒng)軟件管理機(jī)制2. APT高級軟件包的管理工具 最初,基于Linux系統(tǒng)的開發(fā)者在完成應(yīng)用程序開發(fā)后,將很多二進(jìn)制文件發(fā)給用戶,用戶使用之前需要將很多程序逐個安裝。 Debian Linux首先提出首先提出“軟件包軟件包”的管理機(jī)制的管理機(jī)制Deb軟件包軟件包,將應(yīng)用程序的二進(jìn)制文件、配置文檔、man/info幫助頁面等文件合并打包在一個文件中,用戶使用軟件包管理器直接操作軟件包,完成獲取、安裝、卸載、查詢等操作。3流行的兩種軟件包管理機(jī)制 Redhat Linux基于這個理念推出了自己的軟件包管理機(jī)基于這個理念推出了自己的軟

2、件包管理機(jī)制制Rpm軟件包軟件包。Redhat采用了自己的打包格式生成Rpm包文件,由Rpm包管理器負(fù)責(zé)安裝、維護(hù)、查詢,甚至是軟件包版本管理。不過,由于Redhat Linux系統(tǒng)的普及,Rpm軟件包被廣泛使用。甚至出現(xiàn)第三方開發(fā)的軟件管理工具,專門管理Rpm格式的軟件包。4流行的兩種軟件包管理機(jī)制 隨著Linux操作系統(tǒng)規(guī)模的不斷擴(kuò)大,系統(tǒng)中軟件包間復(fù)雜的依賴關(guān)系,導(dǎo)致Linux用戶麻煩不斷。 Debian Linux開發(fā)出了APT軟件包管理器。 檢查和修復(fù)軟件包依賴關(guān)系檢查和修復(fù)軟件包依賴關(guān)系 利用Internet網(wǎng)絡(luò)幫助用戶主動獲取軟件包主動獲取軟件包 APT工具再次促進(jìn)了Deb軟件包

3、更為廣泛地使用,成為Debian Linux的一個無法替代的亮點。5流行的兩種軟件包管理機(jī)制 Debian包文件包含了二進(jìn)制可執(zhí)行文件、庫文件、配置文件和man/info幫助頁面等文檔。通常Debian包文件的后綴為“.deb”,因此稱為“Deb軟件包”。Ubuntu有兩種類型的軟件包:二進(jìn)制軟件包(deb)和源碼包(deb-src)。二進(jìn)制軟件包二進(jìn)制軟件包(Binary Packages):它包含可執(zhí)行文件、庫文件、配置文件、man/info頁面、版權(quán)聲明和其它文檔。源碼包源碼包(Source Packages):包含軟件源代碼、版本修改說明、構(gòu)建指令以及編譯工具等。先由tar工具歸檔為.

4、tar.gz文件,然后再打包成.dsc文件。6 軟件包的類型 在用戶不確定一個軟件包類型時,可以使用file命令查看文件類型。例如下面命令用于證實一個軟件包的文件類型是否是Deb軟件包文件。7 軟件包的類型 wdlUbuntuFisher:$ file g+_4.1.2-9ubuntu2_i386.debg+_4.1.2-9ubuntu2_i386: Debian binary package (format 2.0) 軟件包的命名遵循以下約定: 通常,修訂版本號是由Ubuntu開發(fā)者或創(chuàng)建這個軟件包的人指定。在軟件包被修改過之后,將修改

5、版本號加一。8軟件包的命名 Filename_Version-Reversion_Architecture.deb軟件包名稱軟件包名稱軟件版本軟件版本修訂版本修訂版本體系架構(gòu)體系架構(gòu)g+_4.1.2-9ubuntu2_i386.deb? Linux為每個軟件包指定了一個優(yōu)先級,作為軟件包管理器選擇安裝和卸載的一個依據(jù)。下表列出定義的所有軟件包優(yōu)先級描述。9軟件包的優(yōu)先級 級別含義補充說明Required(必須)(必須)該級別軟件包是保證系統(tǒng)正常運行所必須的包含所有必要的系統(tǒng)工具。盡管Require級別的軟件不能滿足整個系統(tǒng)的服務(wù),但至少能夠保證系統(tǒng)正常啟動。如果刪除其中一個軟件包,系統(tǒng)將受到損

6、壞而無法恢復(fù)。例如bash、mount、upstart。Important(重要)(重要)若缺少該級別軟件包,系統(tǒng)會運行困難或不好操作該級別軟件包是一些實現(xiàn)系統(tǒng)底層功能的程序。例如,aptitude、ubuntu-keyring、cpio。Standard(基本)(基本)該級別軟件包是任何Linux系統(tǒng)的標(biāo)準(zhǔn)件該級別的軟件包可以支撐命令行控制臺系統(tǒng)運行。通常作為默認(rèn)安裝選項。例如,memtest86、telnet、pppconfig、ed。Optional(可選)(可選)該級別軟件包是否安裝不影響系統(tǒng)的正常運行該級別的軟件包用于滿足用戶特定的需求或服務(wù)。它們不會影響系統(tǒng)的正常運行。例如,X11

7、、mysql、。Extra(額外)(額外)該級別軟件包可能與其它高級別軟件包存在沖突 在Ubuntu系統(tǒng)中規(guī)定,任何高優(yōu)先級的軟件包都不能依賴于低優(yōu)先級的軟件包。這樣可以實現(xiàn)按照優(yōu)先級一層層凍結(jié)系統(tǒng)。在新版本發(fā)布準(zhǔn)備階段,優(yōu)先級的作用就顯得更為重要。 基本系統(tǒng)由Required級和Important級軟件包組成,屬于這類優(yōu)先級的軟件包首先被凍結(jié)。由于這些軟件包是其它軟件包所依賴的,它們能保證整個系統(tǒng)的穩(wěn)定,這是Ubuntu發(fā)布新版本所必需的。然后,凍結(jié)Standard級軟件包,緊接著,在發(fā)布新版本之前對Optional級和Extra級軟件包進(jìn)行凍結(jié)。10軟件包的優(yōu)先級

8、 在使用系統(tǒng)過程中,用戶會不斷的安裝、卸載軟件包。為了記錄用戶的安裝行為,Ubuntu對軟件包定義了以下兩種狀態(tài),如表所示。 期望狀態(tài):標(biāo)記用戶希望將某個軟件包處于的狀態(tài)。 當(dāng)前狀態(tài):標(biāo)記用戶操作該軟件包后的最終狀態(tài)。11軟件包的狀態(tài) 12軟件包的狀態(tài) 類別類別狀態(tài)狀態(tài)狀態(tài)符狀態(tài)符描述描述期望狀態(tài)未知(unknown)u用戶并沒描述他想對軟件包進(jìn)行什么操作已安裝(install)i該軟件包已安裝或升級刪除(remove)r軟件包已刪除,但不想刪除任何配置文件清除(purge)p用戶希望完全刪除軟件包,包括配置文件保持(hold)h用戶希望軟件包保持現(xiàn)狀,例如,用戶希望保持當(dāng)前的版本,當(dāng)前的狀態(tài)

9、當(dāng)前狀態(tài)未安裝(Not)n該軟件包描述信息已知,但仍未在系統(tǒng)中安裝已安裝(installed)i已完全安裝和配置了該軟件包僅存配置(config-file)c軟件包已刪除,但配置文件仍保留在系統(tǒng)中僅解壓縮(Unpacked)U已將軟件包中的所有文件釋放,但尚未執(zhí)行安裝和配置配置失?。‵ailed-config)F曾嘗試安裝該軟件包,但由于錯誤沒有完成安裝不完全安裝(Half-installed)H已開始進(jìn)行提取后的配置工作,但由于錯誤沒有完成安裝 Linux操作系統(tǒng)是一個復(fù)雜系統(tǒng)。若要求它們能夠成為一個有機(jī)整體,支撐Linux系統(tǒng)的正常運轉(zhuǎn),就必須要求各個組件密切配合。盡可能提高軟件系統(tǒng)內(nèi)盡可

10、能提高軟件系統(tǒng)內(nèi)部的耦合度部的耦合度。 換句話說,某個軟件組件是否能夠正常運行或運行的更好,依賴于其他一些軟件組件的存在。這樣做的好處是,使系統(tǒng)更加致密、緊湊,減少中間環(huán)節(jié)可能引發(fā)的錯誤。然而,隨即帶來的兩個負(fù)面問題是,軟件組件依賴和軟件組件沖突問題。13軟件包的依賴性關(guān)系 為了解決這個問題,Debian提出了程序依賴性機(jī)制,并做詳細(xì)的定義。程序依賴性程序依賴性是用來描述獨立運行程序與當(dāng)前系統(tǒng)中程序之間存在的關(guān)聯(lián)程度。14軟件包的依賴性關(guān)系 軟件包管理器將依據(jù)軟件包“依賴關(guān)系”完成組件的安裝或卸載。例如,包含GNU C編譯器(gcc)的軟件包依賴于包含鏈接器和匯編器

11、的binutils軟件包。如果用戶試圖在沒有安裝binutils的情況下安裝gcc,軟件包管理器將會中止安裝,并出現(xiàn)錯誤提示,要求用戶事先安裝15軟件包依賴關(guān)系16軟件包依賴關(guān)系依賴關(guān)系關(guān)系描述依賴(depends)要運行軟件包A必須安裝軟件包B,甚至還依賴于B的特定版本,通常版本依賴有最低版本限制推薦(recommends)軟件包維護(hù)者認(rèn)為所有用戶都不會喜歡缺少軟件包A的某些功能,而這些功能需要B來提供建議(suggests)軟件包B能夠增強軟件包A的功能替換(replaces)軟件包B安裝的文件被軟件包A中的文件刪除

12、或復(fù)蓋了沖突(conflicts)如果系統(tǒng)中安裝了軟件包B,那么軟件包A將無法運行?!癈onflicts”常和“replaces”同時出現(xiàn)提供(provides)軟件包A中包含了軟件包B中的所有文件和功能 Deb軟件包將二進(jìn)制應(yīng)用程序、配置文檔、幫助頁面都整合在一個文件中,便于傳遞、安裝、升級和備份。顯然,Deb軟件包的管理不能單純依靠用戶手工來完成。 Linux為用戶提供了不同層次和類型的軟件包管理工具,根據(jù)用戶交互方式的不同,可以將常見的軟件包管理工具分為三類。17軟件包管理工具分類 類別常見工具舉例描述命令行dpkg-deb、dpkg、apt在命令行模式下完成

13、軟件包管理任務(wù)。為完成軟件包的獲取、查詢、軟件包依賴性檢查、安裝、卸載等任務(wù),需要使用各自不同的命令文本窗口界面dselect、aptitude、tasksel在文本窗口模式中,使用窗口和菜單可以完成軟件包管理任務(wù)圖形界面synaptic在X-Window圖形桌面環(huán)境中運行,具有更好的交互性、可讀性、易用性等特點 使用軟件包管理工具能夠?qū)崿F(xiàn)以下功能: 從Ubuntu軟件源的鏡像站點自動獲取與安裝軟件相關(guān)的所有軟件包 將應(yīng)用軟件的相關(guān)文檔打包成Deb軟件包 查詢和檢索Deb軟件包信息 檢查當(dāng)前操作系統(tǒng)中軟件包的依賴關(guān)系 安裝和卸載Deb軟件包18軟件包管理工具功能 文

14、本窗口管理工具實質(zhì)是將命令行工具作為底層,在上層包裝了一個文本界面的實用工具。它為用戶提供了窗口、菜單、快捷鍵等操作手段,以方便完成軟件包的管理工作,而無需再記憶大量復(fù)雜的命令。 19文本窗口管理工具 aptitude 提供了用戶所需的大部分包管理功能,界面操作簡單,可以使用鼠標(biāo)和鍵盤打開菜單,執(zhí)行各種動作。在命令行執(zhí)行以下命令,啟動aptitude, aptitude的界面十分友好,用戶可以在上方區(qū)域中的樹形列表中選擇軟件包,同時,在窗口下方區(qū)域中顯示相應(yīng)的軟件包描述信息。 20aptitudewdlUbuntuFisher:$ sudo aptitude21ap

15、titude dselect dselect是Deb軟件包管理工具的元老級工具,功能比aptitude強大的多。只是作為文本窗口的管理工具,它缺少aptitude的簡潔性、易用性。比如dselect僅使用數(shù)字菜單,不支持鼠標(biāo)操作。當(dāng)然,對于Ubuntu服務(wù)器用戶,在文本終端環(huán)境下工作,使用dselect是最好的選擇。 由于dselect的底層實質(zhì)就是調(diào)用了APT、dpkg等工具.23dselect tasksel 有時為了完成某個安裝任務(wù),需要安裝的軟件包非常多??梢园凑找粋€大的任務(wù)來規(guī)劃需要安裝的軟件包。默認(rèn)情況下,t

16、asksel會列出幾個典型的安裝任務(wù)供選擇,用戶可以不用顧及其中需要安裝哪些軟件包了。使用tasksel特別適用于首次安裝和大面積升級。2425tasksel 在命令行執(zhí)行“tasksel -list”命令也可顯示tasksel的任務(wù)列表。在執(zhí)行結(jié)果中,“i”表示該任務(wù)組件已安裝,“u”表示該任務(wù)組件未安裝。26taskselwdlUbuntuFisher:$ tasksel -listi dns-server DNS serveru edubuntu-server Edubuntu serveru lamp-server

17、LAMP serveru edubuntu-desktop Edubuntu desktopu kubuntu-desktop Kubuntu desktopi ubuntu-desktop Ubuntu desktopu xubuntu-desktop Xubuntu desktopu edubuntu-live Edubuntu live CDu kubuntu-live Kubuntu live CDu ubuntu-live Ubuntu live CDu xubuntu-live Xubuntu live CD27taskselwdlUbuntuFishe

18、r:$ sudo tasksel install edubuntu-server在命令行執(zhí)行“tasksel install”命令,可以開始安裝指定任務(wù)組件 Synaptic Ubuntu Linux在圖形桌面環(huán)境下使用最廣泛的軟件包管理工具,在中文Ubuntu系統(tǒng)中,被稱為“新立得”軟件包管理器。 synaptic底層仍是依賴于APT包管理命令。 除了具有軟件包的安裝、卸載、升級、查詢等功能,同時還增加了軟件包過濾、版本鎖定、強制安裝等功能。 而且,synaptic利用主菜單、關(guān)聯(lián)菜單、工具欄、視窗、標(biāo)記符號等可視化工具,使用戶可以很快掌握操作方法。因而,synaptic所具有的非常優(yōu)良的交

19、互性、可讀性、易用性。 28圖形界面管理工具 29圖形界面管理工具 dpkg是最早的是最早的Deb包管理工具包管理工具,它在Debian一提出包管理模式后就誕生了。 使用dpkg可以實現(xiàn)軟件包的安裝、編譯、卸載、查詢,以及應(yīng)用程序打包等功能。 但是由于當(dāng)時Linux系統(tǒng)規(guī)模和Internet網(wǎng)絡(luò)條件的限制,沒有考慮到操作系統(tǒng)中軟件包存在如此復(fù)雜的依賴關(guān)系,以及幫助用戶獲取軟件包(獲取存在依賴關(guān)系的軟件包)。因而,為了解決軟件包依賴性解決軟件包依賴性問題和獲取問題問題和獲取問題,就出現(xiàn)了APT工具。30命令行管理工具 APT系列工具可能是系列工具可能是Deb軟件包管理

20、工軟件包管理工具中功能最強大的具中功能最強大的。Ubuntu將所有的開發(fā)軟件包存放在Internet上的許許多多鏡像站點上。用戶可以選擇其中最適合自己的站點作為軟件源。然后,在APT工具的幫助下,就可以完成所有的軟件包的管理工作,包括維護(hù)系統(tǒng)中的軟件包數(shù)據(jù)庫、自動檢查軟件包依賴關(guān)系、安裝和升級軟件包、從軟件源鏡像站點主動獲取相關(guān)軟件包等。 常用的APT實用程序有:apt-get、apt-cache、apt-file、apt-cdrom等。31命令行管理工具 dpkg是Ubuntu Linux中最基本的命令行軟件包管理工具,用于安裝、編譯、卸載和查詢Deb軟件包。 缺

21、陷: 第一,不能主動從鏡像站點獲取軟件包; 第二,安裝軟件包時,無法檢查軟件包的依賴關(guān)系。 因此,在對一個軟件組件的依賴關(guān)系不清楚的情況下,建議使用APT軟件包管理器。 除非用戶對軟件包的依賴關(guān)系非常清楚,再使用32dpkg軟件包管理器 dpkg相關(guān)命令dpkg -i 安裝一個在本地文件系統(tǒng)上存在的Debian軟件包dpkg -r 移除一個已經(jīng)安裝的軟件包dpkg -P 移除已安裝軟件包及配置文件dpkg -L 列出安裝的軟件包清單dpkg -s 顯出軟件包的安裝狀態(tài)dpkg-reconfigure 重新配置一個已經(jīng)安裝的軟件包33dpkg軟件包管理器第第

22、4章章 LINUX軟件管理軟件管理1.LINUX系統(tǒng)軟件管理機(jī)制2. APT高級軟件包的管理工具 APT(Advanced Packaging Tool)是Ubuntu Linux中功能最強大的命令行軟件包管理工具,用于獲取獲取、安裝安裝、編譯編譯、卸載卸載和查詢查詢Deb軟件包,以及檢查軟件包依賴關(guān)系。 Ubuntu采用集中式的軟件倉庫機(jī)制,將各式各樣的軟件包分門別類地存放在軟件倉庫中,進(jìn)行有效地組織和管理。然后,將軟件倉庫置于許許多多的鏡像服務(wù)器中,并保持基本一致。這樣,所有的Ubuntu用戶隨時都能獲得最新版本的安裝軟件包。因此,對于用戶,這些鏡像服務(wù)器就是他們的軟件軟件源源(repos

23、ity)。 APT工作原理 在Ubuntu系統(tǒng)中,使用軟件源配置文件/etc/apt/sources.list 列出最合適訪問的鏡像站點地址。 軟件源配置文件只是告知Ubuntu系統(tǒng)可以訪問的鏡像站點地址。但那些鏡像站點都擁有什么軟件資源并不清楚。若是每安裝一個軟件包,就在服務(wù)器上尋找一邊,效率是很低的。因而,就有必要為這些軟件資源列個清單(建立索引文件),以便本地主機(jī)查詢。這就是這就是APT軟件包管理器的工作原理。軟件包管理器的工作原理。 36APT工作原理 同時,APT能夠檢查Ubuntu Linux系統(tǒng)中的軟件包依賴關(guān)系。大大簡化了

24、Ubuntu用戶安裝和卸載軟件包的過程。因而,APT成為Ubuntu Linux中最受歡迎的工具,也成為其他軟件包管理工具的底層工具。 37APT工作原理 “軟件源軟件源”是指散布在互聯(lián)網(wǎng)中的眾多服務(wù)器,在這些服務(wù)器中存放了大量的軟件包,用于進(jìn)行用戶主機(jī)的更新和升級。 它們是專門向Ubuntu用戶免費開放的,所以只要在軟件源中定期上傳最新版本的軟件,便可確保所有用戶用到最新發(fā)布的軟件包。 軟件源中存放了數(shù)以千計的軟件包,良莠不齊,來源不一,因此有必要對軟件源中的軟件包做一定的分類管理,以保證系統(tǒng)更新的安全性。 38軟件源 將軟件包從兩個維度支持力度支持力度和安裝必要性安裝必要性,合理的進(jìn)行了劃

25、分,如右圖所示。 可以看出,Ubuntu的每一個版本都是安裝這個軟件包分類體系管理軟件源的,并一直延續(xù)下去。39軟件源 根據(jù)軟件包的開發(fā)組織對該軟件的支持程度,以及遵從的開源程度,劃分為如下四類: 核心(核心(Main):官方維護(hù)的開源軟件,是由Ubuntu官方完全支持的軟件,包括大多數(shù)流行的、穩(wěn)定的開源軟件,是Ubuntu默認(rèn)安裝的基本軟件包; 公共(公共(Universe):社區(qū)維護(hù)的開源軟件,是由Ubuntu社區(qū)的計算機(jī)愛好者維護(hù)的軟件,是Linux世界中完全自由和開源部分,包括了絕大多數(shù)的開源軟件。這些軟件都是以“Main”中的軟件包為基礎(chǔ),編寫而成,因此不會與“Main”軟件包發(fā)生沖

26、突。但是這些軟件包沒有安全升級的保障。用戶在使用Universe軟件包時,需要考慮這些軟件包存在的不穩(wěn)定性; 受限(受限(Restricted):官方維護(hù)的非開源軟件,是專供特殊用途,而且沒有自由軟件版權(quán),不能直接修改軟件,但依然被Ubuntu團(tuán)隊支持的軟件; 多元化(多元化(Multiverse):非Ubuntu官方維護(hù)的非開源軟件,是指那些非自由軟件,通常不能被修改和更新,用戶使用這些軟件包時,需要特別注意版權(quán)問題。40軟件源 根據(jù)軟件包的必要性和安全性,將軟件包從另一個角度劃分為四類: 安全更新(安全更新(Security):穩(wěn)定的、安全的軟件包,是必須要安裝的; 最新更新(最新更新(U

27、pdates):最新完成的更新軟件包,建議安裝的; 推薦更新(推薦更新(Proposed):提前釋放出的更新,處于alpha測試階段的軟件包; 修補性更新(修補性更新(Backports):在Ubuntu舊版本中部分地添加新功能,該類軟件包無任何技術(shù)支持。41軟件源 APT軟件包管理器在一個文件中列出可獲得軟件包的鏡像站點地址,這個軟件源配置文件就是/etc/apt/sources.list。它本質(zhì)就是一個普通的文本文件,可以在超級管理員授權(quán)下,使用任何文本編輯器進(jìn)行編輯。在該文件中,添加的軟件源鏡像站點稱為一個配置項,并遵循以下格式:42軟件源配置文件 deb http:/ feisty m

28、ain restricted universe multiversedeb-src http:/ feisty main restricted universe multiverse需要提醒的是,在每次修改完/etc/apt/sources.list文件后,一定要運行“apt-get update”命令,才會使更改有效。 APT并不是某個具體的命令,應(yīng)該說是一組命令,以下列舉幾個常用的APT命令。 apt-get:用于管理軟件包,包括安裝、卸載、升級等操作; apt-cache:用于查詢軟件包信息; apt-proxy:用于搭建APT代理服務(wù)器; apt-show-versions:用于顯示系

29、統(tǒng)中軟件包版本信息; apt-config:用于讀取APT配置文件的簡單工具; apt-cdrom:用于將CD-ROM加入軟件源配置文件。43APT軟件包管理器 管理軟件包 刷新軟件源 安裝軟件包 更新軟件包 卸載軟件包 修復(fù)軟件包依賴關(guān)系 清理軟件包緩沖區(qū) 查詢軟件包信息獲取軟件包的統(tǒng)計信息 按關(guān)鍵字檢索軟件包 查詢軟件包描述信息 獲取軟件包安裝狀態(tài) 查詢依賴關(guān)聯(lián)的軟件包 管理源碼包 查詢源碼包 獲取源碼包 構(gòu)建源碼包編譯環(huán)境 編譯源碼包 44APT軟件包管理器 在Ubuntu Linux中,通常使用apt-get命令管理軟件包,只需告知軟件包名字,就可以自動完成

30、軟件包的獲取、安裝、編譯和卸載,以及檢查軟件包依賴關(guān)系。 apt-get命令本身并不具有管理軟件包功能,只是提供了一個軟件包管理的命令行平臺。在這個平臺上使用更豐富的子命令,完成具體的管理任務(wù)。 45管理軟件包apt-get subcommands -d | -f | -m | -q | -purge | -reinstall | - b | - s | - y | - u | - h | -v pkg46apt-get子命令描述update下載更新軟件包列表信息upgrade將系統(tǒng)中所有軟件包升級到最新的版本install下載所需軟件包并進(jìn)行安裝配置remove卸載軟件包autoremove

31、將不滿足依賴關(guān)系的軟件包自動卸載source下載源碼包build-dep為源碼包構(gòu)建所需的編譯環(huán)境dist-upgrade發(fā)布版升級dselect-upgrade根據(jù)dselect的選擇來進(jìn)行軟件包升級clean刪除緩存區(qū)中所有已下載的包文件autoclean刪除緩存區(qū)中老版本的已下載的包文件check檢查系統(tǒng)中依賴關(guān)系的完整性apt-get subcommands -d | -f | -m | -q | -purge | -reinstall | - b | - s | - y | - u | - h | -v 47apt-get選項描述-d僅下載軟件包,而

32、不安裝或解壓-f修復(fù)系統(tǒng)中存在的軟件包依賴性問題-m當(dāng)發(fā)現(xiàn)缺少關(guān)聯(lián)軟件包時,仍試圖繼續(xù)執(zhí)行-q將輸出作為日志保留,不獲取命令執(zhí)行進(jìn)度-purge與remove子命令一起使用,完全卸載軟件包-reinstall與install子命令一起使用,重新安裝軟件包-b在下載完源碼包后,編譯生成相應(yīng)的軟件包-s不做實際操作,只是模擬命令執(zhí)行結(jié)果-y對所有詢問都作肯定的回答,apt-get不再進(jìn)行任何提示-u獲取已升級的軟件包列表-h獲取幫助信息-v獲取apt-get版本號apt-get subcommands -d | -f | -m | -q | -purge | -reinstall | - b |

33、- s | - y | - u | - h | -v pkg “apt-get checkapt-get check”檢查軟件包依賴關(guān)系 “apt-get -f installapt-get -f install”修復(fù)依賴關(guān)系。 在處理依賴關(guān)系上,apt-get會自動下載并安裝具有依賴關(guān)系(depends)的軟件包,但不會處理與安裝不會處理與安裝軟件包存在推薦(軟件包存在推薦(recommendsrecommends)和建議()和建議(suggestssuggests)關(guān)系的軟件包關(guān)系的軟件包。 使用apt-get命令進(jìn)行安裝、卸載、升級等操作,只默認(rèn)處理具有依賴關(guān)系的軟件包,其他關(guān)系的軟件包

34、需要用戶另行安裝。 48apt-get 修改了配置文件/etc/apt/sources.list,目的只是告知軟件源鏡像站點的地址。但那些所指向的鏡像站點所具有的軟件資源并不清楚,需要將這些資源列個清單,以便本地主機(jī)知曉可以申請哪些資源。 使用“apt-get update”命令刷新軟件源,建立更新軟件包列表。 49 刷新軟件源 “apt-get update”命令會掃描每一個軟件源服務(wù)器,并為該服務(wù)器所具有軟件包資源建立索引文件,存放在本地的/var/lib/apt/lists/目錄中。 使用apt-get執(zhí)行安裝、更新操作時,都將依據(jù)這些索引文件,向軟件源服務(wù)器申請資源。因此,在計算機(jī)設(shè)備

35、空閑時,經(jīng)常使用“apt-get update”命令刷新軟件源,是一個好的習(xí)慣。 50刷新軟件源 在Ubuntu Linux中,只需使用命令“apt-get upgrade”就可以輕松地將系統(tǒng)中的所有軟件包一次性升級到最新版本。 它可以很方便的完成在相同版本號的發(fā)行版中更新軟件包。 51更新軟件包 wdlwdl-desktop:$ sudo apt-get upgrade 正在讀取軟件包列表. 完成 正在分析軟件包的依賴關(guān)系樹. 完成 下列的軟件包將被升級:下列的軟件包將被升級: app-install-data-commercial cpio cupsys cupsys-bsd cupsys

36、-client debconf debconf-i18n dpkg dselect evolution-data-server hal hal-device-manager iptables klogd language-pack-en language-pack-en-base lvm2 popularity-contest python-apt python2.4-apt sysklogd update-manager xserver-xorg-core 共升級了 49 個軟件包,新安裝了 0 個軟件包,要卸載 0 個軟件包,有 0 個軟件未被升級。 需要下載 34.8MB 的軟件包。 解

37、壓縮后會消耗掉 10.6MB 的額外空間。 您希望繼續(xù)執(zhí)行嗎?Y/n 在準(zhǔn)備好軟件源并連通網(wǎng)絡(luò)后,用戶只需告知安裝軟件的名稱,“apt-get install”命令就可以輕松完成整個安裝過程,而無須考慮軟件包的版本、優(yōu)先級、依賴關(guān)系等等。 使用“apt-get install”下載軟件包大體分為四步: STEP1,掃描本地存放的軟件包更新列表(由apt-get update命令刷新更新列表),找到最新版本的軟件包; STEP2,進(jìn)行軟件包依賴關(guān)系檢查,找到支持該軟件正常運行的所有軟件包; STEP3,從軟件源所指的鏡像站點中,下載相關(guān)軟件包; STEP4 ,解壓軟件包,并自動完成應(yīng)用程序的安裝

38、和配置。 52安裝軟件包 安裝xchat聊天室軟件 53安裝軟件包wdlUbuntuFisher:$ sudo apt-get install xchat正在讀取軟件包列表. 完成正在分析軟件包的依賴關(guān)系樹讀取狀態(tài)信息. 完成將會安裝下列額外的軟件包:tcl8.4 xchat-common建議安裝的軟件包:tclreadline libnet-google-perl下列【新】軟件包將被安裝:tcl8.4 xchat xchat-common共升級了 0 個軟件包,新安裝了 3 個軟件包,要卸載 0 個軟件包,有 1 個軟件未被升級。需要下載 2354kB 的軟件包。解壓縮后會消耗掉 6693k

39、B 的額外空間。您希望繼續(xù)執(zhí)行嗎?Y/n y獲取:1 http:/ feisty/main tcl8.4 8.4.14-0ubuntu1 1163kB獲?。? http:/ feisty/universe xchat-common 2.8.0-0ubuntu4 888kB獲?。? http:/ feisty/universe xchat 2.8.0-0ubuntu4 303kB下載 2354kB,耗時 1m44s (22.6kB/s)選中了曾被取消選擇的軟件包 tcl8.4。(正在讀取數(shù)據(jù)庫 . 系統(tǒng)當(dāng)前總共安裝有 117915 個文件和目錄。)正在解壓縮 tcl8.4 (從 ./tcl8.4

40、_8.4.14-0ubuntu1_i386.deb) .選中了曾被取消選擇的軟件包 xchat-common。正在解壓縮 xchat-common (從 ./xchat-common_2.8.0-0ubuntu4_all.deb) .選中了曾被取消選擇的軟件包 xchat。正在解壓縮 xchat (從 ./xchat_2.8.0-0ubuntu4_i386.deb) .正在設(shè)置 tcl8.4 (8.4.14-0ubuntu1) .正在設(shè)置 xchat-common (2.8.0-0ubuntu4) .正在設(shè)置 xchat (2.8.0-0ubuntu4) .54 從以上命令執(zhí)行結(jié)果中,可以看到

41、xchat軟件的整個安裝過程。用戶輸入安裝軟件的名稱,默認(rèn)情況下,apt-get install將會安裝最新版本的xchat軟件。并且,檢查xchat軟件包依賴關(guān)系樹,發(fā)現(xiàn)與xchat存在依賴關(guān)系的軟件包有:tcl8.4和xchat-common;存在建議關(guān)系的軟件包有:tclreadline和libnet-google-perl。默認(rèn)情況下,apt-get install只安裝依賴關(guān)系的軟件包。在回答“是否繼續(xù)下載?”的提示后,開始下載軟件包,下載過程可能需要一段時間。下載結(jié)束后,這些軟件包會被自動解壓,并按照依賴關(guān)系的前后順序,依次完成安裝和配置。 需要說明的是,apt-get insta

42、ll命令下載軟件包并不是立即安裝的,而是將下載的包文件存放在本地緩存目錄(/var/cache/apt/archives)中,等全部下載結(jié)束后,再進(jìn)行安裝。用戶可以在這個目錄下找到所有由apt-get install下載的軟件包。安裝軟件包 當(dāng)用戶不小心損壞了已安裝的軟件包,而需要修復(fù)?;蛘?,希望重新安裝軟件包中某些文件的最新版本,可以使用“apt-get -reinstall install”命令進(jìn)行軟件包的重新安裝。 56重新安裝軟件包 wdlUbuntuFisher:$ sudo apt-get -reinstall install xchat正在讀取軟件包列表. 完成正在分析軟件包的依

43、賴關(guān)系樹讀取狀態(tài)信息. 完成建議安裝的軟件包:libnet-google-perl下列【新】軟件包將被安裝:xchat共升級了 0 個軟件包,新安裝了 1 個軟件包,要卸載 0 個軟件包,有 1 個軟件未被升級。需要下載 0B/303kB 的軟件包。解壓縮后會消耗掉 815kB 的額外空間。選中了曾被取消選擇的軟件包 xchat。(正在讀取數(shù)據(jù)庫 . 系統(tǒng)當(dāng)前總共安裝有 118070 個文件和目錄。)正在解壓縮 xchat (從 ./xchat_2.8.0-0ubuntu4_i386.deb) .正在設(shè)置 xchat (2.8.0-0ubuntu4) . 不完全卸載 “apt-get remo

44、ve”會關(guān)注那些與被刪除的軟件包相關(guān)的其它軟件包,刪除一個軟件包時,將會連帶刪除與該軟件包有依賴關(guān)系的軟件包。 57卸載軟件包 wdlUbuntuFisher:$ sudo apt-get remove xchat正在讀取軟件包列表. 完成正在分析軟件包的依賴關(guān)系樹讀取狀態(tài)信息. 完成The following packages were automatically installed and are no longer required:xchat-common tcl8.4使用 apt-get autoremove 來刪除它們。下列軟件包將被【卸載】:xchat

45、共升級了 0 個軟件包,新安裝了 0 個軟件包,要卸載 1 個軟件包,有 1 個軟件未被升級。需要下載 0B 的軟件包。解壓縮后將會空出 815kB 的空間。您希望繼續(xù)執(zhí)行嗎?Y/ny(正在讀取數(shù)據(jù)庫 . 系統(tǒng)當(dāng)前總共安裝有 118085 個文件和目錄。)正在刪除 xchat . 完全卸載 “apt-get -purge remove”命令在卸載軟件包文件的同時,還刪除該軟件包所使用的配置文件。 58卸載軟件包wdlUbuntuFisher:$ sudo apt-get -purge remove xchat正在讀取軟件包列表. 完成正在分析軟件包的依賴關(guān)系樹讀取狀態(tài)信息. 完成The fol

46、lowing packages were automatically installed and are no longer required:xchat-common tcl8.4使用 apt-get autoremove 來刪除它們。下列軟件包將被【卸載】:xchat*共升級了 0 個軟件包,新安裝了 0 個軟件包,要卸載 1 個軟件包,有 1 個軟件未被升級。需要下載 0B 的軟件包。解壓縮后將會空出 815kB 的空間。您希望繼續(xù)執(zhí)行嗎?Y/ny(正在讀取數(shù)據(jù)庫 . 系統(tǒng)當(dāng)前總共安裝有 118085 個文件和目錄。)正在刪除 xchat .正在清除正在清除 xchat 的配置文件的配置

47、文件 . 軟件包依賴關(guān)系招到破壞 如果由于故障而中斷軟件安裝過程,可能會造成關(guān)聯(lián)的軟件包只有部分安裝。之后,用戶就會發(fā)現(xiàn)該軟件既不能重裝又不能刪除。 有些用戶可能會不顧及依賴關(guān)系,使用“dpkg i”強制安裝軟件包,也可能破壞依賴關(guān)系。這都是因為Ubuntu系統(tǒng)中,可以使用“apt-get -f install”修復(fù)軟件包依賴關(guān)系。 使用 apt-get check檢查依賴關(guān)系59修復(fù)軟件包依賴關(guān)系 60wdlUbuntuFisher:$ sudo dpkg -i g+_4.1.2-9ubuntu2_i386.deb(正在讀取數(shù)據(jù)庫 . 系統(tǒng)當(dāng)前總共安裝有 118086 個文件和目錄。)正預(yù)備

48、替換 g+ 4:4.1.2-1ubuntu1 (使用 g+_4.1.2-9ubuntu2_i386.deb) .正在解壓縮將用于更替的包文件 g+ .dpkg:依賴關(guān)系問題使得 g+ 的配置工作不能繼續(xù):g+ 依賴于 g+-4.1 (= 4.1.2-1);然而:系統(tǒng)中 g+-4.1 的版本為 4.1.2-0ubuntu4。dpkg:處理 g+ (-install)時出錯:依賴關(guān)系問題 - 仍未被配置在處理時有錯誤發(fā)生:g+61 wdlwdl-desktop:/TreeCode$ sudo apt-get -f install正在讀取軟件包列表. 完成正在分析軟件包的依賴關(guān)系樹Reading s

49、tate information. 完成正在更正依賴關(guān)系. 完成將會安裝下列額外的軟件包:g+-4.1建議安裝的軟件包:gcc-4.1-doc lib64stdc+6 glibc-doc manpages-dev libstdc+6-4.1-doc下列【新】軟件包將被安裝:g+-4.1共升級了 0 個軟件包,新安裝了 1 個軟件包,要卸載 0 個軟件包,有 1 個軟件未被升級。有 1 個軟件包沒有被完全安裝或卸載。需要下載2581kB的軟件包。解壓縮后會消耗掉 32.9MB 的額外空間。您希望繼續(xù)執(zhí)行嗎?Y/ny獲取:1 http:/ feisty/main g+-4.1 4.1.2-0ubu

50、ntu4 2581kB下載2581kB,耗時 1m59s (65.9kB/s)選中了曾被取消選擇的軟件包 g+-4.1。正在解壓縮 g+-4.1 (從 ./g+-4.1_4.1.2-0ubuntu4_i386.deb) .正在設(shè)置 g+-4.1 (4.1.2-0ubuntu4) . 清理整個軟件包緩沖區(qū) 如果用戶認(rèn)為軟件包緩沖區(qū)中的文件沒有任何價值了,有必要刪除全部下載的軟件包??梢允褂谩癮pt-get clean”清理整個軟件包緩沖區(qū),除了lock鎖文件和partial目錄。 清理軟件包緩沖區(qū)wdlUbuntuFisher:$ ls /var/cache/apt/archives/lock

51、partial rxvt_1%3a2.6.4-10_i386.deb rxvt_2.6.4-12_i386.deb xchat_2.8.0-0ubuntu4_i386.debwdlUbuntuFisher:$ sudo apt-get cleanwdlUbuntuFisher:$ ls /var/cache/apt/archives/lock partial 按照依賴關(guān)系清理緩沖區(qū)中多余的軟件包 如果用戶希望緩沖區(qū)中只保留最新版本的軟件包,多余版本全部清除,可以使用“apt-get autoclean”命令。 63清理軟件包緩沖區(qū)wdlUbuntuFisher:$ ls /var/cache/

52、apt/archives/lock partial rxvt_1%3a2.6.4-10_i386.deb rxvt_2.6.4-12_i386.deb xchat_2.8.0-0ubuntu4_i386.debwdlUbuntuFisher:$ sudo apt-get autoclean正在讀取軟件包列表. 完成正在分析軟件包的依賴關(guān)系樹讀取狀態(tài)信息. 完成Del rxvt 2.6.4-12 201kBwdlUbuntuFisher:$ ls /var/cache/apt/archives/lock partial rxvt_1%3a2.6.4-10_i386.deb xchat_2.8.0

53、-0ubuntu4_i386.deb從以上命令的執(zhí)行結(jié)果可以看出,“apt-get autoclearn”在分析了依賴關(guān)系后,刪除了多余的rxvt軟件包。總之,“apt-get autoclean”僅刪除那些過時的文件。 使用apt-cache命令完成查詢軟件源和軟件包的相關(guān)信息。 64查詢軟件包信息apt-cache subcommands -p | -s | - q | - i | - c | -h pkg子命令描述showpkg獲取二進(jìn)制軟件包的常規(guī)描述信息showsrc獲取源碼包的詳細(xì)描述信息show獲取二進(jìn)制軟件包的詳細(xì)描述信息stats獲取軟件源的基本統(tǒng)

54、計信息dump獲取軟件源中所有軟件包的簡要信息dumpavail獲取當(dāng)前中已安裝的所有軟件包的描述信息unmet獲取所有未滿足的依賴關(guān)系search根據(jù)正則表達(dá)式檢索軟件包depends獲取該軟件包的依賴信息rdepends獲取所有依賴于該軟件包的軟件包pkgnames列出所有已安裝軟件包的名字policy獲取軟件包當(dāng)前的安裝狀態(tài)65apt-cache選項選項描述-p軟件包的緩存-s源代碼包的緩存-q關(guān)閉進(jìn)度獲取-i獲取重要的依賴關(guān)系,僅與unmet命令一起使用-c讀取指定配置文件-h獲取幫助信息APT命令會掃描軟件源中每一個鏡像站點服務(wù)器,為可用的軟件包資源建立索引文件,并存放在本地的/va

55、r/lib/apt/lists/目錄中。 66Package: gnome-nettoolPriority: optionalSection: gnomeInstalled-Size: 2016Maintainer: Ubuntu Core Developers ubuntu-devel-Original-Maintainer: Andrew Lau Architecture: i386Version: 2.18.0-0ubuntu1Replaces: gnome-network (= 2.5-0ubuntu1), libgconf2-4 (= 2.13.5), libglade2-0 (=

56、1:2.5.1), libglib2.0-0 (= 2.12.9), libgtk2.0-0 (= 2.10.3), liblaunchpad-integration0 (= 0.0patch26), libpango1.0-0 (= 1.16.1), dnsutils, finger, net-tools, ping, iputils-tracepath, whoisSuggests: gnome-system-toolsConflicts: gnome-network (= 2.3.4-1), libx11-6, base-passwd (= )Suggests: libxpm4Conflicts: suidmanager ( 0.50)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論