一、只下载软件包

方法1   使用yum的插件downloadonly,安装完就可以只下载不安装了

yum install yum-download
yum install httpd --downloadonly --downloaddir=/tmp   # 只下载httpd及相关依赖包到/tmp目录下,如果不指--downloaddir,默认在/var/cache/yum目录下


方法2   使用yum-utils中的yumdownloader

yum-utils中包含很多yum工具,如yum-complete-transaction、yum-group-manager

yum install yum-utils
yumdownloader httpd # 这种方式不会把httpd相关依赖包下载下来,就只下载httpd包,推荐还是方法1


方法3  使用yum的cache功能

vim /etc/yum.conf   # 编辑yum.conf配置文件
keepcache=1    #  值为1表示启用cache

cache目录默认也在/var/cache/yum目录下


二、本地源

createrepo /data/Packages/                   # 产生包之间的依赖关系
createrepo --update /data/Packages/     # 加入一些新包的时候,--update可以快速生成依赖关系
vim /etc/yum.repos.d/99cloud.repo      # 本地源的repo
[icehouse]
name=icehouse
baseurl=http://192.168.1.102/repo/Packages
#baseurl=file:///Package/repo/Packages
gpgcheck=0
priority=1   # 优先级最高

tips: 利用python自带的SimpleHTTPServer模块也可以做成http yum源,python -m SimpleHTTPServer 8080(切换到你要的目录下执行)


三、自定义Group

从centos 发行的iso中拷贝一个comps.xml文件,添加一个名字为base的group
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE comps PUBLIC "-//CentOS//DTD Comps info//EN" "comps.dtd">
<comps>
<group>
<id>base</id>
<name>Base</name>
<default>false</default>
<uservisible>false</uservisible>
<packagelist>
<packagereq requires="ruby" type="conditional">rubygem-abrt</packagereq>
<packagereq type="default">abrt-addon-ccpp</packagereq>
<packagereq type="default">abrt-addon-python</packagereq>
<packagereq type="default">abrt-cli</packagereq>
<packagereq type="default">abrt-console-notification</packagereq>
<packagereq type="default">bash-completion</packagereq>
</packagelist>
</group>
</comps>
模仿原来的group写就好了
[root@pxe repo_juno]# createrepo -g comps.xml ./ # Packages在当前目录,会在当前目录生成repodata信息



四、指定特殊版本安装

# 格式
yum install <package name>-<version info>
yum install openstack-dashboard-4.0rc1.2016.2.6-Liberty
 
# 查看同个软件包的不同可用版本
yum list --showduplicates | grep -i dashboard

参考链接:http://unix.stackexchange.com/questions/151689/how-can-i-instruct-yum-to-install-a-specific-version-of-package-x