Linux 的yum详解:
rpm包在安装过程中经常会出现一些依赖关系,这就是yum安装方式诞生的背景。
YUM 全称yellowdog Update Modifier
yum最大的好处就是一站式解决软件包的安装,可以自动安装所需依赖环境。
yum的配置文件:
/etc/yum.conf # 为所有仓库提供公共配置
/etc/yum.repos.d/*.repo # 为仓库的指向提供配置
yum缓存地址:
/var/cache/yum/
yum安装卸载的记录文件:
/var/log/yum.log
1.yum源的配置
默认系统安装好后,在/etc/yum.repo.d/目录下有几个CentOS-Base开头的几个repo文件。
yum源可以分为2种:网络源和本地源。
网络源的好处是软件包更新较快,但是容易受网络带宽的影响。
本地源用的是已经下载好的软件包,不用受网络影响,但包更新可能不够及时。
网络源的安装请网上搜索相应的repo文件。
本地源的配置在下文中会详细说明具体操作步骤。
这里先对repo文件格式做个大体的说明:
[Media] 便于识别的ID,同一系统上的repo文件中该字段不能重名
name=testrepo
baseurl=http://xxxxxxx或者file:///xxx 或ftp://xxx
gpgcheck=0 # 0表示关闭gpg校验,1表示启用gpg校验
enabled=1 表示启用该repo源
gpgkey=http://xxxxxxx/RPM-GPG-KEY-CentOS-6 # 启用gpgcheck后,需要加这条。不启用gpgcheck的话,这条可以删掉。
2.yum命令的用法:
从使用角度对yum命令进行分类:
显示仓库列表
yum repolist [all|enabled|disabled]
软件包的搜索
yum list all # 显示所有软件包
yum list all|grep httpd # 搜索所有含httpd的软件包
yum list available # 显示所有可用的软件包
yum list installed # 显示已经安装的软件包
yum list updates # 显示有更新的软件包
yum search httpd # 列出所有包名或者summary内容中包含httpd的包
软件包的安装
yum install httpd # 安装httpd软件包及相关依赖包
yum reinstall httpd # 重新安装软件包
软件包的卸载
yum remove httpd # 卸载软件包和依赖环境
yum erase httpd # 卸载软件包和依赖环境
软件包的升级、降级
yum update httpd #更新httpd软件包
yum update # 全部更新
yum downgrade package # package降级安装
软件包的信息查看
yum info httpd # 查看httpd软件包信息
yum groupinfo group1 # 显示程序组group1信息
查看指定包的依赖关系
yum deplist httpd # 查看httpd依赖哪些包
查看yum事物历史
history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
安装及升级本地程序包:
yum localinstall rpmfile1 [rpmfile2] [...] # 本地安装软件包
yum localupdate rpmfile1 [rpmfile2] [...] # 本地升级软件包
包组的管理命令
yum groupinstall group1…
yum groupupdate group1 ...
yum grouplist # 列出所有的包租
yum groupremove group1 # 移除某个包组
yum groupinfo group1 # 显示某个包组的信息
其它命令
yum check-update # 检查可用的升级
yum clean all # 清理yum所有的缓存
yum make cache # 建立yum缓存
3.yum的命令行选项
--nogpgcheck:禁止进行gpg check;
-y: 自动回答为“yes”;
-q:静默模式;
--disablerepo=repoidglob:临时禁用此处指定的repo;
--enablerepo=repoidglob:临时启用此处指定的repo;
--noplugins:禁用所有插件;
4.yum仓库的手动创建
为了下面实验结果的直观起见,我先将/etc/yum.repo.d/文件夹下原有的内容都重命名为xxx.repo.bak
方法1:直接挂载光盘构建yum源仓库
mount /dev/cdrom /media
在/etc/yum.repos.d/目录下,建立local.repo文件:
[local]
name=local source
baseurl=file:///media
enabled=1
gpgcheck=1
gpgkey=/media/RPM-GPG-KEY-CentOS-6
保存并退出。
yum clean all
yum install xxx # 安装个软件测试下yum源能否正常工作。
方法2:本地网络源仓库
http://172.16.249.118是局域网的一台服务器,上面做了yum源。【如下图】
在/etc/yum.repos.d/目录下,建立http.repo文件:
[httpd]
name=httpd source
baseurl=http://172.16.249.118
enabled=1
gpgcheck=1
gpgkey=http://172.16.249.118/RPM-GPG-KEY-CentOS-6
方法3:createrepo命令创建repo源文件,再挂载
yum仓库的建立需要用到createrepo程序。
假设在/tmp/demo下有一些软件包,需要创建包仓库。
cd /tmp/demo
create -o ../ ./ #注释:-o 指定生成的repo的路径为上层目录, ./ 是表示将当前目录的文件创建yum仓库。
在/etc/yum.repos.d/目录下,建立repo文件:
test.repo
[local]
name=test.repo
baseurl=file:///tmp
enabled=1
gpgcheck=1
yum clean all # 清除yum缓存
yum repolist # 查看当前有哪些repo文件
已经可以找到刚才新建的yum源了。
也可以yum install 安装个软件测试下是否yum源可以正常工作。