Ubuntu上的apt/apt-get等命令的實質意義和區別

Ubuntu上的apt/apt-get等命令的實質意義和區別

1、前言

       在使用apt和apt-get命令的時候咱們經常會疑惑這二者有什麼區別,由於大多數時間這兩個命令能作不少相同的事情。linux

2、APT/APT-GET

 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。

3、rpm和apt-get

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包

 4、apt-get

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將不能成功。
相關文章
相關標籤/搜索