RHEL7软件包管理之rpm与yum

软件包的安装和卸载时很平常的事,但在Linux上面却不简单。Linux的其中一个哲学就是一个程序只做一件事,并且做好。组合小程序来完成复杂的任务,这样做有很多好处,但是各个小程序之间往往会存在着复杂的依赖关系。源码安装的软件更贴近本机的系统运行环境,但也更复杂。这时就有了包管理器,其中一个包管理器就是redhat系的rpm(redhat package manager).

  Rpm是以一种数据库记录的方式来将将所需要的套件安装在Linux主机的一套管理程序。也就是说Linux系统中存在一个关于rpm的数据库,它记录了安装的包与包之间的依赖相关性。rpm包是预先在Linux主机上编译好并打包的文件,安装起来非常快捷。

rpm常用的命令

  1.安装一个rpm

      rpm -ivh package_file

      -i:安装

      -v:可视化

      -h:显示安装进度

    另外的常用的附带参数为:

      --force 强制安装,即使覆盖其他包的文件也要安装

      --nodeps:当要安装的rpm包依赖其他包的时候,即使其他包没有安装,也要安装这个包

  2.升级一个rpm

    rpm -Uvh filename

      -U:即升级的意思

  3.卸载一个rpm

    rpm -e filename  filename通过rpm查询功能查询到的,卸载时的filename和安装时的是有区别的。

  4.查询一个包是否安装

    rpm -q rpm包名(这里的包名是不带有平台信息以及后缀名的)

      eg:rpm -q alacarte-0.10.0-1.fc6(如果加了平台信息及后缀名alacarte-0.10.0-1.fc6.noarch.rpm反而不能查出来)

    查询当前系统上所安装的所有rpm包   

      rpm -qa

  5.得到一个rpm包的相关信息

    rpm -qi 包名(同样不需要加平台信息和后缀名) 

  6.列出一个rpm包安装的文件

    rpm -ql 包名

  7.列出某一个文件属于哪个rpm

    rpm -qf 文件的绝对路径

    文件的绝对路径如何查找:which vim

    rpm -qf `which vim`

Yum 

Yum(全称为 Yellow dogUpdater, Modified)是一个在FedoraRedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。yum工具比rpm工具更好用,当然前提是你使用的linux系统支持yum.yum最大的优势是可以去互联网下载所需要的rpm包,然后自动安装,在这个工程中如果要安装的rpm包有依赖关系,yum会能帮你解决掉这些依赖关系依次安装所有的rpm包。

    1.列出所有可用的rpm

      yum list

      https://images2015.cnblogs.com/blog/931969/201706/931969-20170621145537866-120397191.png

     安装信息如果安装了就显示installed,未安装则显示base或者extras,如果是该rpm包已经安装但需要升级则显示updates.

    2.安装一个rpm“yum install [-y][rpm包名]”

      如果不加-y选项,则会以用户交互方式安装,首先列出需要安装的rpm包信息,然后会问用户是否需要安装,输入y安装,输入n不安装。直接加上-y选项,就省略掉了问用户是否安装的那一步。

    3.卸载一个rpm“yum remove [-y][rpm包名]”

      -y选项和安装时时一样的作用

4.检查可更新的rpm包:

yum check-update

5、更新所有的rpm包:

yum update

6、更新指定的rpm包:

yum update 包名

7、大规模的升级版本:

yum upgrade

8、列出资源库中所有可以安装或更新的rpm包的信息:

yum info

9、列出资源库中特定的可以安装或更新以及已经安装的rpm包的信息:

yum info 包名

10、列出资源库中所有可以更新的rpm包的信息:

yum info updates

11、列出已经安装的所有的rpm包的信息:

yum info installed

12、列出已经安装的但是不包含在资源库中的rpm包信息:

yum info 包名

13、列出资源库中所有可以更新的rpm包:

yum list updates

14、列出已经安装的所有rpm包:

yum list installed

15、列出已经安装的但不包含在资源库中的rpm包:

yum list extras

16、列出资源库中所有可以安装或更新的rpm包:

yum list

17、列出资源库中特定的可以安装或更新以及已经安装的rpm包:

yum list 包名

18、搜索匹配特定字符的rpm包的详细信息:

yum search 包名

19、搜索包含特定文件名的rpm包:

yum provides 包名

20、清除暂存的rpm包文件:

yum clean packages

21、清除暂存的rpm头文件:

yum clean headers

22、清除暂存中旧的rpm旧文件:

yum clean oldheaders

23、清除暂存中旧的rpm头文件和包文件:

yum cleanyum clean all

24yum 解决依赖的原理

YUM 解决依赖关系问题,自动下载软件包。yum是基于C/S架构。C指的是客户端, S指的是服务器,想ftphttp,file、关于yum为什么能解决依赖关系:所有的Yum 源里面都有repodata,它里面是有XML格式文件,里面有说明需要什么包。例如:mysql-server  rpm 需要:perl-DBI python,或者是php等等包。

25yum 组的管理

yum进行安装的时候可以一组一组的进行安装,先来看看有那些组yumgrouplist。可用的组有这么多。

Available Environment Groups:首先是可用的环境分组。

  Compute Node  计算节点

  Infrastructure Server 基础设施服务器

  File and Print Server  文件和打印服务

  Cinnamon Desktop   Cinnamon桌面

Installed Groups:已安装的组,开发工具

  Development Tools

Available Groups:可用的组。

如果我们想以组的方式来安装,加入我想安装安全工具:

输入:yumgroupinstall "Security Tools"

看到这里询问是否要安装,当然是N不安装了。如果想直接安装,不询问的话,这里也在后面加上选项 –y

    yum groupremove group1 删除程序组group1

以上就是对Linux的rpm与 yum一些个人总结。

参考的博文有:

  1. https://blog.csdn.net/sinat_41231785/article/details/80950606
  2. https://blog.csdn.net/shuaigexiaobo/article/details/79875730
  3. https://www.cnblogs.com/zhengmengfei/p/8400372.html

 

 

posted @ 2019-08-08 14:30  subeiLY  阅读(611)  评论(0编辑  收藏  举报