rpm和yum之间的关系

第一回合 —— 定义

rmp

RPM(redhat package manager)是由红帽公司开发的软件包管理方式,使用rpm我们可以方便的进行软件的安装、查询、卸载、升级等工作。但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。

yum

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

第二回合——常用方法

rpm

rpm –i software.rpm(安装);
rpm -e software.rpm(卸载);
rpm –U software.rpm(升级形式安装);
rpm –ivh software.rpm
-v 显示详细信息;-h显示进度条
rpm –qa 列出全部已经安装的.rpm软件
rpm –qa |grep openssh 列出有关openssh的rpm软件
rpm -ivh *.rpm –nodeps 忽略依赖安装rpm包(常用于安装)

rmp包格式 说明

出处
RPM包的一般格式为:
name-version-arch.rpm
name-version-arch.src.rpm

例:
httpd-2.2.3-29.el5.i386.rpm
httpd-devel-2.2.3-29.el5.i386.rpm
httpd-manual-2.2.3-29.el5.i386.rpm
system-config-httpd-1.3.3.3-1.el5.noarch.rpm

(1)name,如:httpd,是软件的名称

(2)version,如:2.2.3 ,是软件的版本号。版本号的格式通常为“主版本号.次版本号.修正号”
29,是发布版本号,表示这个RPM包是第几次编译生成的

(3)arch,如:i386,表示包的适用的硬件平台,目前RPM支持的平台有:i386、i586、i686、sparc、alpha

(4).rpm或.src.rpm,是RPM包类型的后缀,.rpm是编译好的二进制包,可用rpm命令直接安装;.src.rpm表示是源代码包,需要安装源码包生成源码,并对源码编译生成.rpm格式的RPM包,就可以对这个RPM包进行安装了

特殊名称:
1、el* 表示这个软件包的发行商版本,el5表示这个软件包是在RHEL 5.x/CentOS 5.x下使用。
2、devel:表示这个RPM包是软件的开发包
3、noarch:说明这样的软件包可以在任何平台上安装,不需要特定的硬件平台。在任何硬件平台上都可以运行。
4、manual 手册文档
了解了RPM包的命名规则,看到一个RPM包就能知道它适用的环境了

yum

yum仓库

yum仓库用来存放所有的现有的.rpm包,当使用yum安装一个rpm包时,需要依赖关系,会自动在仓库中查找依赖软件并安装。仓库可以是本地的,也可以是HTTP、FTP、nfs形式使用的集中地、统一的网络仓库。
仓库的配置文件/etc/yum.repos.d目录下 (之后我会写一篇如何搭建yum仓库,参考中科大某学长的博客)

简单使用

yum install 安装
yum restall 重新安装
yum remove卸载
yum update openssh 升级openssh
yum search ssh 搜素ssh
yum repolist all 列出所有仓库
yum list all 列出仓库中所有的包
yum info openssh 查看软件包信息
yum clean all 清楚所有仓库缓存
yum check-update 检查可更新的软件包
yum grouplist 查看系统中套件 比如“web server”、“桌面环境”
yum groupinstall 安装套件
yum groupremove 移除套件
yum groupinfo 查询条件信息

缓存利用

1.使用 yum 缓存

默​认​情​况​下​,当​前​版​本​的​ yum 在​成​功​下​载​和​安​装​软​件​包​后​,会​把​下​载​的​文​件​删​掉​。​这​样​可​以​减​少​ yum 占​用​的​磁​盘​空​间​。​你​可​以​打​开​缓​存​,这​样​ yum 将​在​缓​存​目​录​保​留​下​载​到​的​文​件​。​
缓​存​带​来​很​多​好​处​:
yum 的​性​能​可​以​提​高​
你​可​以​离​线​运​行​ yum 操​作​,只​使​用​缓​存​
你​可​以​复​制​缓​存​中​的​软​件​包​以​备​用​
默​认​情​况​下​,yum 在​ /var/cache/yum/ 目​录​保​存​临​时​文​件​,每​个​仓​库​都​有​自​己​的​子​目​录​。​仓​库​目​录​中​ packages/ 子​目​录​包​含​了​缓​存​的​软​件​包​。​例​如​,目​录​ /var/cache/yum/development/packages/ 包​含​从​ development 仓​库​下​载​的​软​件​包​。​

2. 启用 yum 缓存

要​配​置​ yum 保​留​已​下​载​的​文​件​而​不​是​删​除​,设​置​ /etc/yum.conf 中​的​ keepcache 选​项​为​ 1:
keepcache=1

打​开​缓​存​后​,每​个​ yum 操​作​都​可​能​从​仓​库​下​载​软​件​包​数​据​。​要​保​证​缓​存​包​含​了​软​件​包​数​据​,在​启​用​缓​存​后​运​行​一​个​操​作​,例​如​ list 或​ search 来​下​载​软​件​包​数​据​而​不​影​响​系​统​。​

3.在​只​使​用​缓​存​的​模​式​下​使​用​ yum

要​在​没​有​网​络​的​情​况​下​执​行​ yum,只​要​启​用​了​缓​存​,就​可​以​用​ -C 选​项​。​这​样​ yum 就​不​会​检​查​网​络​上​的​仓​库​,只​使​用​缓​存​。​在​这​个​模​式​中​,yum 只​能​安​装​已​下​载​并​缓​存​的​软​件​包​。​
要​在​没​有​网​络​连​接​的​时​候​搜​索​软​件​包​ tsclient,输​入​命​令​:
su -c ‘yum -C list tsclient’

4. 缓存带来的好处

如果你有多台机子 只须要一台机子从网上下载 软件包跟软件更新包 , 还有如果你想重装系统不想再下载的几个G的更新跟软件(前提缓存了你系统所有安装的软件的更新包).
在开启 缓存的状态下因为 yum 下载的软件包不会被删除,所以可以多次利用.(就是占硬盘空间而以, 呵呵几个G我不放在眼里,我硬盘有 1.2TB)
很简单的方法,把这台机子的 /var/cache/yum/ 目录下的所有文件包过目录. 复制到另一台机子下的相同目录. 执行.

yum -C update
yum -C install <软件包名>

缓存利用2

开发保留缓存以后执行
yum install –downloadonly openssh 只下载不安装
ls /var/cache/yum 查看缓存包,然后将其打包拷贝到另外一台机器上面。
yum -C install openssh 安装缓存包