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

来源:互联网 发布:网络课程女子礼仪答案 编辑:程序博客网 时间:2024/05/18 01:17

本文参考 :
1. 《linux就该这么学》PDF文第一章部分
2. http://www.178linux.com/57835

红帽软件包管理器(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  //直接卸载
安装:

rpm {-i|–install} [install-options] PACKAGE_FILE…
-v: 显示安装过程信息

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

rpm -ivh file-package   //安装包
升级/更新:

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

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

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

rpm -U PACKAGE_FILE   //

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

rpm -F PACKAGE_FILE   //
查询:

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仓库。

安装:

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
升级/降级/卸载 程序包:

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

yum downgrade package1 [package2] […] 降级

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

检查可用升级:

yum check-update

搜索:

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

显示仓库列表:

yum repolist [all|enabled|disabled]

显示程序包:

yum list

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

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

清理本地缓存:

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

构建缓存:

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仓库了。

0 0