RPM和YUM的使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RPM和YUM的使用相关的知识,希望对你有一定的参考价值。
1、rpm包的使用
rpm是由红帽公司开发的软件包管理方式,使用rpm我们可以方便的进行软件的安装、查询、卸载、升级等工作。但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。
rpm包命名格式:
name-major.minor.release-release.arch.rpm
rpm包自己的发行号与源代码的发行号无关, 仅用于标识对rpm自身的修订, 有时候release还包含使用的os类型。
例如:httpd-tools-2.4.6-17.e17.x86_64.rpm 这是一个软件包。
httpd-tools 软件包的名称
2.4.6 原厂发布的版本号
17.e17 红帽给的版本号
x86_64 安装平台(还有i386、i686等平台)。
rpm分包机制:
核心包:包含程序最常用的功能
httpd-2.2.15-39.el6.centos.x86_64.rpm
开发包:包含开发所需要的库模块
httpd-devel-2.2.15-39.el6.centos.x86_64.rpm
帮助文档:
httpd-manual-2.2.15-39.el6.centos.noarch.rpm
工具包:
httpd-tools-2.2.15-39.el6.centos.x86_64.rpm
获取包的途径:
1、系统发行光盘或发行版官方站点或官方镜像站点(以稳定为主, 因此软件版本相对较老)
2、程序项目官方站点(版本相对较高)
3、第三方组织
Fedora-EPEL: epel
http://rpmfind.net, http://rpm.pbone.net, http://pkgs.org
4、自己制作
注意:在安装包之前做合法性验证
1、来源合法性
2、包的完整性
例:#rpm -ivh httpd-tools-2.4.6-17.e17.x86_64.rpm
其中-i表示安装(install)包,-v表示查看详细的安装信息,-h表示显示安装进度。后面是包的名称。
如果在你要安装一个包时,系统提示你,再安装此包之前,你还得必须安装另一个包,只有将那个包安装完成,你才能继续安装你要安装的包,我们把这种现象称为包之间的依赖关系。但是如果安装一个包,但是要依赖好多包,rpm就不见得有多好了,这种情况下,我们通常使用yum命令。
2、yum工具的使用
yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
YUM仓库:
存放了众多rpm包,以及包的相关元数据的文件(repodata)服务器。
文件服务器:
http://, ftp://, nfs://, file:///
配置文件:
指向仓库的位置以及各种配置信息,每个yum客户端可以有多个可用的yum仓库。
主配置文件:
/etc/yum.conf
子配置文件:
/etc/yum.repos.d/*.repo
仓库定义:
[repo_id] # 仓库id应该确保唯一
name=仓库名称
baseurl=仓库路径 可以是http://, ftp://, nfs://, file:///
enabled={1|0} # 设置是否启用此仓库
gpgcheck={1|0} # 设置是否启用gpg检查
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 # 配置gpgcheck路径
cost=num # 定义仓库的开销,默认是1000,num越小优先级越高
内置变量:
$releasever # 当前操作系统的发行主版本号 5 6 7等
$arch # 平台 i486, i586, i686
$basearch # 基础平台i386,x86_64
镜像列表:
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
yum会使用fastestmirror插件找出最快的服务器,并以之作为本次访问的baseurl
YUM命令的使用:
列出所有可用仓库:repolist
列出所有程序包:
list {all | installed | available} # 可使用glob匹配
列出所有可用包组:grouplist
缓存管理:
clean{expire-cache|packages|headers|metadata|dbcache|rpmdb|plugins|all} #
清除缓存
makecache # 生成缓存
选项:优先级高于配置文件
--enablerepo=repoidglob # 启用此仓库
--disablerepo=repoidglob # 禁用此仓库
--nogpgcheck # 不做gpg检查
-y: # 自动回答为yes
安装:
install
reinstall # 重新安装包
升级:
checkupdate # 检查可用升级
update package_name如果有多个版本的升级包可用,可以指定具体版本来升级
降级安装:
downgrade package_name
卸载:
remove | erase package_name依赖于指定程序包的其他包也会被删除
查询:
search # 根据关键字模糊查询包名
provides filepath # 查询文件由哪个软件包提供
包组管理:
# 包组有些有空格,因此包组名需要加引号
yum install @"包组" # 安装一个包组
yum remove @"包组" # 移除一个包组
groupinfo # 查看包组信息
groupinstall # 安装一个包组
安装本地rpm文件:
localinstall *.rpm
命令历史:
yum history
YUM仓库的构建:
createrepo [options] [directory]
小试牛刀:
1.首先来用rpm装一个包试试看。
2.再安装另一个来验证一下哦。
3.那么遇到有依赖关系的包用哪个安装工具更好呢,当然毋容置疑是yum了,哈哈哈!!
4.还有就是能不能提前看一下一个未安装的rpm包里存在哪些东西呢?当然可以啦!
8.通过这上边一个一个安装,同志们是不是感觉非常麻烦,这个时候一个最最强大的工具就要现身了。
10.其实自己也可以手动创建一个属于自己的安装源哦。
1) 首先进入yum配置文件:cd /etc/yum.repos.d/
2) 创建一个以.repo为后缀的文件,里边内容简单如下:
3) yum clean all && yum repolist # 看看你自己建立的源有没有出现
以上是关于RPM和YUM的使用的主要内容,如果未能解决你的问题,请参考以下文章
yum 是使用 rpm 可执行文件来处理 rpm 包还是实现自己的 rpm 解析和处理