linux的软件包管理工具---rpm与yum

一、rpm和yum简介

ReHat和CentOS厂商的linux上的软件均是以rpm软件包的方式来安装的。rpm是安装的是一种经过编译后的软件包,即是厂商经过在自己的一套硬件和软件平台编译安装后无问题打成的一个包,以这种方式安装软件可以认为是第一需要和其原始的硬件和软件平台一致、第二需要符合原先的安装平台的那套依赖关系、且由root来进行安装(即将包内的文件解压打各指定目录)。

因此,单独下载一个rpm包进行安装,是需要考虑以上三个问题的。尤其是第二个问题,依赖关系的解决。而yum的出现则解决了该问题,用yum进行安装的时候是首先去这个rpm包中寻找依赖关系的清单,然后将这些依赖包都下载下来且安装上,然后再安装指定要安装的包。注意,最终软件的安装还是以一个rpm包安装的。

rpm包内的相关数据文件在/var/lib/yum内,这里记录着一个rpm包的相关参数,用于以后的升级、移除、查询等;

rpm默认按照的路径在linux系统内的一些指定的路径下,例如/etc下放置一些配置文件,/usr/bin下放置一些可执行的命令,/usr/lib放置一些程序使用的动态函数库,/usr/share/doc下放置一些软件使用手册和说明文件,/usr/shar/man放置一些软件的帮助文档等。

二、rpm的相关命令

rpm最好的地方在于提供很多命令,可以直接的查看我当前的系统内是否有某个软件,其安装的位置,其的配置文件所在等等信息。

1、rpm的安装

rpm  -ivh    *.rpm     ##安装rpm软件包,以可见的过程和进度显示

rpm  -ivh   http://website.name/path/pkgname.rpm     ##以网上的某个文件来安装某软件包

rpm  -ivh  *rpm  --test    ##检测要安装的某软件包是否有依赖 

rpm  -ivh  *rpm  --prefix   PATH      ##要将软件安装到其他非正规目录时。比如,想要将某软件安装到 /usr/local 而非常规的/bin, /etc 等目录, 就可以使用--prefix /usr/local

一般来说,rpm 的安装选项参数大约就是这些。通常建议直接使用 -ivh 就好了, 如果安装的过程中发现问题,一个一个去将问题找出来,尽量不要使用『 暴力安装法 』。

2、rpm的更新与升级

rpm -Uvh  *rpm    ##后面接的文件若没有则直接安装,若有则升级

rpm  -Fvh  *rpm   ##后面接的文件若没有则不执行命令,若有才进行升级

3、rpm查询

rpm  -qa     ##列出所有的rpm软件包,一般和grep   *rpm结合使用来查询是否安装了某软件包

rpm  -ql   *rpm-3.1-5.i386.rpm     ##后面要跟具体的包名称,要带上版本信息,即列出包的文件都安装到了什么位置

rpm  -qi  *rpm-3.1-5.i386.rpm    ##后面要跟具体的包名称,要带上版本信息,即列出软件的详细信息,如开发商、版本与说明等;

rpm  -qc  *rpm-3.1-5.i386.rpm    ##后面要跟具体的包名称,要带上版本信息,即列出包的配置文件(即/etc下的文件)都有哪些

rpm  -qf  /etc/crontab     ##后面跟文件名,找出该文件属于哪一个已安装的软件

4、移除rpm软件包

rpm  -e  *rpm   ##移除某rpm软件包

PS:软件的移除必须是先移除最顶层的,然后再移除下面的,比如openssh依赖于openssl,此时应该先移除openssh,若先移除openssl则有可能会造成openssh不可用的故障。

三、yum的相关命令

1、yum源及yum仓库

是透过分析 RPM 的标头资料后, 根据各软件的相关性制作出属性相依时的解决方案,然后可以自动处理软件的相依属性问题,以解决软件安装、移除、升级的问题。yum源,可以理解为是一个yum-server提供的具有多种软件的仓库(这里的仓库是以软件分类为颗粒度的,即一个软件分类为一个仓库),yum进行安装时会去这个yum源里去寻找相应软件仓库中的rpm包。一个.repo的文件就是一个仓库,例如阿里云提供的CentOS-Base.repo,其内容如下

[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com   ##此仓库的名称
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/     ##仓库的地址
        http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

可知,yum在进行安装时,是去指定仓库中下载软件到本地,然后进行安装的。另外,yum 会先下载容器的清单到本机的 /var/cache/yum 里面去!那我们修改了网址或者下载了新的yum源,却没有修改容器名称 (中括号内的文字), 可能就会造成本机的列表与 yum 朋务器的列表丌同步,此时就会出现无法更新,需要yum  clean all来进行删除所有容器缓存数据。

2、yum相关命令

yum [list|info|search|provides|whatprovides] 参数    ###查询功能

yum [install|update] 软件    ##安装升级软件

yum [remove] 软件    ##移除某软件

yum clean [packages|headers|all]   ##清除yum仓库的所有缓存数据

yum  makecache   ##生成缓存






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值