即然有rpm包管理工具,为什么还需要yum呢!
主要是因为yum解决了rpm包的依赖性问题,rpm包在安装的过程中会有与其它包的依赖性关系,要么选择-nodeps,或是选择一个一个的安装原包所依赖的各种包,而yum很好的解决了包与包之间的依赖关系
yum本身也是一个rpm包.
yum客户端:
配置文件:
/etc/yum.conf:为所有仓库提供公共配置
/etc/yum.repos.d/*.repo:为仓库的指向提供配置(用户可用)
仓库指向的定义:(比较重要的几条)
[repositoryID]
name=Some name for this repository
baseurl=url://path/to/repository/
enabled={1|0}
gpgcheck={1|0}
gpgkey=URL
enablegroups={1|0}
[[email protected] ~]# cd /etc/yum.repos.d/ [[email protected] yum.repos.d]# ls centos6.7.repo CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo epel.repo CentOS-Base.repo.adb CentOS-Debuginfo.repo Centos-myBase.repo CentOS-Vault.repo [[email protected] yum.repos.d]#
[[email protected] yum.repos.d]# vim ./Centos-myBase.repo
[base] name=mybase-x86_64 baseurl=file:///media/cdrom gpgcheck=0 enable=0 ~ ~
yum命令的用法:
yum [options] [command] [package ...]
显示仓库列表:
repolist [all|enabled|disabled]
[[email protected] yum.repos.d]# yum repolist
显示程序包:
list
# yum list [all | glob_exp1] [glob_exp2] [...]
# yum list {available|installed|updates} [glob_exp1] [...]
[[email protected] yum.repos.d]# yum list
安装程序包:
install package1 [package2] [...]
[[email protected] yum.repos.d]# yum install zvbi.x86_64
reinstall package1 [package2] [...] (重新安装)
升级程序包:
update [package1] [package2] [...]
downgrade package1 [package2] [...] (降级)
检查可用升级:
check-update
卸载程序包:
remove | erase package1 [package2] [...]
查看程序包information:
info [...]
查看指定的特性(可以是某文件)是由哪个程序包所提供:
provides | whatprovides feature1 [feature2] [...]
清理本地缓存:(当仓库内的数据已更新,而没改ID,本地不会察觉,清缓存再建,可更新)
clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
构建缓存:
makecache
搜索:
search string1 [string2] [...]
以指定的关键字搜索程序包名及summary信息;
查看指定包所依赖的capabilities:
deplist package1 [package2] [...]
查看yum事务历史:
history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
安装及升级本地程序包:(基本不用,因为现在用 yum install 就可以自动实现安装本地)
* localinstall rpmfile1 [rpmfile2] [...]
(maintained for legacy reasons only - use install)
* localupdate rpmfile1 [rpmfile2] [...]
(maintained for legacy reasons only - use update)
包组管理的相关命令:(用于实现大型项目的安装)
* groupinstall group1 [group2] [...]
* groupupdate group1 [group2] [...]
* grouplist [hidden] [groupwildcard] [...]
* groupremove group1 [group2] [...]
* groupinfo group1 [...]
如何使用光盘当作本地yum仓库:
(1) 挂载光盘至某目录,例如/media/cdrom
# mount -r -t iso9660 /dev/cdrom /media/cdrom
(2) 创建配置文件
[CentOS7]
name=
baseurl=
gpgcheck=
enabled=
yum的命令行选项:
--nogpgcheck:禁止进行gpg check;
-y: 自动回答为“yes”;
-q:静默模式;
--disablerepo=repoidglob:临时禁用此处指定的repo;
--enablerepo=repoidglob:临时启用此处指定的repo;
--noplugins:禁用所有插件;
yum的repo配置文件中可用的变量:
$releasever: 当前OS的发行版的主版本号;
$arch: 平台;
$basearch:基础平台;
$YUM0-$YUM9
http://mirrors.magedu.com/centos/$releasever/$basearch/os
创建yum仓库:(关键在于创建repodata)
在本地有一个甚至多个rpm包的时候,此时并没有建立依赖关系,此时需要建立repodata,使包与包之间的数据有一个相互的依赖性和发现依赖关系,更好的使用rpm包。
createrepo [options] <directory>