rpm 讲解
CentOS7主要有rpm和yum这两种包软件的管理。两种包的管理各有用处,其中主要区别是:YUM使用简单但需要联网,YUM会去网上的YUM包源去获取所需要的软件包。而RPM的需要的操作经度比较细,需要我们做的事情比较多。
软件包的安装和卸是很平常的事,但在Linux上面却不简单。Linux的其中一个哲学就是一个程序只做一件事,并且做好。组合小程序来完成复杂的任务,这样做有很多好处,但是各个小程序之间往往会存在着复杂的依赖关系。这时就有了redhat包管理器rpm。英文是redhat package manager ,redhat 软件包的管理
rpm是以一种数据库记录的方式来将所需要的套件安装在Linux主机的一套管理程序。也就是说Linux系统中存在一个关于rpm的数据库,它记录了安装的包与包之间的依赖相关性。rpm包是预先在Linux主机上编译好并打包的文件,安装起来非常快捷。下面就介绍rpm常用的命令
首先是:
rpm –help
可以看到这里有很多的命令,是rpm需要命令,下面列出了常用命令。
RPM常用命令:
-i 安装软件包 --nodeps 不验证软件包的依赖 -v 可视化,提供更多的详细信息的输出 -h 显示安装进度 另外的常用的附带参数为: --force 强制安装,即使覆盖其他包的文件也要安装 -a 查询所有已经安装的软件包 -f 查询 文件所属于的软件包 -q 查询软件包(通常用来看下还未安装的软件包) -l 显示软件包的文件列表 -d 显示被标注为文档的文件列表 -c 显示被标注为配置文件的文件列表 最后这两个用的很少了
rpm 包名字结构:
glibc-2.17-196.el7_4.2.x86_64
glibc -2 .17 -el7 x86 64
软件名 主版本号 次版本号 修订号 RHEL7 CPU架构平台 支持系统位数
-el我是哪个平台的,rpm包有个特点,我是centOS7的rpm包一般只能装到CentOS7的系统里,一般是CentOS6的软件包只能装到CentOS6的系统里。
大家可能也看到过后面以i686结尾的rpm包,这类是32位的rpm软件包。
分清楚之后我们就进行安装。
-i ,--install 安装软件包
--nodeps 不验证软件包的依赖,什么叫软包的依赖,大家都习惯windows的双击下一步,下一步,Linux不是这样子的。
-v, --verbose 提供更多的详细信息输出
-h ,--hash 软件包安装的时候列出哈希标记
大家就记住ivh这几个都需要。
比如说我想安装一个vagrant的安装包。
rmp –ivh vagrant_1.9.8_x86_64.rpm
加入-h 安装的进度条就有了。
如果想要升级这个rpm软件包,输入:
rpm -Uvh 加这个软件包的名字-U:即升级的意思,这里就不演示了。,一般升级用的比较少,只用在有漏洞的时候可能会用到,
接着我们刚刚安装了vagrant,如何能查询到安装的信息,输入:
rpm –qa
其中 –a选项是查询所有已经安装的软件包。
q是查询一个包是否安装
从这里可以看大将所有安装的rpm都列了出来,那么安装了这么多软件包。
我仅想搜索刚刚安装的vagrant,输入正则搜索是不是可以啊:
rpm -qa |grep vagrant
使用管道和搜索,现在显示了这个包的信息,rpm还提供了一种简单的方法:
rpm –q vagrant
这样就能搜索到我们刚刚安装的rpm包了,下面在做一个演示。
rpm –q vagrant_1.9.8_x86_64.rpm
如果你这样搜索,加入了后缀,是搜索不出来的:如果加了平台信息及后缀名,反而不能查出来,这点大家要注意。
rpm 包的卸载,
rpm –e 包的名字 ,e是擦除的意思,卸载的时候,我们要写查询出来的这个名字:
rpm –e vagrant-1.9.8-1.x86_64
而不能写安装时候的名字,这两个名字是不一样的。
在查询一下,已经没有了。
下面我再将这个包进行安装,安装的命令相信大家都会了,输入:
rpm –ivh vagrant_1.9.8_x86_64.rpm
安装好了之后,输入
rpm –qi vagrant
其中,q 是查询,i是安装,一起用就是查询安装的软件包vagrant的信息。
这里同样不需要输入后缀,我们可以看到vagrant这个rpm软件包的详细信息。有name是..,等等。
输入:rpm -ql 包名
列出一个rpm包安装的文件
-l 显示软件包的文件列表
列出某一个文件属于哪个rpm包
rpm -qf 文件的绝对路径
文件的绝对路径如何查找:whichvim
rpm -qf`which vim`
-f 查询文件所属于的软件包。
RPM下载网址: