歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

Debian APT HOWTO(二)

  Debian APT HOWTO 第三章 軟件包管理 APT HOWTO 第三章 軟件包管理 3.1 更新可用軟件包列表 ====================== 軟件包管理系統使用一個私有數據庫跟蹤列表中軟件包的當前狀態:已安裝、未安裝或可安裝。apt-get通過該數據庫來確定如何安裝用戶想用的軟件包以及正常運行軟件包所必須的其它關聯包。 你可以使用apt-get update來更新數據庫列表。這個命令將掃描/etc/apt/sources.list文件中所指路徑中的軟件包列表文件。有關該列表文件的更多信息請查閱 第二章 /etc/apt/source.list文件。 定時運行這個程序是個好主意,它將使你和你的系統獲得最新的軟件包更新和安全更新等信息。 3.2 安裝軟件包 ============== 現在,終於到了你一直期待的階段!准備好了sources.list和最新版的的可用軟件包,你所需做的就是運行apt-get來安裝你渴望已久的軟件了。例如,你可以這樣: apt-get install xchat APT會掃描它的數據庫找到最新的版本的軟件包,並將它從sources.list中所指的地方下載到本地。如果該軟件包需要其它軟件包才能正常運行——如本例一樣——APT會做關聯性檢查並自動安裝所關聯軟件包。如下所示: [root]@[/] # apt-get install nautilus Reading Package Lists... Done Building Dependency Tree... Done The following extra packages will be installed: bonobo libmedusa0 libnautilus0 The following NEW packages will be installed: bonobo libmedusa0 libnautilus0 nautilus 0 packages upgraded, 4 newly installed, 0 to remove and 1 not upgraded. Need to get 8329kB of archives. After unpacking 17.2MB will be used. Do you want to continue? [Y/n] nautilus軟件包需要引用共享函數庫,因此APT會從鏡像源處下載相關共享函數庫,如果你在apt-get命令行中手動指定了這些共享函數庫的名稱,APT會默認為你要安裝所有這些軟件包。 也就是說APT只會在安裝那些沒有在命令行中指定的軟件包時提示你進行確認。 下列apt-get選項也許對你有用 -h This help text. -d Download only - do NOT install or unpack archives -f Attempt to continue if the integrity check fails -s No-act. Perform ordering simulation -y Assume Yes to all queries and do not prompt -u Show a list of upgraded packages as well 可以用一條命令安裝多個軟件包。包文件從網絡上下載到本地/var/cache/apt/archives目錄,稍後再安裝。 你可以用同樣的命令行刪除指定軟件包,只需在軟件包名稱後緊跟一個“-”,如下所示: [root]@[/] # apt-get install nautilus gnome-panel- Reading Package Lists... Done Building Dependency Tree... Done The following extra packages will be installed: bonobo libmedusa0 libnautilus0 The following packages will be REMOVED: gnome-applets gnome-panel gnome-panel-data gnome-session The following NEW packages will be installed: bonobo libmedusa0 libnautilus0 nautilus 0 packages upgraded, 4 newly installed, 4 to remove and 1 not upgraded. Need to get 8329kB of archives. After unpacking 2594kB will be used. Do you want to continue? [Y/n] 有關刪除軟件包的更多詳細信息,參閱 3.3 移除軟件包。 假如你不小心損壞了已安裝的軟件包而想修復它,或者僅僅想安裝軟件包中某些文件的最新版本,這是可以做到的,你可以用--reinstall選項:


