sudo apt-get update 執行這條命令後計算機作了什麼?web
不管用戶使用哪些手段配置APT軟件源,只是修改了配置文件——/etc/apt/sources.list,目的只是告知軟件源鏡像站點的地址。但那些所指向的鏡像站點所具備的軟件資源並不清楚,須要將這些資源列個清單,以便本地主機知曉能夠申請哪些資源。ubuntu
用戶可使用「apt-get update」命令刷新軟件源,創建更新軟件包列表。在Ubuntu Linux中,「apt-get update」命令會掃描每個軟件源服務器,併爲該服務器所具備軟件包資源創建索引文件,存放在本地的/var/lib/apt/lists/目錄中。 使用apt-get執行安裝、更新操做時,都將依據這些索引文件,向軟件源服務器申請資源。所以,在計算機設備空閒時,常常使用「apt-get update」命令刷新軟件源,是一個好的習慣。瀏覽器
sudo apt-get install XXX 後計算機作了什麼?服務器
使用「apt-get install」下載軟件包大致分爲4步:第一步,掃描本地存放的軟件包更新列表(由「apt-get update」命令刷新更新列表,也就是/var/lib/apt/lists/),找到最新版本的軟件包;第二步,進行軟件包依賴關係檢查,找到支持該軟件正常運行的全部軟件包;第三步,從軟件源所指 的鏡像站點中,下載相關軟件包;第四步,解壓軟件包,並自動完成應用程序的安裝和配置。網絡
sudo apt-get upgrade 後計算機作了什麼
架構
使用「apt-get install」命令可以安裝或更新指定的軟件包。而在Ubuntu Linux中,只需一條命令就能夠輕鬆地將系統中的全部軟件包一次性升級到最新版本,這個命令就是「apt-get upgrade」,它能夠很方便的完成在相同版本號的發行版中更新軟件包。在依賴關係檢查後,命令列出了目前全部須要升級的軟件包,在獲得用戶確認後,便開始更新軟件包的下載和安裝。固然,apt- get upgrade命令會在最後以合理的次序,安裝本次更新的軟件包。系統更新須要用戶等待一段時間。app
Ubuntu Linux會不斷推出新的版本,不管是經過Internet,仍是使用光盤(由ISO鏡像文件刻錄的安裝光盤),使用「apt-get dist-upgrade」命令能夠實現Ubuntu系統從一個版本直接升級到另外一個新版本。例如,從Ubuntu的一個發行版本 dapper(version 6.10)升級到feisty(version 7.04)。ui
這個升級過程包括3步:spa
● 第一步,須要修改軟件源配置文件的各個配置項中的版本標識。相似於將如下配置項。.net
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」要複雜的多,必需要籌劃整個系統的升級過程,其中包括列出全部須要卸載、安裝和升級的軟件包。這個升級過程當中的時間和空間消耗是至關大的。
wdl@wdl-desktop:~$ sudo apt-get dist-upgrade
先介紹幾個和apt-get相關的目錄:
/var/lib/dpkg/available
文件的內容是軟件包的描述信息, 該軟件包括當前系統所使用的 ubunt 安裝源中的全部軟件包,其中包括當前系統中已安裝的和未安裝的軟件包.
/var/cache/apt/archives
目錄是在用 apt-get install 安裝軟件時,軟件包的臨時存放路徑
/etc/apt/sources.list
存放的是軟件源站點
/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一項中的依賴需求。