1.  yum支持的协议

ftp   ftp://server/path/to/repo

http  http://server/path/to/repo

file  file:///path/to/repo

nfs   nfs://server/path/to/repo


2.  yum客户端的相关配置文件

/etc/yum.conf          yum主配置文件

/etc/yum.repos.d/   yum仓库配置文件的存放目录

/etc/yum/                  yum插件及其它相关的配置存放目录

yum仓库配置文件基本格式及参数举例:

[repo_ID]
       name=String
       baseurl=仓库的访问路径
       enabled={1|0}
       gpgcheck={1|0}
       gpgkey=公钥文件(可以在本地,也可是服务器端路径)
       cost=定义此仓库开销,默认为1000

注: "repo_ID"是一个具体的yum仓库的标识,所以不能和其它yum仓库的标识相同。否则,同名的多个仓库只会被识别加载其中的一个!


3.  yum的常用命

yum [options] COMMAND   常用COMMAND如下:

repolist  [all|enabled|disabled]     列出所有可用yum repo。

list [all|installed|available]             列出rpm包。installed表示列出已经安装的,available表示yum仓库中可用可安装的。

info package_name                       列出包的描述信息。

grouplist                                         列出所有包组

groupinfo "package_group_name"   显示包组信息

install package_name ...                       安装指定包名的程序包

groupinstall "group_name"                安装指定的包组。常用的开发包组举例:

CentOS5    “Development Tools”和“Development Libraries”

CentOS6    “Development Tools”和“Server Platform Development”

reinstall package_name ...                   重新安装指定的程序包

check-update                              检查可升级的包

update package_name ...           升级程序包到指定的版本。比如,当前的bash的安装包是bash-1.2.1,有可用的升级包bash-1.2.2, bash-1.2.3,若想升级到1.2.2版本的:

rpm update bash-1.2.2

若不指定包的具体版本号,默认将直接升级到最新的可用版本。

downgrade package_name      降级指定的程序包

erase  package_name ...            删除指定包名的程序包

groupremove "group_name"  卸载指定包组名的包组

clean [all|packages|metadata|expire-cache|rpmdb|plugins]     清理缓存

whatprovides|provides /path/to/somefile     查询某文件是由哪个包安装生成的


另外,yum也可以直接安装本地rpm包:

yum install /path/to/package_file

举例: yum install /tmp/zsh-2.3.1-2.el6.x86_64.rpm --nogpgcheck     

其中,--nogpgcheck 选项表示不检查安装包的来源合法性和完整性


4.  yum配置文件中4个可用的宏

$releasever: 程序的版本,对Yum而言指的是redhat-release版本;只替换为主版本号,如RedHat 6.5,则替换为6

$arch: 系统架构,如x86_64,x86,ppc

$basearch: 系统基本架构,如i686,i586等的基本架构为i386

$YUM0-9: 在系统中定义的环境变量,可以在yum中使用


5.  yum服务器端包仓库的制作举例

A) 准备工作。在yum服务器上安装createrepo,httpd

B) 在/var/www/html目录下创建一个目录,假定目录名为"my_yum_repos",将所有的rpm包文件放在该目录下

C) 创建yum仓库

# createrepo /var/www/html/my_yum_repos

该命令将在my_yum_repos目录下创建一个"repodata"目录,所有的有关仓库的元数据信息文件都在该目录下。

D) 启动httpd服务

service httpd start

到此,一个可以向外提供服务的yum仓库源就创建配置完毕!