yum仓库管理
可以通过在yum的本地配置文件里设置URL来指定软件包的位置,方便以后选择安装某些程序包;yum可以自动处理包依赖关系,使安装更方便;
可以通过ftp、http、本地file等方式连接指定的文件服务器上的yum仓库;
每个rpm包都有元数据,yum仓库会自动整理各个rpm包的元数据,生成一个元数据的描述信息,当有主机申请到yum仓库下载安装软件时,首先会请求yum仓库的元数据的描述信息然后存放到缓存当中,接着主机会根据元数据描述信息分析依赖关系,查看并排除那些在本机上已经安装的,然后会以类似客户端的身份去yum仓库去下载所需的软件包,主机会将它们缓存到本地,依据依赖关系先后安装所需的软件包;安装之后会清除缓存的软件包但是会保留此yum仓库的元数据描述信息;
当yum仓库里的软件包更新以后,可能会改变原本的依赖关系,如果主机还使用之前保留的元数据描述信息来请求安装软件这是很有可能出问题的,但是如果直接请求新的元数据描述信息又浪费带宽虽然它是经过压缩的,并且元数据描述信息里面不止一个文件,它可能包含软件包名、依赖关系、元数据文件以及元数据文件校验码等文件,为了节省带宽,每次主机都会请求校验码而不是元数据描述信息,然后比较上次的和新得到的校验码,如果改变了就重新请求元数据描述信息再下载安装需要的软件包;
使用yum安装软件包的时候,没有安装完成而终止了,yum无法分析上次安装成功与否,yum解决这种问题;
使用createrepo可以创建元数据描述信息;
指定yum仓库URL路径时其路径通常为repodate目录所在的目录;
YUM:yellow dog,Yellowgod Update Modifier
yum repository:yum repo
存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录向/repodata);
文件服务器
ftp://
http://
file://
nfs://
yum配置文件:
/etc/yum.conf:设置公共配置
/etc/yum.repo.d/*.repo:设置每个仓库私有的配置
帮助文档:man yum.conf
仓库的各个关键字定义:
[repositoryID]
name=Some name for this repository :指定软件仓库的名称;
baseurl=url://path/to/repository:指定软件仓库的URL,支持同时设置多个URL;
enabled={0|1}:是否启动此软件仓库,默认为1;
gpgcheck={0|1}:是否校验软件包的完整性及来源合法性;
gpgkey=URL:指定验证来自某个软件仓库里面的rpm包时所使用的公钥;
enablegroup={0|1}:是否启用软件包组安装;
failovermethod={roundrobin|priority}:当同时指定多个URL时,设置选择URL的规则;
默认为roundrobin,轮询方式即随机选择;priority,按优先级选择即顺序选择;
cost:设置仓库开销,越小越优先;
默认为1000
yum管理命令:
yum {option} [command] [packages …]
* install package1 [package2] [...]:安装软件包;
* update [package1] [package2] [...]:升级软件包;
* update-to [package1] [package2] [...]:同上;
* update-minimal [package1] [package2] [...]
* check-update:检查可用升级包;
* upgrade [package1] [package2] [...]:升级软件包;
* upgrade-to [package1] [package2] [...]升级软件包;
* distribution-synchronization [package1] [package2] [...]
* remove | erase package1 [package2] [...]:移除指定软件包的同时会卸载依赖于此软件包的软件;
* autoremove [package1] [...]
* list [...]:按安装与否等信息显示所有软件包,最后一个字段表示来自哪个仓库源以及安装状态;
* info [...]:显示软件包信息;
* provides | whatprovides feature1 [feature2] [...]
查看任何feature的简要信息(提供此功能的软件包及简要描述信息等),可以是文件、命令等;
* clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]:清除元数据缓存;
* makecache [fast]:构建元数据缓存,即到各个仓库下载元数据描述信息;
* groups [...]:包组安装;
* search string1 [string2] [...]:模糊查找含有指定string的软件包;
* shell [filename]
* resolvedep dep1 [dep2] [...]
(maintained for legacy reasons only - use repoquery or yum provides)
* localinstall rpmfile1 [rpmfile2] [...]:安装从仓库下载的软件包时可以结合本地软件包生成依赖关系,从而方便安装;
(maintained for legacy reasons only - use install)
* localupdate rpmfile1 [rpmfile2] [...]:升级从仓库下载的软件包时可以结合本地软件包生成依赖关系,从而方便安装;
(maintained for legacy reasons only - use update)
* reinstall package1 [package2] [...]:重新安装;
* downgrade package1 [package2] [...]:软件包降级;
* deplist package1 [package2] [...]:查看指定软件包的依赖关系;
* repolist [all|enabled|disabled]:按需查看软件仓库;
* repoinfo [all|enabled|disabled]:查看软件仓库的详细信息;
* repository-packages <enabled-repoid> <install|remove|remove-or-reinstall|remove-or-distribution-synchronization> [pack- age2] [...]
* version [ all | installed | available | group-* | nogroups* | grouplist | groupinfo ]
* history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
查看用户安装、升级、卸载等操作历史;
* load-transaction [txfile]
* updateinfo [summary | list | info | remove-pkgs-ts | exclude-updates | exclude-all | check-running-kernel]
* fssnapshot [summary | list | have-space | create | delete]:跟快照有关;
* fs [filters | refilter | refilter-cleanup | du]
* check
yum命令选项:
--nogpgcheck:禁止进行gpgcheck检测;
-y:对于安装时出现的交互,自动回答为yes
-q:静默安装;
--disablerepo=repoidglob:临时禁用某个repo;
--enablerepo=repoidglob:临时启用某个repo;
--noplugins:禁用所有插件;
yum的repo配置文件中可用的变量;
变量的作用:一般情况下yum仓库会为不同平台、不同版本、不同硬件创建不同的目录来供 主机访问,为了使方便,服务器方可能会提供统一的repo配置文件,但是为了适应以上的各种不同,所以引用了变量来自动根据主机的平台设置访问路径;达到了一个配置文件可以被多个不同平台使用的方法;
变量:
$releasever:当前OS的发行版的主版本号;
$arch:平台;
$basearch:基础平台;
$YUM0~$YUM9;
例子:http://www.guowei.com/centos/$releasever/$basearch/os
创建yum库
creterepo [options] <directory>
createrepo ./
注:根据马哥视频做的学习笔记,如有错误,欢迎指正;侵删