歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> rpm詳細解釋

rpm詳細解釋

日期:2017/2/28 14:45:17   编辑:Linux教程

rpm是由紅帽公司開發的軟件包管理方式,使用rpm我們可以方便的進行軟件的安裝、查詢、卸載、升級等工作。但是rpm軟件包之間的依賴性問題往往會很繁瑣,尤其是軟件由多個rpm包組成時。

Yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器。基於RPM包管理,能夠從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關系,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。

RPM 有五種基本的操作方式(不包括創建軟件包): 安裝, 卸載, 升級, 查詢,和驗證。

軟件包的組成部分:

二進制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin

庫文件:/lib, /usr/lib, /usr/local/lib

配置文件:/etc

幫助文件:手冊, README, INSTALL (/usr/share/doc/)

RPM: RPM is Package Manager

源程序:name-version.tar.{gz|bz2|xz}

版本號:major.minor.release

bash-4.3.1.tar.xz

包名-主版本號-次版本號-發行號

rpm包:name-version-release.arch.rpm(有源程序的rpm包和二進制的rpm包)

Rpm包的發行號(release):跟源程序不同,用於標識rpm包本身的發行號,同時包含所適用的操作系統

el6: rhel6

CentOS6:

el5

suse11

arch: 主機平台

cpu架構:i686、x86_64、amd64、ppc、noarch。。。

bash-4.3.2-5.el6.x86_64.rpm

包名-主版本號.次版本號.源程序發行號-rpm包的發行號.主機平台.cup架構

Rpm包有主包和分包之分

Bind 單個包

bind-devel 主包--分包

rpm包有驗正機制:來源的合法性、軟件包的完整性。必須導入了官方提供的公鑰,才可以驗證。

Linux系統自帶的公鑰一般放在/etc/pki/rpm-gpg/下,後綴為release的就是公鑰,沒有這個公鑰,那個後綴為系統名加版本號的就是公鑰了。

驗證rpm合法性和完整性的命令:

rpm

-K

--checksig 與-K用法相同

--nosignature 不檢測合法性

--nodigest 不檢測完整性

Rpm包的安裝:

rpm -i /PATH/TO/RPM_FILE

-i|--install

-v, -vv, -vvv越多越詳細

-h: 以#顯示安裝進度,一個#表示2%的進度;

-ivh 組合寫法

忽略依賴關系:

--nodeps

測試安裝:

--test

重新安裝:

--replacepkgs

warning: /etc/sysconfig/named created as /etc/sysconfig/named.rpmnew(安裝的時候不會覆蓋,創建了一個新的文件)

卸載:rpm -e 包名

--nodeps

warning: /etc/sysconfig/named saved as /etc/sysconfig/named.rpmsave(刪除時保留副本)

查詢:rpm -q|--query 包名

查詢所有已經安裝包:

rpm -qa

rpm -qa | grep 'pattern'

查詢包的摘要信息:

rpm -qi 包名

查詢包安裝生成的文件清單:

rpm -ql 包名

查詢包安裝生成的配置文件:

rpm -qc 包名

查詢包安裝生成的幫助文檔:

rpm -qd 包名

查詢包相關的腳本:

rpm -q --scripts 包名

查詢文件是哪個包安裝生成的

rpm -qf /path

preinstall: 安裝前腳本

postinstall: 安裝後腳本

preuninstall: 卸載前腳本

postuninstall: 卸載後腳本

查詢尚未安裝的包的相關信息:與查看安裝包信息相似。

rpm -qpi /path/to/rpm_file

-i

-l

-d

-c

--scripts

升級:

-U: 升級+安裝

-F:升級

-Uvh

-Fvh

--force 強制升級

--nodeps 忽略依賴關系

注意:內核不應該升級,應該盡可能安裝,它允許多版本並存;

校驗包的內容是否改變:rpm -V 包名

rpm -K 校驗包的完整性合法性

rpm包的數據庫:

/var/lib/rpm

數據庫重建:

--initdb: 新建

--rebuilddb: 重建

源碼格式的rpm包:

打包過程是根據spec文件來完成的,spec文件打包的時候所依賴的源程序包以及補丁都提供出來,只不過沒有提供二進制格式,我們要做的只是使用命令將源碼格式的rpm包制作成rpm包就可以實現安裝。

Copyright © Linux教程網 All Rights Reserved