在刚开始使用Linux系统的时候,总喜欢把Linux系统和Windows系统去做对比,然后就感觉Linux系统各种不好用,例如:
以上这些疑问都可以在rpm命令中找到答案。
rpm,即:Radhet Package Manager,红帽软件包管理器。最早是为红帽操作系统开发的软件包管理程序,利用这个工具简化了之前的源码包安装过程,实现了软件包管理的标准化,让redhat系统的软件包管理更加容易,降低了系统管理门槛。现在这个工具已经扩展到所有Radhet系列的Linux系统中使用。
这里简单回顾一下源码包安装的过程。
由于Linux系统的开源基因,以及Linux系统分支的多样性,早前的Linux系统软件发布都是直接发布源码,即:把源代码直接打包,发布到网上或者发给有需要的人。
安装软件的时候,需要根据自己使用的系统,设置个性化的参数,先进行编译,编译完成后再安装。
源码包的方式,优点是:
相对的,以上这些优点就是rpm包管理的缺点了。但是瑕不掩瑜,rpm的功能还是很强大的。
#列出系统中已安装的所有软件
rpm -qa |less #由于一般系统中的软件会有很多,所以接less命令,方便查阅逐行查阅。
……
kernel-tools-3.10.0-957.el7.x86_64
keyutils-libs-1.5.8-3.el7.x86_64
btrfs-progs-4.9.1-1.el7.x86_64
p11-kit-trust-0.23.5-3.el7.x86_64
rootfiles-8.1-11.el7.noarch
iwl5000-firmware-8.83.5.1_1-69.el7.noarch
libblkid-2.23.2-59.el7.x86_64
:
参数解析:
-q #查询模式;
-a #查询所有软件;
[root@lnmp1 ~]# rpm -qi yum #查询yum软件的基本信息。
Name : yum
Version : 3.4.3 #软件版本
Release : 161.el7.centos #软件发行版本
Architecture: noarch
Install Date: 2019年11月13日 星期三 18时17分11秒 #安装日期
Group : System Environment/Base
Size : 5824869
License : GPLv2+
Signature : RSA/SHA256, 2018年11月12日 星期一 23时27分16秒, Key ID 24c6a8a7f4a80eb5
Source RPM : yum-3.4.3-161.el7.centos.src.rpm #所属软件包
Build Date : 2018年11月05日 星期一 09时54分01秒 #软件打包日期
Build Host : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : http://yum.baseurl.org/
Summary : RPM package installer/updater/manager #软件简介
Description : #以下是关于软件的说明。
Yum is a utility that can check for and automatically download and
install updated RPM packages. Dependencies are obtained and downloaded
automatically, prompting the user for permission as necessary.
参数解析:
-i #显示软件相关信息;
[root@lnmp1 ~]# rpm -ql yum
/etc/logrotate.d/yum
/etc/yum
/etc/yum.conf
/etc/yum.repos.d
/etc/yum/fssnap.d
/etc/yum/pluginconf.d
/etc/yum/protected.d
/etc/yum/vars
/etc/yum/version-groups.conf
/usr/bin/yum
/usr/lib/python2.7/site-packages/rpmUtils
/usr/lib/python2.7/site-packages/rpmUtils/__init__.py
/usr/lib/python2.7/site-packages/rpmUtils/__init__.pyc
/usr/lib/python2.7/site-packages/rpmUtils/arch.py
/usr/lib/python2.7/site-packages/rpmUtils/arch.pyc
/usr/lib/python2.7/site-packages/rpmUtils/miscutils.py
/usr/lib/python2.7/site-packages/rpmUtils/miscutils.pyc
/usr/lib/python2.7/site-packages/rpmUtils/oldUtils.py
/usr/lib/python2.7/site-packages/rpmUtils/oldUtils.pyc
/usr/lib/python2.7/site-packages/rpmUtils/transaction.py
/usr/lib/python2.7/site-packages/rpmUtils/transaction.pyc
/usr/lib/python2.7/site-packages/rpmUtils/updates.py
/usr/lib/python2.7/site-packages/rpmUtils/updates.pyc
……
参数解析:
-l #显示和软件相关的文件列表;
以上只是yum软件安装时生成的部分文件列表,可以看出不止列出了文件,还给出了文件所在路径,还是很贴心的。
[root@lnmp1 ~]# rpm -qf /etc/passwd
setup-2.8.71-10.el7.noarch
参数解析:
-f #显示指定文件所属的软件;
[root@lnmp1 ~]# rpm -qpi apr-1.4.8-5.el7.x86_64.rpm
Name : apr
Version : 1.4.8
Release : 5.el7
Architecture: x86_64
Install Date: (not installed) #没有安装,所以没有安装日期
Group : System Environment/Libraries
Size : 226790
License : ASL 2.0 and BSD with advertising and ISC and BSD
Signature : RSA/SHA256, 2019年08月23日 星期五 05时20分27秒, Key ID 24c6a8a7f4a80eb5
Source RPM : apr-1.4.8-5.el7.src.rpm
Build Date : 2019年08月08日 星期四 20时04分16秒
Build Host : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem
Vendor : CentOS
URL : http://apr.apache.org/
Summary : Apache Portable Runtime library
Description :
The mission of the Apache Portable Runtime (APR) is to provide a
free library of C data structures and routines, forming a system
portability layer to as many operating systems as possible,
including Unices, MS Win32, BeOS and OS/2.
参数解析:
-p #显示指定软件包的信息;
和查询已安装的软件的信息差不多,没有已安装日期。
和查询已安装的软件产生的文件类似。
[root@lnmp1 ~]# rpm -qpl apr-1.4.8-5.el7.x86_64.rpm
/usr/lib64/libapr-1.so.0
/usr/lib64/libapr-1.so.0.4.8
/usr/share/doc/apr-1.4.8
/usr/share/doc/apr-1.4.8/CHANGES
/usr/share/doc/apr-1.4.8/LICENSE
/usr/share/doc/apr-1.4.8/NOTICE
[root@lnmp1 Packages]# rpm -ivh tcpdump-4.9.2-4.el7_7.1.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:tcpdump-14:4.9.2-4.el7_7.1 ################################# [100%]
参数解析:
-i #安装软件包;
-v #显示命令执行过程;
-h #和-v参数一起使用,显示进度条;
[root@lnmp1 Packages]# rpm -e tcpdump
[root@lnmp1 Packages]#
参数解析:
-e #卸载指定软件。
卸载的时候不需要指定版本。
[root@lnmp1 Packages]# rpm -V httpd
S.5....T. c /etc/httpd/conf/httpd.conf
.....UG.. /var/www/html
这里的参数:-V(大写) 是验证完整性。即验证当前的文件状态和安装时是否一致。
如果一致,则没有任何输出;
如果不一致,则输出指定标志,如上。
具体这些标志的含义,可以再开一篇单独讲讲了。这里不再展开。
通过以上的九个场景,可以看到rpm是真的不简单,可以在你遨游Linux世界时,助你一臂之力!