RPM管理工具

RPM簡介:

RPM全稱爲RedHat Package Manager,是由紅帽公司借鑑SUSE發展起來的軟件管理機制。


RPM特點:

RPM是通過實現編譯並且打包成爲RPM文件後再進行安裝的。RPM存在一個特性:當要以RPM安裝軟件的,RPM會檢查在Linux數據庫上是否已經安裝了那些相互依賴的程序,如果數據庫顯示依賴的軟件有缺省,那麼便不能安裝。需要解決包的依賴關係,那麼rpm文件就可以被安裝到linux系統上了。安裝完成後相關的信息會被寫入 /var/lib/rpm


rpm包的命名格式:

zsh-5.0.27.e17_1.2.x86_64.rpm

name-version-arch.src.rpm

name:一般爲軟件的名稱,比如上例的zsh

version:主版本.次版本.修訂號-發佈版本號 5.0.27-e17, el*  :表示這個軟件包的發行商版本,el7表示這個軟件包是在RHEL 7.x/CentOS 7.x下使用。

arch:支持的平臺 x86表示平臺

src.rpm或rpm: .rpm是已經編譯好的二進制包,可以用rpm命令直接安裝的。  src.rpm是源碼,需要進行編譯以後才能安裝


2、devel:表示這個包是開發包。

  3、noarch:表示這樣的軟件包可以在任何平臺上安裝,在任何硬件平臺上都可以運。

4、manual 手冊文檔。



rpm安裝:

rpm {-i|--install} [install-options] PACKAGE_FILE ...

-i: 表明rpm安裝

-v   查看安裝過程的進度

-vv 更加詳細的查看安裝過程的進去

-h  顯示出安裝過程的進度條

[root@bogon mnt]# rpm -ivh zsh-5.0.2-14.el7.x86_64.rpm 
warning: zsh-5.0.2-14.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...                          ################################# [100%]
	package zsh-5.0.2-14.el7.x86_64 is already installed


rpm安裝時的其他選項:

--nodeps:表示忽略依賴關係,當發生軟 件相互依賴而無法安裝的時候卻要執 意安裝的選項,最好不要使用,可能 導致安裝後的軟件不能正常使用


--test:表示並不是真的安裝,而是檢測否 能正確安裝是否存在軟件依賴的問題。

--replacepkgs:表表示重新安裝這個程序

--prefix 路徑

表示要將軟件安裝到某個路徑下

--nosignature:不檢查包的來源合法性和簽名

--nodeigest :不檢查包的完整性

[root@bogon mnt]# rpm -ivh --nodeps --test  --nosignature --nodigest zsh-5.0.2-14.el7.x86_64.rpm 
Preparing...                          ################################# [100%]

rpm升級和更新

rpm -Uvh PACKAGE_FILE

如果PACKAGE FILE沒有被安裝會直接安裝;如果存在PACKAGE_FILE的舊文件就會升級


rpm  -Fvh PACKAGE_FILE ...

如果PACKAGE FILE沒有被安裝不會直接安裝;如果存在PACKAGE_FILE的舊文件就會升級。


rpm升級的更新也可以使用 --nodeps --nosignature


注意:(1)不能對內核進行升級,需要直接安裝新 版本的內核

  (2)如果原程序包的配置文件被修改,升級的時候不會覆蓋配置文件,而是把新版本的文件進行重命名。


rpm卸載:

rpm -e 

rpm -e --test

rpm -e --nodeps

[root@bogon mnt]# rpm -evh --nodeps --test zsh 
Preparing...                          ################################# [100%]

rpm查詢

rpm-qa 查看搜有已經安裝過的包

[root@bogon mnt]# rpm -qa zsh
zsh-5.0.2-14.el7.x86_64

rpm-qf:查詢指定的文件由哪個程序包安裝的

[root@bogon mnt]# rpm -qf  /etc/passwd
setup-2.8.71-6.el7.noarch

rpm-qp backage:查看未安裝的RPM包信息

[root@bogon mnt]# rpm -qp bc-1.06.95-13.el7.x86_64.rpm 
warning: bc-1.06.95-13.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
bc-1.06.95-13.el7.x86_64

rpm -q --whatprovides <功能 >:查詢所有需要<功能>才能正常運行的包

