嵌(qian)入式學(xue)習(xi)筆記:deb軟件(jian)包(bao)管理隨堂(tang)筆記(還有(you)題(ti)型哦(e))
時間:2018-09-07 來源:未(wei)知
學(xue)(xue)(xue)(xue)習(xi)deb軟件(jian)(jian)包管理怎么(me)學(xue)(xue)(xue)(xue),這里是我在華清遠見學(xue)(xue)(xue)(xue)習(xi)總結的一些筆記(ji),對學(xue)(xue)(xue)(xue)習(xi)deb軟件(jian)(jian)包管理還(huan)是很有用(yong)的,學(xue)(xue)(xue)(xue)完以(yi)后后面也有檢測題,可以(yi)學(xue)(xue)(xue)(xue)學(xue)(xue)(xue)(xue)哦。
【1】流行的兩(liang)種軟件包管理機制
(1)Debian Linux 首(shou)先提出(chu)“軟件包(bao)”的管理機(ji)制---Deb 軟件包(bao)
將應(ying)用程序的二進制文件(jian)(jian)(jian)、配置文件(jian)(jian)(jian)、man/info 幫助頁面等(deng)文件(jian)(jian)(jian)合并打包(bao)在(zai)一個(ge)文件(jian)(jian)(jian)中,用戶使用軟件(jian)(jian)(jian)包(bao)管理器直接(jie)操作軟件(jian)(jian)(jian)包(bao),完成獲取、安裝、卸載、查(cha)詢(xun)等(deng)操作。
(2)Redhat Linux 基于這個理念推(tui)出了自己的軟件包管理機制---Rpm 軟件包
(3)隨著 Linux 操作系統規(gui)模不斷擴(kuo)大,系統中軟件包間復雜的(de)依賴(lai)關系,導致 Linux 用戶麻煩(fan)不斷
(4)Debian Linux 開發出(chu)了 APT 軟件包(bao)管理器。
1)檢(jian)查(cha)和修復軟件包依賴關系
2)利用(yong) Internet 網絡(luo)幫助用(yong)戶主(zhu)動獲取軟件包
(5)APT 工具再次促進了 Deb 軟件包(bao)更為(wei)廣泛(fan)地使用,成為(wei) Debian Linux 的一(yi)個(ge)無法替代的亮點。
【2】軟件包(bao)的類(lei)型
(1)Ubuntu 有兩種類型的(de)軟件(jian)包:二進制軟件(jian)包(deb)和源(yuan)碼包(deb-src)
1)二進制軟件(jian)(jian)包(Binary Packages):它包含可執行文(wen)件(jian)(jian)、庫(ku)文(wen)件(jian)(jian)、配置文(wen)件(jian)(jian)、man/info
頁(ye)面、版權(quan)聲(sheng)明和其(qi)它文檔。
2)源碼包(bao)(Source Packages):包(bao)含軟件源代碼、版本修改說明、構建指令及編譯工具等。
先由 tar 工具(ju)歸檔為(wei).tar.gz 文件,然后再打包成.dsc 文件。
(2)在(zai)用(yong)戶(hu)不(bu)確定一個軟件包類型(xing)時,可以使用(yong) file 命(ming)令查看文件類型(xing)。
【3】軟(ruan)件包(bao)的命名
軟件(jian)包的命名遵循(xun)以下約定(ding):
Filename_Version-Reversion_Architecture.deb
軟件包名稱
Filename
軟件版本
Version
修訂版本
Reversion
體系(xi)架構(gou) A
rchitecture
【4】軟件包管理工具分類
(1)根(gen)據(ju)用戶交互方(fang)式的不同(tong),可以將(jiang)常見的軟件(jian)包管理(li)工具分為(wei)三類:
類別
命令行
常見工(gong)具舉例
dpkg-deb、dpkg、apt
描述
在命(ming)令行(xing)模式下(xia)完成軟件
包管理(li)任務。為完成軟(ruan)件(jian)包
的獲取、查詢、軟件包依賴
性檢查、安裝、卸(xie)載等任務
文本窗口界面
dselect
、aptitude、tasksel
需要使用各自不同(tong)的命令
在文本窗口(kou)模式中,使用(yong)窗口(kou)
和(he)菜單可(ke)以完成軟件包管(guan)理任務
圖形(xing)界面 synaptic 在 X-Window 圖形(xing)桌面環境
中運行,具(ju)有更好的交互性(xing)、可(ke)讀(du)性(xing)、易用(yong)性(xing)等(deng)特(te)點(dian)
【5】dpkg 相關命(ming)令
dpkg -i 安裝(zhuang)一個在(zai)本(ben)地(di)文件(jian)系統上(shang)存(cun)在(zai)的 Debian 軟件(jian)包(bao) dpgk -r 移除一個已經安裝(zhuang)的軟件(jian)包(bao)
dpkg -P 移除已安裝軟(ruan)件(jian)(jian)包(bao)及(ji)配置文件(jian)(jian) dpkg -L 列出安裝的(de)軟(ruan)件(jian)(jian)包(bao)清單 dpkg -s 顯出軟(ruan)件(jian)(jian)包(bao)的(de)安裝狀態
筆記
【6】APT 工作原(yuan)理
(1)Ubuntu 采(cai)用集中式的(de)軟件(jian)倉(cang)庫機制(zhi),將各式各樣(yang)的(de)軟件(jian)包分(fen)門別類地存在軟件(jian)倉(cang)庫中,進行有效地組(zu)織(zhi)和管理。
然后(hou)將軟件(jian)(jian)倉庫置于(yu)許(xu)許(xu)多(duo)多(duo)的(de)鏡像(xiang)服(fu)務(wu)器(qi)中(zhong),并保(bao)持基本(ben)一致,因(yin)此,對于(yu)用戶(hu),這(zhe)些(xie)鏡像(xiang)服(fu)務(wu)器(qi)就是他(ta)們(men)的(de)軟件(jian)(jian)源(reposity)
(2)在 Ubuntu 系統中(zhong),使用軟件源配(pei)置文件/etc/apt/sources.list 列出最適合訪問的鏡像站點地址。
(3)軟(ruan)件源配置文件只(zhi)是告訴(su) Ubuntu 系統可以(yi)訪(fang)問的(de)鏡(jing)像站點(dian)地址。但那些鏡(jing)像站點(dian)都擁有什么軟(ruan)件資源并(bing)不清楚。
若是每安裝(zhuang)一個軟件包,就(jiu)在服務器(qi)上(shang)尋找一邊,效率是很低(di)的。因而就(jiu)有必(bi)要為這些軟件資源列出個清單(建(jian)立索引(yin)年(nian)文(wen)件),
以便本地主機查詢(xun),這就是 APT 軟件包管理器的(de)工作原理。
(4)/etc/apt/sources.list。本(ben)質就是一個(ge)普(pu)通的文本(ben)文件,就可以在超級管理員授(shou)權下,使用任何文本(ben)編輯器進行(xing)編輯。在該文件中(zhong),
添加的(de)軟件源鏡像站點(dian)稱(cheng)為一個(ge)配置(zhi)項,并遵循以下(xia)格式(shi):
DebType AddressType://Hostaddress/Ubuntu Distribution Component1 Component2......
deb //cn.archive.ubuntu.com/ubuntu/ feisty main restricted universe multiverse
(5) 根據軟件包(bao)的(de)開發組織對該軟件的(de)支持程度(du)(du),以及(ji)遵從的(de)開源程度(du)(du),劃分為(wei)如下四
類:
1)核心(Main):官方維護的(de)開源軟(ruan)件(jian),是由(you) Ubuntu 官方完全支持(chi)的(de)軟(ruan)件(jian),包(bao)括大多數流行的(de)、穩定的(de)開源軟(ruan)件(jian),是 Ubuntu 默認安裝的(de)基本軟(ruan)件(jian)包(bao);
2)公共(Universe):社區(qu)維護的開源軟(ruan)件(jian)(jian),是由 Ubuntu 社區(qu)的計算機(ji)愛好者維護的軟(ruan)件(jian)(jian)。這些軟(ruan)件(jian)(jian)包沒(mei)有安(an)全升級(ji)的保障。
用戶(hu)在使用時,需要考(kao)慮這些軟件包存在的不穩(wen)定(ding)性;
3)受限(Restricted):官方維護(hu)的非開源軟件(jian),是(shi)專供特殊用途,而且沒有自由軟件(jian)版
權,不(bu)能直接修改軟件,但依然被 Ubuntu 團隊支持的(de)軟件;
4)多元化(Multiverse):非 Ubuntu 官(guan)方維(wei)護(hu)的非開源軟件,用戶的使用這些軟件包時,需要特別注(zhu)意版權問題。
(6)刷新軟件源(yuan)
1)修改了配置文件---/etc/apt/source.list,目的(de)只是告知軟件源鏡像(xiang)站點的(de)地(di)址。但那
些所指向(xiang)的鏡像站(zhan)點所具有的軟件資源并不清楚,
需要將(jiang)這些(xie)資源(yuan)列個清單,以便本機主機知曉(xiao)可以申請(qing)哪些(xie)資源(yuan)。
2)使(shi)用“apt-get update”命令會掃描(miao)每一個軟(ruan)件源服(fu)務(wu)器,并(bing)為(wei)該服(fu)務(wu)器所具(ju)有
軟(ruan)件包資源建立索引文件,存放在本地的/var/lib/apt/lists 目錄中。
【7】軟(ruan)件管(guan)理相關工作(zuo)
(1)管理軟件包
1)在 Ubuntu Linux 中,通常使用 apt-get 命令管理軟件包(bao)(bao),只需告知軟件包(bao)(bao)名字,就可以自動完成軟件包(bao)(bao)的獲取、安(an)裝、編譯和卸載(zai),以及檢查軟件包(bao)(bao)依賴關(guan)系。
2)apt-get 命(ming)令提供了一個軟件包(bao)管理(li)額命(ming)令行平(ping)(ping)臺。在這(zhe)個平(ping)(ping)臺上(shang)使用(yong)更(geng)豐(feng)富的子命(ming)令,完(wan)成具體的管理(li)任務。
apt-get subcommands [-d|-f|-m|-q|--purge|--reinstall|-b|-s|-y|-u|-h|-v] pkg
(2) 修(xiu)復軟件包依(yi)賴關系
1)如果由于(yu)故障而(er)中斷(duan)軟(ruan)(ruan)件安裝(zhuang)過程(cheng),可(ke)能(neng)(neng)會(hui)造成關聯的軟(ruan)(ruan)件包只有部分安裝(zhuang)。之后,用戶就會(hui)發現(xian)該軟(ruan)(ruan)件既不能(neng)(neng)重(zhong)裝(zhuang)又不能(neng)(neng)刪除。
2)作為組合(he)命令,下面(mian)前者(zhe)(zhe)用于(yu)(yu)檢(jian)查軟(ruan)件包依賴(lai)關(guan)系,后(hou)者(zhe)(zhe)用于(yu)(yu)修(xiu)復依賴(lai)關(guan)系。
“apt-get check”--“apt-get -f install”
3) 在處(chu)理依(yi)賴關系上,apt-get 會自(zi)動下(xia)載(zai)并(bing)安(an)裝(zhuang)具有依(yi)賴關系(depends)的軟件包(bao),但不會處(chu)理與(yu)安(an)裝(zhuang)軟件包(bao)存在推薦(recommends)和建議(suggests 關系的軟件包(bao)。
(3)更(geng)新軟件包
1)在(zai) Ubuntu Linux 中,只需使用命(ming)令“apt-get upgrade”就(jiu)可(ke)以輕松(song)地(di)將系統中的所(suo)有軟件包一次(ci)性升級到(dao)最新版本
(4)安裝(zhuang)軟(ruan)(ruan)件包1)在準備好(hao)軟(ruan)(ruan)件源并連通網(wang)絡(luo)后,用戶只需告(gao)知安裝(zhuang)軟(ruan)(ruan)件的名稱(cheng),“apt-get install”
命令就(jiu)可以輕松完成整個安裝過程,而無(wu)需考慮軟(ruan)件(jian)包的版本、優先級、依賴(lai)關系等
2)使用“apt-get install”下載軟件包大體分為(wei)四步:
STEP1: 掃(sao)描本地存放(fang)的(de)軟件包(bao)更(geng)新(xin)(xin)列(lie)表(有 apt-get update 命(ming)令(ling)刷新(xin)(xin)更(geng)新(xin)(xin)列(lie)表),找到(dao)最新(xin)(xin)版本的(de)軟件包(bao)
STEP2: 進行(xing)軟件(jian)包依賴關系(xi)檢查(cha),找到支(zhi)持該軟件(jian)正(zheng)常(chang)運行(xing)的所有軟件(jian)包;
STEP3: 從軟件(jian)源所指的鏡像(xiang)站點中,下載相關軟件(jian)包;
STEP4: 解壓軟(ruan)件包(bao),并(bing)自動完成應用程序的安(an)裝和配置。(5)重(zhong)新(xin)安(an)裝軟(ruan)件包(bao)
當(dang)用戶不小心損壞(huai)了已(yi)經安(an)(an)(an)裝的(de)軟(ruan)件(jian)(jian)包,而(er)需要修復。或(huo)者,希望重新安(an)(an)(an)裝軟(ruan)件(jian)(jian)包中某些文件(jian)(jian)的(de)最新版本,可以重新安(an)(an)(an)裝軟(ruan)件(jian)(jian)包
(6)卸載軟件包
1)不完全卸載
“apt-get remove”會關注那些(xie)與被刪除(chu)的(de)軟(ruan)件(jian)包相關的(de)其(qi)它軟(ruan)件(jian)包,刪除(chu)一(yi)個軟(ruan)件(jian)包時,將(jiang)會連(lian)帶刪除(chu)與該軟(ruan)件(jian)包有依賴(lai)關系的(de)軟(ruan)件(jian)包。
2)完全卸載
“apt-get --purge remove”命令在(zai)卸載(zai)軟件包文(wen)件的同(tong)時,還刪除該(gai)軟件包所使的配置文(wen)件。
(7)清理軟(ruan)件(jian)(jian)包緩沖區1)如果用(yong)戶(hu)認為(wei)軟(ruan)件(jian)(jian)包緩沖區中的文件(jian)(jian)沒有任何價值了,有必(bi)要刪除全部下載的軟(ruan)件(jian)(jian)
包(bao)。可(ke)以使用“apt-get clean”清理整個軟(ruan)件包(bao)緩沖區,除了 lock 鎖文件和 partial 目錄(lu)。緩沖目錄(lu): /var/cache/apt/archives
清理命令: sudo apt-get clean 2)按照依賴關系清理緩沖區(qu)中多余的軟件包
如(ru)果用戶希(xi)望緩沖區中(zhong)只保(bao)留最新版本的軟件包,多余版本全部清楚,可以使用
“apt-get sutoclean”命(ming)令。(8)查詢軟件包(bao)信息
1) 使用 apt-cache 命令完成(cheng)查詢(xun)軟件源(yuan)和軟件包的相關(guan)信息。 apt-cache subcommands [-p|-s|-q|-i|-c|-h] pkg
2) 使用“apt-cache show”命(ming)令獲取指定軟(ruan)件包(bao)(bao)的(de)詳細信息,包(bao)(bao)括軟(ruan)件包(bao)(bao)安裝狀(zhuang)態、優先級、適用架構、版(ban)本、存在依賴關系的(de)軟(ruan)件包(bao)(bao),以及功能描述。該命(ming)令可以同時(shi)顯(xian)現(xian)多個軟(ruan)件包(bao)(bao)的(de)詳細信息。
(9)獲取軟件包安裝狀(zhuang)態
1)使用“apt-cache policy”可(ke)以獲取軟件包當前的(de)安裝狀態
2)如果用戶僅想(xiang)了解某個(ge)軟(ruan)件(jian)包依(yi)賴于哪些軟(ruan)件(jian)包,可以使(shi)用“apt-cache depends”
命令
3)如果用(yong)戶僅(jin)想了解某(mou)個軟件(jian)包(bao)(bao)被哪(na)些軟件(jian)包(bao)(bao)所(suo)依(yi)賴(lai),可(ke)以(yi)使用(yong)“apt-cache rdepends” 命令。
【8】總結與思考
(1)本節課主要講解了 APT 軟件包管理(li)器的(de)工(gong)作(zuo)原理(li)及主要命令(ling)
(2)下(xia)列文件什么作(zuo)用?
/etc/apt/sources.list
/var/lib/apt/lists/*
/var/cache/apt/archives
【9】總結與思考
(1) 本節(jie)課主要(yao)對軟(ruan)件(jian)包(bao)管理機制進行了總體(ti)介紹,并詳細講解(jie)了 dpkg 軟(ruan)件(jian)包(bao)管理器
的用法
(2)思考
1)dpkg 和 apt 軟(ruan)件包管理器有(you)什么區(qu)別?