Linux學習筆記(一)----Ubuntu下的apt命令


一、原理與目錄

先介紹幾個和apt-get相關的目錄:

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

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

/etc/apt/sources.list
存放的是軟件源站點, 當你執行 sudo apt-get install xxx 時,Ubuntu 就去這些站點下載軟件包到本地並執行安裝

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

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 <ubuntu-mozillateam@lists.ubuntu.com>
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一項中的依賴需求。

二、命令常用方式

apt和apt-get命令之間的區別

雖然 apt 與 apt-get 有一些類似的命令選項,但它並不能完全向下兼容 apt-get 命令。也就是說,可以用 apt 替換部分 apt-get 系列命令,但不是全部。

apt 命令 取代的命令 命令的功能
apt install apt-get install 安裝軟件包
apt remove apt-get remove 移除軟件包
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 命令也還在不斷發展, 因此,你可能會在將來的版本中看到新的選項。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM