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包里存在哪些东西呢?当然可以啦!

技术分享

 5.有时候还想知道某个命令到底是由那个包提供的咋弄?技术分享

技术分享

 6.万一这个文件本身就没有安装上哪找去呀?技术分享

技术分享

 8.通过这上边一个一个安装,同志们是不是感觉非常麻烦,这个时候一个最最强大的工具就要现身了。技术分享

技术分享

 9.当初是你要分开分开就分开........技术分享

技术分享

 10.其实自己也可以手动创建一个属于自己的安装源哦。

1) 首先进入yum配置文件:cd /etc/yum.repos.d/

2) 创建一个以.repo为后缀的文件,里边内容简单如下:

技术分享

 3) yum clean all && yum repolist # 看看你自己建立的源有没有出现技术分享


以上是关于RPM和YUM的使用的主要内容,如果未能解决你的问题,请参考以下文章

yum 是使用 rpm 可执行文件来处理 rpm 包还是实现自己的 rpm 解析和处理

linux基础-第十六单元 yum管理RPM包

Linux系统下RPM命令和yum的使用

rpm与yum的使用方法,通过yum自建仓库;通过at和crontab命令定期执行脚本

RPM和YUM的使用

使用yum管理RPM软件包