[root@bogon mnt]# rpm -q --whatprovides /etc/passwd
setup-2.8.71-6.el7.noarch

rpm -q --whatequires  <功能> 查詢所有<功能>的軟件包

[root@bogon mnt]# rpm -q --whatrequires /sbin/nologin 
openssh-6.6.1p1-22.el7.x86_64
gdm-3.14.2-12.el7.x86_64

rpm-ql:查看程序安裝後產生的文件

[root@bogon mnt]# rpm -ql bc
/usr/bin/bc
/usr/bin/dc
/usr/share/doc/bc-1.06.95
/usr/share/doc/bc-1.06.95/AUTHORS
/usr/share/doc/bc-1.06.95/COPYING
......

rpm-qi:查詢程序包的相關信息

[root@bogon mnt]# rpm -qi zsh
Name        : zsh
Version     : 5.0.2
Release     : 14.el7
Architecture: x86_64
Install Date: Sun 20 Mar 2016 10:15:27 PM CST
Group       : System Environment/Shells
Size        : 5834871
License     : MIT
Signature   : RSA/SHA256, Thu 26 Nov 2015 12:07:38 AM CST, Key ID 24c6a8a7f4a80eb5
Source RPM  : zsh-5.0.2-14.el7.src.rpm
Build Date  : Fri 20 Nov 2015 09:11:36 PM CST
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://zsh.sourceforge.net/
Summary     : Powerful interactive shell
Description :
The zsh shell is a command interpreter usable as an interactive login
shell and as a shell script command processor.  Zsh resembles the ksh
shell (the Korn shell), but includes many enhancements.  Zsh supports
command line editing, built-in spelling correction, programmable
command completion, shell functions (with autoloading), a history
mechanism, and more.

rpm-qc:查看程序的配置文件

[root@bogon mnt]# rpm -qc zsh
/etc/skel/.zshrc
/etc/zlogin
/etc/zlogout
/etc/zprofile
/etc/zshenv
/etc/zshrc

rpm-qd:查看程序的說明文檔

[root@bogon mnt]# rpm -qd zsh
/usr/share/doc/zsh-5.0.2/BUGS
/usr/share/doc/zsh-5.0.2/CONTRIBUTORS
/usr/share/doc/zsh-5.0.2/FAQ
/usr/share/doc/zsh-5.0.2/FEATURES
/usr/share/doc/zsh-5.0.2/LICENCE
/usr/share/doc/zsh-5.0.2/MACHINES
/usr/share/doc/zsh-5.0.2/NEWS
/usr/share/doc/zsh-5.0.2/README
/usr/share/doc/zsh-5.0.2/completion-style-guide
/usr/share/doc/zsh-5.0.2/zsh-development-guide

rpm --provides :程序包提供哪些功能

[root@bogon mnt]# rpm -q --provides zsh 
config(zsh) = 5.0.2-14.el7
zsh = 5.0.2-14.el7
zsh(x86-64) = 5.0.2-14.el7

rpm -requires 查看程序依賴關係

[root@bogon mnt]# rpm -q  --requires  zsh
/bin/sh
/bin/sh
/bin/sh
/bin/sh
/bin/zsh
/sbin/install-info

rpm校驗

rpm -V :校驗文件

[root@bogon]/mnt# vim /etc/zshrc 
[root@bogon]/mnt# rpm -V zsh                         
S.5....T.  c /etc/zshrc


rpm {--initdb|--rebuilddb} [--dbpath DIRECTORY] [--root DIRECTORY]

--initdb:初始化數據庫,當前無任何數據庫可實始化創建一個新的;當前有時不執行任何操作;

     [root@bogon]/tmp# rpm --initdb --dbpath=/tmp/db
[root@bogon]/tmp# cd /tmp/db         
[root@bogon]/tmp/db# ls
Basenames     __db.002  Group       Obsoletename  Requirename  Triggername
Conflictname  __db.003  Installtid  Packages      Sha1header
__db.001      Dirnames  Name        Providename   Sigmd5


--rebuilddb:重新構建,通過讀取當前系統上所有已經安裝過的程序包進行重新創建;

包合法性和完整性驗證:

            先獲取包作者的公鑰到本地然後用rpm --import 公鑰路徑

                對於CentOS7:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章