1. 程式人生 > >【Linux】- apt-get命令

【Linux】- apt-get命令

讀取 too sha2 下載軟件 com ade art 地址 archive

apt-get,是一條linux命令,適用於deb包管理式的操作系統,主要用於自動從互聯網的軟件倉庫中搜索、安裝、升級、卸載軟件或操作系統。

Advanced Package Tool,又名apt-get,是一款適用於Unix和Linux系統的應用程序管理器。最初於1998年發布,用於檢索應用程序並將其加載到Debian Linux系統。Apt-get成名的原因之一在於其出色的解決軟件依賴關系的能力。其通常使用.deb-formatted文件,但經過修改後可以使用apt-rpm處理紅帽的Package Manager(RPM)文件。

使用apt-get的主流Linux系統包括Debian和Ubuntu變異版本。大多數情況下,從命令行運行該工具。桌面上有幾個圖形前端可以使用,包括Synaptic Package Manager、Ubuntu Software Center、Aptitude和Kpackage。Raspberry Pi和Beaglebone Black nanoLinux版用戶可以很容易地使用apt-get加載程序,因為這些系統通常來自Ubuntu或Debian代碼。是debian,ubuntu發行版的包管理工具,與紅帽中的yum工具非常類似。 [1]
apt-get命令一般需要root權限執行,所以一般跟著sudo命令。 常用命令:
apt-get install packagename  #安裝一個新軟件包
apt-get remove packagename #卸載一個已安裝的軟件包(保留配置文檔)
apt-get remove --purge packagename #卸載一個已安裝的軟件包(刪除配置文檔)
apt-get autoremove packagename #刪除包及其依賴的軟件包
apt-get autoremove --purge packagname #刪除包及其依賴的軟件包+配置文件,比上面的要刪除的徹底一點
dpkg 
--force-all --purge packagename #有些軟件很難卸載,而且還阻止了別的軟件的應用,就能夠用這個,但是有點冒險。

無論用戶使用哪些手段配置APT軟件源,只是修改了配置文件——/etc/apt/sources.list,目的只是告知軟件源鏡像站點的地址。但那些所指向的鏡像站點所具有的軟件資源並不清楚,需要將這些資源列個清單,以便本地主機知曉可以申請哪些資源;

1、sudo apt-get update

  apt-get update命令會掃描每一個軟件源服務器,並為該服務器所具有軟件包資源建立索引文件,存放在本地的/var/lib/apt/lists/目錄中。 使用apt-get執行安裝、更新操作時,都將依據這些索引文件,向軟件源服務器申請資源。因此,在計算機設備空閑時,經常使用“apt-get update”命令刷新軟件源,是一個好的習慣

2、sudo apt-get upgrade

  將系統中的所有軟件包一次性升級到最新版本,可以很方便的完成在相同版本號的發行版中更新軟件包。在依賴關系檢查後,命令列出了目前所有需要升級的軟件包,在得到用戶確認後,便開始更新軟件包的下載和安裝。當然,apt- get upgrade命令會在最後以合理的次序,安裝本次更新的軟件包。系統更新需要用戶等待一段時間。

3、sudo apt-get install XXX

  使用“apt-get install”下載軟件包大體分為4步:第一步,掃描本地存放的軟件包更新列表(由“apt-get update”命令刷新更新列表,也就是/var/lib/apt/lists/),找到最新版本的軟件包;第二步,進行軟件包依賴關系檢查,找到支持該軟件正常運行的所有軟件包;第三步,從軟件源所指 的鏡像站點中,下載相關軟件包;第四步,解壓軟件包,並自動完成應用程序的安裝和配置。

5、升級系統到新版本 

Ubuntu Linux會不斷推出新的版本,無論是通過Internet,還是使用光盤(由ISO鏡像文件刻錄的安裝光盤),使用“apt-get dist-upgrade”命令可以實現Ubuntu系統從一個版本直接升級到另一個新版本。例如,從Ubuntu的一個發行版本 dapper(version 6.10)升級到feisty(version 7.04)。

這個升級過程包括3步:

● 第一步,需要修改軟件源配置文件的各個配置項中的版本標識。類似於將以下配置項。

deb http://cn.archive.ubuntu.com/ubuntu/  dapper main restricted

修改為:

deb http://cn.archive.ubuntu.com/ubuntu/  feisty  main restricted

● 第二步,使用“apt-get update”命令刷新軟件包更新列表。

● 第三步,使用“apt-get dist-upgrade”命令為系統升級新的版本。

從以下命令的執行結果可以看出,“apt-get dist-upgrade”要比“apt-get upgrade”要復雜的多,必須要籌劃整個系統的升級過程,其中包括列出所有需要卸載、安裝和升級的軟件包。這個升級過程中的時間和空間消耗是相當大的。

6、幾個和apt-get相關的目錄

#文件的內容是軟件包的描述信息, 該軟件包括當前系統所使用的 ubunt 安裝源中的所有軟件包,其中包括當前系統中已安裝的和未安裝的軟件包.
/var/lib/dpkg/available

#目錄是在用 apt-get install 安裝軟件時,軟件包的臨時存放路徑
/var/cache/apt/archives

#存放的是軟件源站點
/etc/apt/sources.list

#使用apt-get update命令會從/etc/apt/sources.list中下載軟件列表,並保存到該目錄
/var/lib/apt/lists

7、APT工作原理

