1、關於光碟中rpm包的位置
Linux安裝光碟基本以rpm包進行系統安裝
- 位置
/mnt/cdrom/Packages
2、命令規則
httpd-2.2.15-15.el6.centos.i686.rpm
httpd: 軟體包名
2.2.15: 軟體版本
15: 軟體釋出次數
el6.centos: 適合的Linux平臺
i686: 適合的硬體平臺
rpm: rpm副檔名
3、RPM包的依賴性
- 樹形依賴: a->b->c
安裝順序,c->b->a
- 環形依賴:a->b->c->a
安裝方法,把a、b、c全部放到一個shell命令中安裝
- 模組依賴
就是一個rpm包依賴另一個rpm包裡面的某個檔案
不知道另一個rpm包叫什麼哦
想知道另一個rpm包叫什麼,查下面的網站
1、包全名和包名
- 包全名
操作的包是沒有安裝的軟體包時,使用包全名。而且要注意路徑
- 包名
操作已經安裝的軟體包時,使用包名,是搜尋/var/lib/rpm/中的資料庫
2、安裝
rpm -ivh 包全名
- 選項
-i: 安裝
-v: 顯示詳細資訊
-h: 顯示進度
- 操蛋
rpm安裝真尼瑪扯,打死也不用
雖然用yum代替rpm安裝挺好,但是沒有查詢和校驗命令,所以rpm還是有存在理由的
yum是rpm的線上安裝,解決了依賴問題
1、升級
rpm -Uvh 包全名
- 選項
-U: 升級
其實和安裝沒什麼區別
2、解除安裝
rpm -e 包名
- 選項
-e: 解除安裝
- 注意
這時候打包名,就不需要路徑了
解除安裝也需要依賴性
1、查詢包是否安裝
rpm -q 包名
2、查詢所有已經安裝的rpm包
rpm -qa
例如:
rpm -qa | grep httpd
3、查詢安裝包的詳細資訊
rpm -qi 包名
4、查詢未安裝包的詳細資訊
rpm -qip 包全名
5、查詢包中檔案的位置
rpm -ql 包名
6、RPM包預設安裝位置
路徑 | 檔案型別 |
---|---|
/etc/ | 配置檔案安裝目錄 |
/usr/bin/ | 可執行的命令安裝目錄 |
/usr/lib/ | 程式所用的函式庫儲存位置 |
/usr/share/doc | 基本的軟體使用手冊儲存位置 |
/usr/share/man | 幫助檔案儲存位置 |
7、查詢未安裝包將要安裝的位置
rpm -qlp 包全名
8、查詢系統某個檔案屬於哪個rpm包
rpm -qf 系統檔名
9、查詢安裝包的依賴
rpm -qR 包名
10、查詢未安裝包的依賴
rpm -qRp 包全名
1、校驗
rpm -V 包名
例如:
rpm -V httpd
- 關於返回格式
httpd的配置檔案被修改時的返回格式
S.5....T. c /etc/httpd/conf/httpd.conf
- S.5....T.的含義
S: 檔案大小是否被改變
M: 檔案型別或檔案的許可權是否被改變
5: 檔案MD5校驗是否有改變(可以看成檔案內容是否改變)
D: 裝置主從程式碼是否改變
L: 檔案路徑是否改變
U: 檔案的屬主(所有者)是否改變
G: 檔案的屬組是否被改變
T: 檔案的修改時間是否改變
- c的含義
c: 配置檔案
d: 普通檔案
g: 鬼檔案,很少見,就是該檔案不應該被包含在rpm包中
L: 授權檔案
r: 描述檔案
2、RPM包中檔案提取
rpm2cpio 包全名 | cpio -idv .檔案絕對路徑
- 解釋
rpm2cpio: 將rpm包轉換為cpio格式的命令
cpio: 是一個標準工具,它用於建立軟體檔案檔案和從檔案檔案中提取檔案
3、cpio
cpio 選項 < [檔案|裝置]
- 選項
-i: copy-in模式,還原
-d: 還原時自動建立目錄
-v: 顯示還原過程
4、一個場景,假設ls命令不小心刪掉了
- 第一、在其它系統中,查ls屬於哪個包
rpm -qf /bin/ls
- 第二、提取檔案(在家目錄中提取)
rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm | cpio -idv ./bin/ls
- 第三步、在家目錄下把檔案放入原位置
cp /root/bin/ls /bin/
本作品採用《CC 協議》,轉載必須註明作者和本文連結