如果你是Linux新手,可能想知道如何安装或更新软件包。好消息是,你来对地方了,可以通过Ubuntu Apt Get
命令了解如何管理软件包。
在本教程中,你将学会如何更新或升级现有的软件包,安装新软件包,或在不再需要时将其卸载。
继续阅读并开始管理软件包吧!
先决条件
本教程将进行实际演示,但不需要特殊工具,只要你使用的是Ubuntu 16或更高版本,就可以进行。本教程以Ubuntu 20.04.3 LTS版本为演示。
更新系统软件包仓库
apt-get
命令最常见的用途之一是更新系统中可用的软件包列表。在安装、更新或升级任何软件之前建议执行此操作。
打开终端并运行下面的apt-get
命令,以更新
系统上的软件包列表。在提示时输入你的sudo密码。
以下命令會從/etc/apt/sources.list文件的條目中檢查是否有更新的軟件版本,並更新系統軟件列表。
當沒有軟件版本更新時,你會看到一個說明說Hit。否則,你會看到一個說明說Get,然後命令會下載軟件信息(而不是全部軟件)。當檢索軟件信息時出錯,它會顯示ign。

升級軟件包
你剛剛基於sources.list更新了機器的軟件包列表,但軟件包會保持在它們當前的版本,除非你運行升級操作。根據sources.list文件中的條目升級軟件包。
運行下面的Ubuntu Apt Get
命令來升級
機器上所有已安裝的軟件包至有可用更新的新版本。系統會提示你確認,輸入Y以繼續。
你可以使用
-y
選項跳過確認提示。如果你尚未驗證列表,這可能會更新/安裝你不打算的軟件包。

也許你更喜歡僅升級特定的軟件。如果是這樣,請在apt-get upgrade
命令後指定軟件包名稱,如下所示。

如果你有2-3個軟件需要升級,你可以將它們以空格分隔在
apt-get upgrade
命令中,像下面這樣:sudo apt-get upgrade vsftpd google-chrome firefox
智能升級Ubuntu應用程式套件與apt-get
除了升級已安裝的軟體套件外,您如何智能地管理軟體套件衝突?apt-get upgrade
套件僅升級現有套件,但dist-upgrade
命令還會刪除現有套件,如果它們與新版本衝突。
運行下面的命令來升級機器上的現有軟體套件。此命令還會添加或刪除任何套件以滿足任何依賴關係。
apt-get dist-upgrade
命令具有智能衝突解決系統。如果在升級套件時出現衝突,該命令將首先選擇要升級的關鍵套件,然後再選擇較低優先級的套件。

要將Ubuntu版本升級到下一個發行版,您將運行
do-release-upgrade
命令。這也會運行apt-get dist-upgrade
以更新套件。
搜索並安裝特定軟體套件
到目前為止,您已經學會了更新套件存儲庫和操作系統本身。但是,如何搜索要安裝的新軟體套件呢?apt-cache
命令可讓您搜索所有可用或特定的軟體套件。
運行以下命令以顯示所有本地已知的可用軟體套件(pkgnames
)。此列表是從對sources.list配置文件的上一次更新中衍生出來的。

apt-cache pkgnames
指令自然會返回大量軟體套件,要透過它們瀏覽是很煩人的。既然你熟悉軟體套件的名稱,為何不專門搜尋一個呢?
執行下面的指令來 search
特定軟體套件的儲存庫,例如,對於 vsftpd
。由於你只是搜尋軟體套件,所以不需要加上 sudo
指令。

如果你知道確切的套件名稱,請將
search
替換為show
參數,就像這樣:apt-cache show PackageName
。將PackageName
替換為實際的套件名稱。此指令可讓你查看套件詳細資訊,如來源、架構、版本等。
找到軟體套件後,執行下面的指令來在你的機器上 install
該軟體套件 (vsftpd
)。

重新安裝軟體
也許你遇到了一些軟體問題,但又不想費心解析問題出在哪。如果是這樣,重新安裝軟體是你可以嘗試來修復問題的其中一個方法。
執行以下的 apt-get install
指令來 --reinstall
該軟體 (vsftpd
) 到你的系統中。

移除已安裝的軟體
系統中已安裝的軟體自然會消耗你的儲存空間。如果這些軟體不再有用,將其移除是理想的做法。這樣做可以優化你系統的效能。
運行以下命令從您的機器中移除
特定軟體(vsftpd
)。

使用Ubuntu Apt Get移除軟體和相關檔案
大多數安裝在您的機器上的軟體在移除後仍會留下垃圾,例如資料夾或配置檔案。這些垃圾也會佔用儲存空間,那麼如何移除它們呢?讓Ubuntu Apt Get
命令為您移除這些垃圾。
也許您已經卸載了一個軟體,但它的配置檔案仍然存在。如果是這樣,使用apt-get
命令的purge
參數就足夠了。
運行以下命令從您的機器中卸載
軟體(vsftpd
)並移除剩餘的檔案和資料夾(purge
)。

或者,如果您希望一次性卸載(remove
)軟體並且刪除(--purge
)其配置檔案,則運行以下命令。

解決依賴錯誤
安裝、更新或升級軟體並不總是能夠完美完成。您可能會在某個時候遇到錯誤,例如由於損壞的套件資料庫而導致的依賴錯誤。但請不要擔心!Ubuntu Apt Get
命令可以讓您清除本地套件資料庫中不需要的套件檔案,這些檔案可能會導致依賴錯誤。
應用程式套件本身存儲在.deb檔案中,這些檔案在安裝任何軟件時會被下載並安裝到您的計算機上。現在,如果您移除特定軟件並重新安裝它,apt會使用您本地存儲庫中的.deb檔案進行重新安裝,而不是從互聯網重新下載。
但如果軟件的新版本可用,並且您嘗試重新安裝該軟件,則您本地存儲庫中的現有檔案將不再可用。結果,您會收到相依性錯誤。
運行以下命令apt-get clean
以刪除本地存儲庫中已下載和緩存的套件檔案(/var/cache/apt/archives)。
apt-get clean
命令不會刪除/var/cache/apt/archives和/var/cache/apt/archives/partial文件夾中的鎖定檔。鎖定檔旨在防止兩個不同的套件管理器在相同的檔案上發生衝突。

要刪除已安裝軟件不再引用的已下載套件,請使用autoclean
參數。
運行以下命令以從/var/cache/apt/archives目錄中刪除剩餘檔案(.deb檔案)(autoclean
)。

結論
在本教程中,您已經學會了如何使用Ubuntu Apt Get
命令來安裝或升級軟件套件並更新操作系統本身。您還觸及了通過刪除先前版本安裝的軟件套件的不必要套件檔案來解決安裝錯誤的方法。
在這一點上,您已經知道如何有效地管理您機器上的軟體套件。現在,為什麼不使用 Bash 腳本自動升級軟體套件呢?或者干脆使用 PHP 腳本添加 cron 任務呢?