標籤:最全的包管理
程式包管理
包括: 核心管理,進程管理,記憶體管理,網路通訊協定,驅動程式套件管理
包管理器:打包,包管理(安裝,升級,卸載,查詢及校正)
兩種包管理 deb ,rpm redhat package manager 包管理
1.1 程式包的組成部分:
二進位程式:/bin,/sbin/,/usr/bin,/usr/sbin
庫檔案:/lib64,/usr/lib64
設定檔:/etc/
幫組文檔:manual,info
1.2 包管理器
打包:一個單一的歸檔檔案
安裝,卸載,升級
校正:兩個管理,來源的合法性,完整性。
rpm 包的命令機制
包名+主要版本號.次版本號碼.備份版本 base-4.3.4.tar.gz 4.3.2.
每一個rpm包的名稱都由 - 和 . 分成了若干部分。就拿 “abrt-cli-2.0.8-15.el6.centos.i686.rpm” 這個包來解釋一下, “abrt-cli” 為包名, “2.0.8” 則為版本資訊, “15.el6.centos” 為發布版本號碼, “i686” 為運行平台。其中運行平台常見的有i386, i586, i686, x86_64 ,需要你注意的是cpu目前是分32位和64位的,i386,i586和i686都為32位平台,x86_64則代表為64位的平台。另外有些rpm包並沒有寫具體的平台而是noarch,這代表這個rpm包沒有硬體平台限制。
1.3 rpm工具
rpm是redhat package manager 的縮寫。 rpm是一種資料庫記錄的方式來將你所需要的套件安裝到你的linux主機的一套管理程式。也是說,在你的linux中存在一種資料庫的儲存機制記錄著包與包的依賴關係。安裝的時候會很快捷。也有缺點:rpm的預先編譯包的環境必須跟安裝時的包的編譯環境是一致的;卸載包時必須先卸載掉所依賴的包;如果依賴的包是系統所需要的就不能卸載。否則造成系統崩潰。rpm 資料庫存放路徑:/var/lib/rpm.
1.4 如何擷取rpm包:
1:發行版提供的程式包。
2:Fedora-EPEL 高品質軟體源。
3:項目的官方網站。
4:搜尋引擎:http://rpmfind.net
http://rpm.pbone.net
http://pkgs.org
centos 識別光碟片的裝置檔案: /dev/cdrom ,
1.5 基於rpm命令實現程式包管理 :
安裝:
rpm {i|--install}[install -options] package_file...
-i
-v:顯示安裝的詳細過程。
-h:顯示安裝的進度。
--nodeps:忽略依賴關係。
--replacepkgs:重裝程式包。
--force:強制安裝。
由於把光碟片檔案掛載到了/mnt/目錄下 掛載命令是 mount /dev/cdrom /mnt/
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/73/3D/wKioL1X4MEXDlBHYAAEhZm8Z48Q460.jpg" title="9A5BRVT_P4(1RVM$QQ55LMO.png" alt="wKioL1X4MEXDlBHYAAEhZm8Z48Q460.jpg" />
升級:
rpm {-U| --upgrade}[install - options] package..
-Uvh:如果有舊的程式包,則升級;如果沒有則安裝。
-Fvh:如果有舊的程式包,則升級;如果沒有就不安裝。
-nodeps:忽略依賴關係。
--oldpackage:降級,降為舊版本。
卸載:
rpm {-e |--erase}[--nodeps][--noscripts][--notriggers][--test] package_name
查詢:rpm {-q|--query}[select-options][query-options]
查詢選項
-qa:查詢本系統已經安裝的所有程式包;
-qf:/path/to/somefile 查詢此處產生的檔案由那個程式包檔案安裝產生;
-qc:查詢指定程式包安裝產生的設定檔。
-qd:查詢指定的程式包安裝產生的文檔;
-qi:查詢指定的程式包的先關資訊;
-ql:查詢程式安裝產生的所有檔案的列表;
-q --scripts:查詢程式包的相關的指令碼;
preinstall:安裝前的指令碼
postinstall:安裝後的指令碼
preuninstall:卸載前的指令碼;
postuninstall:卸載後的指令碼;
-p:查詢針對是未安裝的程式包檔案;
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/73/40/wKiom1X4NOOBERZwAAKKNtiIAbo912.jpg" title="9CB20M{D1G{$60V{F23QAPO.png" alt="wKiom1X4NOOBERZwAAKKNtiIAbo912.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/73/40/wKiom1X4NsuA3LDsAABn9aQgWeI991.jpg" title="EZ${KG4L8SA4GW6OSY1JJ{K.png" alt="wKiom1X4NsuA3LDsAABn9aQgWeI991.jpg" />
包校正
rpm {-V|--verify}[select--options][verfy--options]
來源的合法性驗證:非對稱式加密;完整性驗證:單向加密;匯入秘鑰:rpm --import /path/key_file
YUM工具管理組件 yellow updateer modified
yum repositories
檔案伺服器:ftp://hostname/path/repo(ftp倉庫)
http://hostname/path/repo(網上倉庫)
file:///path/repo (本地倉庫)
yum設定檔:
/etc/yum.conf:定義全域配置,對所有倉庫都適用。
/etc/yum.repos.d/*.repo:一個檔案通常用於一個或者一組功能相近或相關的倉庫
定義一個倉庫的指向:
[repo_id]
name=
baseurl=
#mirrorlist=scheme://hostname/path/....mirror
enabled={1|0}
gpgkey=
cost=
定義倉庫指向可用的變數:
$releaserver:引用當前系統的主要版本號;
$basearch:當前系統的基本架構;
i386,i486,i586, i686
http://mirrors.magedu.com/CentOS/$releasever/os/$basearch
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/73/3D/wKioL1X4QPjBmarpAAHm2rJIWTs419.jpg" title="SHA%TYIHR$N1IEI](65MTN2.png" alt="wKioL1X4QPjBmarpAAHm2rJIWTs419.jpg" /> [base]:代表的是倉庫名,name:代表倉庫的備忘吧。mirrorlist:列出可用使用鏡像網站。
baseurl:倉庫指向的鏡像網站。enable=1:代表倉庫啟動,0關閉;gpgcheck=1:是否查閱rpm檔案內的數位憑證;gpgkey:數位憑證公開金鑰所在
centos程式包管理