Linux學習筆記(二)-AIX程序包原理及linux RPM包

AIX程序包原理及linux RPM包

一. AIX程序包原理
1. 原理
這裏寫圖片描述
2. 文件集(fileset)命名規則
這裏寫圖片描述
Fileset這種命名格式基本上描述了此文件集的內容和層次關係,方便管理員查看和管理
3. 文件集(fileset)的版本號
這裏寫圖片描述
Version和Release版本號的升級是需要購買,而後面兩個版本號的升級可以到IBM網址免費下載;每個fileset都有各自的版本號,操作系統也有它的版本號
4. 軟件包的兩種安裝狀態Applied和 Committed
這裏寫圖片描述
- 舊版本的軟件升級後處於 applied狀態,系統使用的是新的版本,舊的版本並沒有被刪除
- 執行commit動作後,舊的版本被刪除,軟件包就處於committed狀態了;執行reject動作,新的版本被刪除,系統仍用舊的版本
- 軟件包的升級,爲了應用安全運行,先讓新軟件包處於applied狀態試運行一陣後再commit;如果安裝一個新的軟件包,就直接committed

二. linux RPM包
1. 介紹
- RPM是RedHat Package Manager(RedHat軟件包管理工具)的縮寫
- 這一文件格式名稱雖然打上了RedHat的標誌,但是其原始設計理念是開放式的,現在包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分發版本都有采用,可以算是公認的行業標準了
- 一個RPM包文件是能夠讓應用軟件運行的全部文件的一個集合,它記錄了二進制軟件的內容、安裝的位置、軟件包的描述信息、軟件包之間的依賴關係等信息
2. RPM的體系結構
這裏寫圖片描述
3. 基本命令
3.1. rpm的安裝、升級、刷新

```
基本語法:
 rpm -i package-filename.rpm (install)
 rpm -F package-filename.rpm (freshen)
 rpm -U package-filename.rpm (upgrade)
選項:
 -v 表示可以輸出詳細信息
 -h 在安裝過程中打印50個“#”符號,表示安裝進度

```
例如:安裝軟件包package-10.2-67.i386.rpm
 # rpm -ihv package-10.2-67.i386.rpm
 package: ########################################

3.2. rpm包的刪除

```
基本語法:
  rpm -e package-filename
選項:
  --nodeps 忽略包的依賴提示

```

例如:刪除包 kdelibs3
刪除一個文件
如果使用以下命令將忽略包的依賴提示

#rpm -e --nodeps kdelibs3

3.3. rpm的查詢
查詢已安裝RPM的內容:

基本語法: 
 rpm -q package-name         
選項:
 -q  一個包是否被安裝
 -a 查詢所有安裝的RPM
 -f <file> 查詢擁有某文件的RPM
 -p <package-file> 查詢包文件
 -i  顯示包的信息
 -l  信息包文件的信息
 -s  顯示所有文件的狀態
 -d 顯示文檔文件
 -c  顯示配置文件

3.4. rpm的校驗
- RPM的校驗功能可以用來確認文件是否被修改或覆蓋

基本語法:
 #rpm -V package_name_to_verify 
參數:
 -V 檢查與某一RPM包相關所有文件的完整性

例子1:檢查sendmail的相關文件的完整性

#rpm -V sendmail 
S.5....T c /etc/aliases 
missing /etc/mail/ip_allow 
S.5....T c /etc/mail/relay_allow 
S.5....T c /etc/sendmail.cf 
S.5....T c /etc/sendmail.cw 
S.5....T /usr/sbin/sendmail 
S.5....T /var/log/sendmail.st 

解釋:只有校驗失敗的文件才被列出,沒有列出的文件應該是完好無損的。輸出的內容給出了爲什 麼校驗失敗的原因,具體解釋如下:
- S = 大小改變
- M = 權限改變
- L = 連接改變
- D = 設備改變
- U = 用戶改變
- G = 組改變
- T = 日期和時間改變
- missing = 文件丟失

例子2:挨個檢查軟件包很費時間,用“-a”選項可以一次性檢查所有RPM包

#rpm -Va > /root/rpm_chk.txt & 
  • 這條命令讓RPM檢查服務器上安裝的RPM包,結果輸出到rpm_chk.txt文件,最後的可選項“&”表示命令在後臺運行,給出shell提示符可以作其他事情

例子3:檢查某個文件而不知道它屬於哪個RPM包,可以用“-qf”選 項查看哪個軟件包安裝了此文件

# rpm -qf /usr/sbin/sendmail 
sendmail-8.8.7-20 

如果一個文件沒有關聯 的RPM包

# rpm -qf /sbin/.vile_stuff 
file /sbin/.vile_stuff is not owned by any package 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章