Ubuntu采用集中式的軟件倉庫機制,將各式各樣的軟件包分門別類地存放在軟件倉庫中,進行有效地組織和管理。然後,將軟件倉庫置於許許多多的鏡像服務器中,並保持基本一致。這樣,所有的Ubuntu用戶隨時都能獲得最新版本的安裝軟件包。因此,對於用戶,這些鏡像服務器就是他們的軟件源(Reposity)。然而,由於每位用戶所處的網絡環境不同,不可能隨意地訪問各鏡像站點。為了能夠有選擇地訪問,在Ubuntu系統中,使用軟件源配置文件/etc/apt/sources.list列出最合適訪問的鏡像站點地址。

apt-get的更新過程:

  • 執行apt-get update
  • 程序分析/etc/apt/sources.list
  • 自動連網尋找list中對應的Packages/Sources/Release列表文件,如果有更新則下載之,存入/var/lib/apt/lists/目錄
  • apt-get install 相應的包 ,下載並安裝。

即使這樣,軟件源配置文件只是告知Ubuntu系統可以訪問的鏡像站點地址,但那些鏡像站點具體都擁有什麽軟件資源並不清楚。若每安裝一個軟件包,就在服務器上尋找一遍,效率是很低的。因而,就有必要為這些軟件資源列個清單(建立索引文件),以便本地主機查詢。

apt-get install 下載的軟件存放到 /var/cache/apt/archives/下。

同時,APT能夠檢查Ubuntu Linux系統中的軟件包依賴關系,大大簡化了Ubuntu用戶安裝和卸載軟件包的過程。

apt-get install原理:
deb http://cn.archive.ubuntu.com/ubuntu/ precise main restricted

可通過瀏覽器找到

apt-get 每次都會讀取這個文件,從而獲取的包的信息。從Packages.gz中獲取到所有包的信息。Packages.gz中包含的信息有:

包名,優先級,類型,維護者,架構,源文件(source),版本號,依賴包,沖突性信息,包大小,文件的下載路徑,MD5sum,SHA1,包描述,Xul-Appid—應用程序id,Bugs信息,Origin,Supported

Packages中的一個包信息實例:

Package: abrowser
Priority: optional
Section: web
Installed-Size: 153
Maintainer: Ubuntu Mozilla Team <[email protected]>
Architecture: amd64
Source: firefox
Version: 11.0+build1-0ubuntu4
Depends: firefox (>= 9.0)
Filename: pool/main/f/firefox/abrowser_11.0+build1-0ubuntu4_amd64.deb
Size: 8940
MD5sum: e8781af38a6de76126d190fc10a14bf2
SHA1: 408abd5f960d4b02bc18581df348954eb7620772
SHA256: cdfad0e4435c035b3115bdec08d79ccfc68bf9480e89df9270b3b6befa348699
Description: Safe and easy web browser from Mozilla – transitional package
Description-md5: e89058e4775caff7d26313fa8811675e
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu
Supported: 18m

從這個信息段中可以看出來,實際的deb包放在pool/main/f/firefox/abrowser_11.0+build1-0ubuntu4_amd64.deb,通過瀏覽器同樣可以找到。從中也可以看到Depends一項中的依賴需求。

8、常用的APT命令參數

  apt-cache search package 搜索包
  apt-cache show package 獲取包的相關信息,如說明、大小、版本等
  sudo apt-get install package 安裝包
  sudo apt-get install package - - reinstall 重新安裝包
  sudo apt-get -f install 修復安裝"-f = ――fix-missing"
  sudo apt-get remove package 刪除包
  sudo apt-get remove package - - purge 刪除包,包括刪除配置文件等
  sudo apt-get update 更新源
  sudo apt-get upgrade 更新已安裝的包
  sudo apt-get dist-upgrade 升級系統
  sudo apt-get dselect-upgrade 使用 dselect 升級
  apt-cache depends package 了解使用依賴
  apt-cache rdepends package 是查看該包被哪些包依賴
  sudo apt-get build-dep package 安裝相關的編譯環境
  apt-get source package 下載該包的源代碼
  sudo apt-get clean && sudo apt-get autoclean 清理無用的包
  sudo apt-get check 檢查是否有損壞的依賴
  其中:
  1 有SUDO的表示需要管理員特權!
  2 在UBUNTU中命令後面參數為短參數是用“-”引出,長參數用“――”引出
  3 命令幫助信息可用man 命令的方式查看或者
  命令 -H(――help)方式查看
  4 在MAN命令中需要退出命令幫助請按“q”鍵!!
  選項 含義 作用
  sudo -h Help 列出使用方法,退出。
  sudo -V Version 顯示版本信息,並退出。
  sudo -l List 列出當前用戶可以執行的命令。只有在sudoers裏的用戶才能使用該選項。
  sudo -u username|#uid User 以指定用戶的身份執行命令。後面的用戶是除root以外的,可以是用戶名,也可以是#uid。
  sudo -k Kill 清除“入場卷”上的時間,下次再使用sudo時要再輸入密碼。
  sudo -K Sure kill 與-k類似,但是它還要撕毀“入場卷”,也就是刪除時間戳文件。
  sudo -b command Background 在後臺執行指定的命令。
  sudo -p prompt command Prompt 可以更改詢問密碼的提示語,其中%u會代換為使用者帳號名稱,%h會顯示主機名稱。非常人性化的設計。
  sudo -e file Edit 不是執行命令,而是修改文件,相當於命令sudoedit。

--------------------- 作者:General_單刀 來源:CSDN 原文:https://blog.csdn.net/qq_28284093/article/details/80103771?utm_source=copy 版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

【Linux】- apt-get命令