RPM簡介:node
RPM全稱爲RedHat Package Manager,是由紅帽公司借鑑SUSE發展起來的軟件管理機制。linux
RPM特色:shell
RPM是經過實現編譯而且打包成爲RPM文件後再進行安裝的。RPM存在一個特性:當要以RPM安裝軟件的,RPM會檢查在Linux數據庫上是否已經安裝了那些相互依賴的程序,若是數據庫顯示依賴的軟件有缺省,那麼便不能安裝。須要解決包的依賴關係,那麼rpm文件就能夠被安裝到linux系統上了。安裝完成後相關的信息會被寫入 /var/lib/rpm數據庫
rpm包的命名格式:vim
zsh-5.0.27.e17_1.2.x86_64.rpmcentos
name-version-arch.src.rpmbash
name:通常爲軟件的名稱,好比上例的zshssh
version:主版本.次版本.修訂號-發佈版本號 5.0.27-e17, el* :表示這個軟件包的發行商版本,el7表示這個軟件包是在RHEL 7.x/CentOS 7.x下使用。ide
arch:支持的平臺 x86表示平臺ui
src.rpm或rpm: .rpm是已經編譯好的二進制包,能夠用rpm命令直接安裝的。 src.rpm是源碼,須要進行編譯之後才能安裝
二、devel:表示這個包是開發包。
三、noarch:表示這樣的軟件包能夠在任何平臺上安裝,在任何硬件平臺上均可以運。
四、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