在使用apt和apt-get命令的時候咱們經常會疑惑這二者有什麼區別,由於大多數時間這兩個命令能作不少相同的事情。linux
Ubuntu 16.04 發佈時,一個引人注目的新特性即是 apt 命令的引入。其實早在 2014 年,apt 命令就已經發布了第一個穩定版,只是直到 2016 年的 Ubuntu 16.04 系統發佈時纔開始引人關注。隨着 apt install package 命令的使用頻率和廣泛性逐步超過 apt-get install package,愈來愈多的其它 Linux 發行版也開始遵循 Ubuntu 的腳步,開始鼓勵用戶使用 apt 而不是 apt-get。 Debian 做爲 Ubuntu、Linux Mint 和 elementary OS 等 Linux 操做系統的母板,其具備強健的包管理系統,它的每一個組件和應用程序都內置在系統中安裝的軟件包中。
Debian 使用一套名爲 Advanced Packaging Tool(APT)的工具來管理這種包系統,不過請不要把它與 apt 命令混淆,它們之間是其實不是同一個東西。在基於 Debian 的 Linux 發行版中,有各類工具能夠與 Advanced Packaging Tool(APT) 進行交互,以方便用戶安裝、刪除和管理的軟件包。apt-get 即是其中一款廣受歡迎的命令行工具,另一款較爲流行的是 Aptitude 這一命令行與 GUI 兼顧的小工具。除此以外,apt-cache、apt-config 這些命令都比較低級又包含衆多功能,普通的 Linux 用戶也許永遠都不會使用到。換種說法來講,就是最經常使用的 Linux 包管理命令都被分散在了 apt-get、apt-cache 和 apt-config 這三條命令當中。apt 命令的引入就是爲了解決命令過於分散的問題,它包括了 apt-get 命令出現以來使用最普遍的功能選項,以及 apt-cache 和 apt-config 命令中不多用到的功能。在使用 apt 命令時,用戶沒必要再由 apt-get 轉到 apt-cache 或 apt-config,並且 apt 更加結構化,併爲用戶提供了管理軟件包所需的必要選項。簡單來講就是:apt = apt-get、apt-cache 和 apt-config 中最經常使用命令選項的集合。經過 apt 命令,用戶能夠在同一地方集中獲得全部必要的工具,apt 的主要目的是提供一種以讓終端用戶滿意的方式來處理 Linux 軟件包的有效方式。apt 具備更精減但足夠的命令選項,並且參數選項的組織方式更爲有效。除此以外,它默認啓用的幾個特性對最終用戶也很是有幫助。例如,能夠在使用 apt 命令安裝或刪除程序時看到進度條。
雖然 apt 與 apt-get 有一些相似的命令選項,但它並不能徹底向下兼容 apt-get 命令。也就是說,能夠用 apt 替換部分 apt-get 系列命令,但不是所有。windows
apt 命令工具 |
取代的命令ui |
命令的功能spa |
---|---|---|
apt install操作系統 |
apt-get install開放源代碼 |
安裝軟件包命令行 |
apt remove日誌 |
apt-get removecode |
移除軟件包 |
apt purge |
apt-get purge |
移除軟件包及配置文件 |
apt update |
apt-get update |
刷新存儲庫索引 |
apt upgrade |
apt-get upgrade |
升級全部可升級的軟件包 |
apt autoremove |
apt-get autoremove |
自動刪除不須要的包 |
apt full-upgrade |
apt-get dist-upgrade |
在升級軟件包時自動處理依賴關係 |
apt search |
apt-cache search |
搜索應用程序 |
apt show |
apt-cache show |
顯示裝細節 |
固然,apt 還有一些本身的命令:
新的apt命令 |
命令的功能 |
---|---|
apt list |
列出包含條件的包(已安裝,可升級等) |
apt edit-sources |
編輯源列表 |
總結:
須要注意的是:apt 命令也還在不斷髮展, 所以會在未來的版本中看到新的選項。目前尚未任何 Linux 發行版官方放出 apt-get 將被停用的消息,至少它還有比 apt 更多、更細化的操做功能。對於低級操做,仍然須要 apt-get。既然兩個命令都有用,那麼我該使用 apt 仍是 apt-get 呢?做爲一個常規 Linux 用戶,建議你們儘快適應並開始首先使用 apt。不只由於廣大 Linux 發行商都在推薦 apt,更主要的仍是它提供了 Linux 包管理的必要選項。最重要的是,apt 命令選項更少更易記,所以也更易用,因此沒理由繼續堅持 apt-get。 apt 能夠看做 apt-get 和 apt-cache 命令的子集, 能夠爲包管理提供必要的命令選項。 apt-get 雖然沒被棄用,但做爲普通用戶,仍是應該首先使用 apt。
rpm 至關於windows中的安裝文件,它會自動處理軟件包之間的依賴關係。 rpm是redhat公司的一種軟件包管理機制,直接經過rpm命令進行安裝刪除等操做,最大的優勢是本身內部自動處理了各類軟件包可能的依賴關係。rpm通常都是預先編譯好的文件,它可能已經綁定到某種CPU或者發行版上面了。
tar 只是一種壓縮文件格式,因此,它只是把文件壓縮打包而已。tar通常包括編譯腳本,能夠在當前環境下編譯,因此具備通用性。 若是你的包不想開放源代碼,你能夠製做成rpm,若是開源,用tar更方便了。 tar通常都是源碼打包的軟件,須要本身解包,而後進行安裝三部曲,./configure, make, make install. 來安裝軟件。
通常來講著名的linux系統基本上分兩大類:
1.RedHat系列:Redhat、Centos、Fedora等 2.Debian系列:Debian、Ubuntu等
RedHat 系列
1 常見的安裝包格式 rpm包,安裝rpm包的命令是「rpm -參數」 2 包管理工具 yum 3 支持tar包
Debian系列
1 常見的安裝包格式 deb包,安裝deb包的命令是「dpkg -參數」 2 包管理工具 apt-get 3 支持tar包
apt-get 是一個下載安裝軟件包的簡單命令行接口。 命令: update - 從新獲取軟件包列表 upgrade - 進行更新 install - 安裝新的軟件包 remove - 移除軟件包 autoremove - 自動移除所有不使用的軟件包 purge - 移除軟件包和配置文件 source - 下載源碼檔案 build-dep - 爲源碼包配置編譯依賴 dist-upgrade - 發行版升級 dselect-upgrade - 依照 dselect 的選擇更新 clean - 清除下載的歸檔文件 autoclean - 清除舊的的已下載的歸檔文件 check - 檢驗是否有損壞的依賴 選項: -h 本幫助文件。 -q 輸出到日誌 - 無進展指示 -qq 不輸出信息,錯誤除外 -d 僅下載 - 不安裝或解壓歸檔文件 -s 不實際安裝。模擬執行命令 -y 假定對全部的詢問選是,不提示 -f 嘗試修正系統依賴損壞處 -m 若是歸檔沒法定位,嘗試繼續 -u 同時顯示更新軟件包的列表 -b 獲取源碼包後編譯 -V 顯示詳細的版本號 -c=? 閱讀此配置文件 -o=? 設置自定的配置選項,如 -o dir::cache=/tmp
經常使用的命令:
apt-cache search packagename 搜索包 apt-cache show packagename 獲取包的相關信息,如說明、大小、版本等 apt-get install packagename 安裝包 apt-get install packagename --reinstall 從新安裝包 apt-get -f install 修復安裝」-f = –fix-missing」 apt-get remove packagename 刪除包 apt-get remove packagename --purge 刪除包,包括刪除配置文件等 apt-get update 更新源 apt-get upgrade 更新已安裝的包 apt-get dist-upgrade 升級系統 apt-get dselect-upgrade 使用 dselect 升級 apt-cache depends packagename 瞭解使用依賴 apt-cache rdepends packagename 是查看該包被哪些包依賴 apt-get build-dep packagename 安裝相關的編譯環境 apt-get source packagename 下載該包的源代碼 apt-get clean 清理無用的包 apt-get autoclean 清理無用的包 apt-get check 檢查是否有損壞的依賴
注意事項:
update 是同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,這樣才能獲取到最新的軟件包。 upgrade 是升級已安裝的全部軟件包,升級以後的版本就是本地索引裏的,所以,在執行 upgrade 以前必定要執行 update, 這樣才能是最新的。 安裝或升級系統分下面幾個步驟: 第一步,得到最近的軟件包的列表;列表中包含一些包的信息,好比這個包是否更新過。 第二步,若是這個包沒有發佈更新,就無論它;若是發佈了更新,就把包下載到電腦上,並安裝。 apt update對應的就是第一步。 apt upgrade 與apt dist-upgrade對應的是第二步。 因爲包與包之間存在各類依賴關係。upgrade只是簡單的更新包,無論這些依賴,它不和添加包,或是刪除包。而dist-upgrade能夠根據依賴關係的變化,添加包,刪除包。 upgrade:系統將現有的Package升級,若是有相依性的問題,而此相依性須要安裝其它新的Package或影響到其它Package的相依性時,此Package就不會被升級,會保留下來. dist-upgrade:能夠聰明的解決相依性的問題,若是有相依性問題,須要安裝/移除新的Package,就會試着去安裝/移除它. (因此一般這個會被認爲是有點風險的升級) apt-get upgrade 和 apt-get dist-upgrade 本質上是沒有什麼不一樣的。只不過,dist-upgrade 會識別出當依賴關係改變的情形並做出處理,而upgrade對此情形不處理。 例如軟件包 a 原先依賴 b c d,可是在源裏面可能已經升級了,如今是 a 依賴 b c e。這種狀況下,dist-upgrade 會刪除 d 安裝 e,並把 a 軟件包升級,而 upgrade 會認爲依賴關係改變而拒絕升級 a 軟件包。
5、
sudo apt --fix-broken install
這個命令出來的時候通常是使用dpkg安裝軟件出現依賴或者源找不到的狀況,會提示使用這個命令來解決依賴,刪除半安裝的軟件,由於不使用這個軟件使用 apt update或者apt upgrade將不能成功。