您的位置:首页 > 运维架构 > Linux

LINUX : 红帽软件包管理器,YUM仓库

2016-11-21 11:31 239 查看

红帽软件包管理器(RPM)

为了解决管理员在校验、安装、卸载、查询、升级等管理软件操作时难度大且繁琐的问题。RPM原称为“Redhat Package Manager”,因其卓越的优势很快被公众认可,目前使用范围也已不局限在红帽系统中了,由于其性能突出,在开源界得到了各大Linux发行厂商的认同,被推崇为公认的行业标准RPM会建立统一的数据库文件,详细的记录软件信息并能够自动分析依赖关系,颇有一些“软件控制面板”的感觉。

常用操作

安装软件:rpm -ivh filename.rpm

升级软件:rpm -Uvh filename.rpm

卸载软件:rpm -e –nodeps filename.rpm

查询软件的信息:rpm -qa | grep filename

rpm -qa | grep java   //查询java 相关包的信息




rpm -e  --nodeps  javapackages-tools-3.4.1-5.el7.noarch  //直接卸载


[b]安装:[/b]

rpm {-i|–install} [install-options] PACKAGE_FILE…

-v: 显示安装过程信息

-h: 以# 显示程序包管理执行进度

rpm -ivh file-package   //安装包


[b]升级/更新:[/b]

rpm {-U|–upgrade} [install-options] PACKAGE_FILE …

rpm {-F|–freshen} [install-options] PACKAGE_FILE …

upgrade :安装有旧版程序包,则“升级”;如果不存在旧版程序包,则“安装”

rpm -U PACKAGE_FILE   //


freshen :安装有旧版程序包,则“升级”;如果不存在旧版程序包,则不执行升级操作

rpm -F PACKAGE_FILE   //


[b]查询:[/b]

rpm {-q|–query} [select-options] [query-options] [select-options]

-a: 所有已经安装的软件包

-p:对尚未安装的程序包文件进行查询,需要加上-p选项

rpm -qa | grep java   //查询安装了java 相关名称的包


更细节的使用可以用 man rpm 来进行查询。

RPM 能帮助我们查询软件间的依赖关系,但大多数的问题还得我们自己解决。

yum软件仓库

Yum仓库则是为进一步简化RPM管理软件难度而设计的,Yum能够根据用户的要求分析出所需软件包及其相关依赖关系,自动从服务器下载软件包并安装到系统,用来替代RPM 非常好用。类似于 java 中的MAVEN仓库。

[b]安装:[/b]

yum install package1 [package2] […] 注意:这里用的是软件包名,不是软件包的文件名

yum reinstall package1 [package2] […] 重新安装

–nogpgcheck :禁止进行gpg check 校验(设置gpgcheck=1 在这是yes会让yum检查每个下载的RPM的GnuPG签名。这么做是因为你需要适当的GnuPG key注册到RPM数据库。可以防止被欺骗,如:非法入侵发行版网站,木马导入软件包,使不知情用户下载)

-y: 自动回答为“yes”

-q :静默模式

–noplugins :禁用所有插件

example:  yum install httpd -y


[b]升级/降级/卸载 程序包:[/b]

yum update [package1] [package2] […] 升级/更新

yum downgrade package1 [package2] […] 降级

yum remove | erase package1 [package2] […] 卸载

[b]检查可用升级:[/b]

yum check-update

[b]搜索:[/b]

yum search string1 [string2] […] 以指定的关键字搜索程序包名及summary 信息

[b]显示仓库列表:[/b]

yum repolist [all|enabled|disabled]

[b]显示程序包:[/b]

yum list

yum list [all | glob_exp1] [glob_exp2] […]

yum list {available|installed|updates} [glob_exp1][…]

[b]清理本地缓存:[/b]

yum clean [ packages | metadata | expire-cache |rpmdb | plugins | all ]

[b]构建缓存:[/b]

yum makecache

YUM仓库配置:

yum仓库主要分为两部分,一部分是rpm软件包,一部分是yum配置文件repodata。可以将两者放在一个目录,当然为了便于管理,我们还是建议两者分开。

第一步,创建目录结构。那么首先我们创建一个yum仓库的目录centos,如果你同时为多个版本(如centos6和7)提供yum源,那么可以在centos目录下分别创建目录(目录6和7),然后分别创建yum仓库;如果只是为单一版本提供yum源,可以直接在centos目录创建yum仓库,我们这里以centos7为例。进入到要创建yum仓库的目录,创建一个软件包的存放目录Packages(名称可以自己定义)。

第二步,获取rpm软件包。rpm软件包,可以从光盘、官方网站、第三方获取,或自己制作rpm软件包,把我们获取到的rpm软件包移到Packages目录下。

第三步,创建配置文件。当以上步骤准备就绪以后,我们就可以使用createrepo命令来创建yum仓库的配置文件repodata了。命令格式如下:

createrepo [/PATH/TO/REPODATA] [/PATH/TO/RPM_PACKAGES/]

createrepo centos/7 centos/7/Packages

redhat上创建yum仓库时也类似,例如新加一个光盘中的YUM库:

1. 将光盘上的内容挂载在 任意目录下,例如 /media/cdrom

2. 然后 在*.repo 文件中指定本地YUM库的路径为 file:///media/cdrom,再配置上其他参数

至此,我们的yum仓库服务端已经配置好了,当然,如果你想通过网络为更多的人提供yum源服务,那就需要配置ftp或http web服务了,只需要将我们配置好的yum仓库放置在我们提供服务的相应目录里即可。

YUM客户端的配置

yum客户端的配置文件在/etc/yum.repos.d/目录中,有的系统会提供官方的yum源,有的系统则没有,需要自己设置。

例如配置一个redhat的本地源:

[rhel7]       #这个是yum仓库的ID,名称可以自己定义,但在系统中需要是唯一的,不能重复
name=rhel7    #这个是yum仓库的描述信息,可以没有
baseurl=file:///media/cdrom   #这个是yum源repodata父目录的位置,有本地file://或网络ftp://或http://三种形式
enabled=1    #这个说明对于安装的软件是否要进行校验,1为校验,0为不校验
gpgcheck=0   #该项指明该仓库是否可用,1为可用,0为不可用


当配置好本地客户端以后,使用yum clean all命令清理一下yum缓存,这样我们就可以使用yum仓库了。

参考文章

http://www.178linux.com/57835
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux yum 软件包