[root]@[/] # apt-get --reinstall install gdm Reading Package Lists... Done Building Dependency Tree... Done 0 packages upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 1 not upgraded. Need to get 0B/182kB of archives. After unpacking 0B will be used. Do you want to continue? [Y/n] 本文檔寫作時所參考的APT版本為0.5.3,這個版本還屬於“unstable”(sid)階段。如是你安裝了這個版本,你可以在系統配置中使用新增的功能:你可以用apt-get install package/distribution來安裝指定發布版中的軟件包,或者用apt-get install package=version,如下所示: apt-get install nautilus/unstable 它將為你安裝“unstable”發布版中的nautilus軟件包,即使你當前運行的是“stable”版本。命令中“distribution”選項的可用參數值為:stable,testing,unstable。 在處理關聯問題時,你可能更樂意使用-t開關來選擇目標發布版,讓apt-get幫你考慮使用哪個發布版。 重要信息:最新版的Debian軟件包首先會上傳到“unstable”發布版中,這個發布版包含了軟件包所有更改階段,無論是小修小補還是影響到眾多軟件包乃至整個系統的重大修改。所以,新手和那些強調系統穩定性的用戶不會使用這個發布版。 “testing”發布版比起“unstable”發布版,多注重了些系統穩定性,但正式運行的系統應當使用“stable”發布版。 3.3 移除軟件包 ============== 如果你不再使用某些軟件包,你可以用APT將其從系統中刪除。要刪除軟件包只需輸入:apt-get remove package。如下所示: [root]@[/] # apt-get remove gnome-panel Reading Package Lists... Done Building Dependency Tree... Done The following packages will be REMOVED: gnome-applets gnome-panel gnome-panel-data gnome-session 0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded. Need to get 0B of archives. After unpacking 14.6MB will be freed. Do you want to continue? [Y/n] 由上例可知,APT會關注那些與被刪除的軟件包有依賴關系的軟件包。使用APT刪除一個軟件包將會連帶刪除那些與該軟件包有依賴關系的軟件包。 上例中運行apt-get會刪除指定軟件包以及與之有依賴關系的軟件包,但它們的配置文件,如果有的話,會完好無損地保留在系統裡。如果想徹底刪除這些包及其配置文件,運行: [root]@[/] # apt-get --purge remove gnome-panel Reading Package Lists... Done Building Dependency Tree... Done The following packages will be REMOVED: gnome-applets* gnome-panel* gnome-panel-data* gnome-session* 0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded. Need to get 0B of archives. After unpacking 14.6MB will be freed. Do you want to continue? [Y/n] 注意:軟件包名字後面的*表示該軟件包所有的配置文件也將被刪除。 就象安裝軟件時一樣,你可以在刪除命令中用一個符號來指定安裝某個軟件包。在刪除軟件包時,如果你在軟件包名字後面緊跟一個“+”,那麼該軟件包就會被安裝而不是刪除。 [root]@[/] # apt-get --purge remove gnome-panel nautilus+ Reading Package Lists... Done Building Dependency Tree... Done The following extra packages will be installed: bonobo libmedusa0 libnautilus0 nautilus The following packages will be REMOVED: gnome-applets* gnome-panel* gnome-panel-data* gnome-session* The following NEW packages will be installed: bonobo libmedusa0 libnautilus0 nautilus

0 packages upgraded, 4 newly installed, 4 to remove and 1 not upgraded. Need to get 8329kB of archives. After unpacking 2594kB will be used. Do you want to continue? [Y/n] 注意,apt-get列出了那些將要被安裝的關聯軟件包(即保證該軟件包正常運行的其它軟件包)和將要被刪除關聯軟件包,然後,再次列出了將要被安裝的軟件包。 3.4 更新軟件包 ============== 軟件包更新是APT最成功的特點。只需一條命令即可完成更新:apt-get upgrade。你可以使用這條命令從相同版本號的發布版中更新軟件包,也可以從新版本號的發布版中更新軟件包,盡管實現後一種更新的首選命令為apt-get dist-upgrade;實情參閱 3.5升級到新版本。 在運行該命令時加上-u選項很有用。這個選項讓APT顯示完整的可更新軟件包列表。不加這個選項,你就只能盲目地更新。APT會下載每個軟件包的最新更新版本,然後以合理的次序安裝它們。注意在運行該命令前應先運行apt-get update更新數據庫。有關詳情參閱 3.1更新可用軟件包列表。看看這個例子: [root]@[/] # apt-get -u upgrade Reading Package Lists... Done Building Dependency Tree... Done The following packages have been kept back cpp gcc lilo The following packages will be upgraded ad



0 packages upgraded, 4 newly installed, 4 to remove and 1 not upgraded. Need to get 8329kB of archives. After unpacking 2594kB will be used. Do you want to continue? [Y/n] 注意,apt-get列出了那些將要被安裝的關聯軟件包(即保證該軟件包正常運行的其它軟件包)和將要被刪除關聯軟件包,然後,再次列出了將要被安裝的軟件包。 3.4 更新軟件包 ============== 軟件包更新是APT最成功的特點。只需一條命令即可完成更新:apt-get upgrade。你可以使用這條命令從相同版本號的發布版中更新軟件包,也可以從新版本號的發布版中更新軟件包,盡管實現後一種更新的首選命令為apt-get dist-upgrade;實情參閱 3.5升級到新版本。 在運行該命令時加上-u選項很有用。這個選項讓APT顯示完整的可更新軟件包列表。不加這個選項,你就只能盲目地更新。APT會下載每個軟件包的最新更新版本,然後以合理的次序安裝它們。注意在運行該命令前應先運行apt-get update更新數據庫。有關詳情參閱 3.1更新可用軟件包列表。看看這個例子: [root]@[/] # apt-get -u upgrade Reading Package Lists... Done Building Dependency Tree... Done The following packages have been kept back cpp gcc lilo The following packages will be upgraded ad



Copyright © Linux教程網 All Rights Reserved