linux yum包管理工具
yum 构成简介
C/S架构:Client --> Server
yum仓库
base库:通常为系统发行版所提供的程序包
updates库:
extra库:
epel库:
数据: 各个rpm包; 元数据: 数据文件 包名、版本信息、各包所包含的文件列表、依赖关系、包分组信息 centos5: xml, centos6,7: sqlite createrepo: 制作yum仓库元数据的工具 yum客户端:
指供repo配置文件,指明仓库访问路径及各种属性信息
主配置文件(中心配置文件):/etc/yum.conf
一个或几个相关仓库的配置信息可保存为一个文件,文件名都以.repo结尾:/etc/yum.repos.d/
在.repo文件定义一个yum repo指向的格式:
[REPOID]
name=Some name for this repository
baseurl=file:///media/cdrom
ftp://172.16.0.1/pub/ftp/centos
Must be a URL to the directory where the yum repository's 'repodata' directory lives
enabled={0|1}
gpgcheck={0|1}
gpgkey=URL
mirrorlist=URL to a file
mirrorlist Specifies a URL to a file containing a list of baseurls
cost={1..n}
默认为1000,指定访问此仓库的开销
安装程序包 第一步:获取仓库元数据,缓存于本地:/var/cache/yum 第二步:安装程序包:yum客户端程序在本地分析元数据文件,并结合本地系统环境(已安装的包)做出要安装的程序包的决策 第三步:获取程序包: 根据决策联系Yum仓库,下载各程序包缓存于本地后,一并进行安装;
yum客户端命令的使用
1、列出所有可用repo yum repolist {enabled|disabled|all} 2、列出rpm包 yum list {all|installed|available} yum list KEYWORD* 3、包的描述信息 yum info package_name 4、列出所有的包组信息 yum grouplist 5、显示包组的信息:例如组中包含的程序包列表 yum groupinfo "GROUP NAME" CentOS6 跟开发相关的包组: Development Tools Server Platform Development Desktop Platform Development 6、清理缓存 yum clean {all|packages|metadata|expire-cache|rpmdb|plugins} 7、安装程序包 yum install package_name 重新安装: yum reinstall package_name 8、升级 yum check-update: 检查可用的升级包 yum update package_name x-1.3.1 x-1.3.2, x-1.3.3, x-2.0.1 yum update x-1.3.2 yum downgrade package_name 9、卸载 yum remove|erase package_name 10、查询某文件是由哪个包安装生成的 yum whatprovides|provides /path/to/somefile 11、安装包组 yum groupinstall "GROUP NAME" 12、卸载包组 yum groupremove "GROUP NAME" 假设:从其它处获得一个rpm包,如果此包依赖于其它包(在仓库中),如何安装? 如果仅是单次安装需要: yum install /path/to/packe_file
自建yum仓库
自建提供yum仓库的中心服务器 ftp, http, nfs http为例,创建步骤: (1) 安装httpd程序,并启动服务 # rpm -ivh httpd- 或者 # yum install httpd 启动服务 # service httpd start # chkconfig httpd on (2) httpd的文档根目录为/var/www/html: 创建子目录,存放某相关的所有rpm包 (3) 为仓库生成元数据文件,以使能够作为仓库使用 # rpm -ivh createrepo- 或者 # yum install createrepo # createrepo /path/to/rpm_repo/ (4) 配置yum客户端使用此仓库即可