本文参考 :
1. 《linux就该这么学》PDF文第一章部分
2. http://www.178linux.com/57835
为了解决管理员在校验、安装、卸载、查询、升级等管理软件操作时难度大且繁琐的问题。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仓库则是为进一步简化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仓库的目录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仓库放置在我们提供服务的相应目录里即可。
例如配置一个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仓库了。