有时候我们安装某个安装包时,使用rpm安装,会提示让你先安装其他的安装包,然后在安装我们需要安装的包,存在依赖性问题,这时,我们可以用yum来进行安装,解决依赖性
yum repository yum repo 存放众多的rpm包,以及包的元数据(meta data 记录了一些包的属性信息,大小,权限,所属包类别)相关的文件(放到特定的repodata下)yum是基于C/S架构的。
文件服务器访问的方式有:http:// https:// ftp:// file://(本地文件路径)
yum 执行过程
首先找到 rpm文件,看是否配置网络yum源,然后下载repodata放在缓存区里面,然后在在下载对应的rpm包,然后将包删除。元数据不删除,默认缓存下来
yum配置文件
[root@controller ~]# vi /etc/yum.conf [main]#缓存保存的目录,其中$basearch表示的是cpu架构,$releaserver表示版本号。cachedir=/var/cache/yum/$basearch/$releasever#是否保存,0不保存缓存1,保存keepcache=0#debug级别debuglevel=2#日志路径logfile=/var/log/yum.log #在更新的时候,是否允许更新不同版本的RPM包,比如是否在i386上更新i686的exactarch=1#这是一个update的参数,具体请参阅yum(8),简单的说就是相当于upgrade,允许更新陈旧的RPM包。obsoletes=1#是否检查GPG(GNU Private Guard),一种密钥方式签名。gpgcheck=1#是否允许使用插件,默认是0不允许,但是我们一般会用yum-fastestmirror这个插件。plugins=1 #允许保留多少个内核包。installonly_limit=5#bug跟踪路径bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yumdistroverpkg=centos-release
yum配置文件/etc/yum.repos.d/*.repo 配置文件最简单的写法
[base]= #yum源的名字,自定义可以随便写,必须唯一name= #描述性文字#mirrorlist=http:// #仓库放的文件,走的是路径,写成路径baseurl= #仓库的url 和mirrorlist二选一即可,可以指定多个file霍httpgpgcheck=1 #是否检查包 1检查 0不检查gpgkey= #没有手动导入的时候指定gpg的路径,自动导入校验。
#在建立yum源时,一定要先把/etc/yum.repo.d/ 下原来自带*.repo文件删除或移动到其他的目录下
配置本地光盘yum源
#最简单的写法[root@controller yum.repos.d]# cat test.repo [name]name=centos-$releaseverbaseurl=file:///media/gpgcheck=0
配置网络阿里云 epel.yum源
[root@controller yum.repos.d]# cat epel.repo [name]name=centos-$releaseverbaseurl=file:///media/gpgcheck=0[epel]name=aliyun-$releaseverbaseurl=https://mirrors.aliyun.com/epel/$releasever/$basearch/gpgcheck=1gpgkey=https://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-7enable=1 #清除缓存,/var/cache/yum/7 matedata(元数据信息) yum -y clean all #建立缓存 yum makecache
#查看yum的操作历史记录 [root@controller yum.repos.d]# yum historyLoaded plugins: fastestmirrorID | Login user | Date and time | Action(s) | Altered------------------------------------------------------------------------------- 7 | root | 2020-05-11 03:16 | Erase | 1 6 | root | 2020-05-11 03:14 | Install | 3 P< 5 | root | 2020-05-11 02:17 | I, U | 67 >[root@controller yum.repos.d]# yum history info 7Loaded plugins: fastestmirrorTransaction ID : 7Begin time : Mon May 11 03:16:07 2020Begin rpmdb : 535:24d034c8e4d259cbfd6c3b38ddf05a16ea5923c7End time : (0 seconds)End rpmdb : 534:fc7bdc351ab5d31fd81538c622e1ebfc2b8a79e1User : root Return-Code : SuccessCommand Line : remove autofs#撤销用yum安装的命令,将原来yum安装的包就都删除了[root@controller yum.repos.d]# yum history undo 8#重新执行一遍history的命令[root@controller yum.repos.d]# yum history redo 8#列出仓库的包列表[root@controller yum.repos.d]# yum list#查看这个依赖的文件是由那个安装包提供的[root@controller yum.repos.d]# yum provides /bin/shLoaded plugins: fastestmirrorLoading mirror speeds from cached hostfilebash-4.2.46-19.el7.x86_64 : The GNU Bourne Again shellRepo : nameMatched from:#重新安装#列出所有仓库,包括禁用的。[root@controller yum.repos.d]# yum repolist all#下载一个rpm包但是并不安装--downloaddir=/root/ 指定rpm下载的目录[root@controller ~]# yum -y install --downloadonly --downloaddir=/root/ httpd#查看包的信息[root@controller ~]# yum info httpd#查看包组信息[root@controller ~]# yum grouplist#安装包组信息yum groupinstall "Development tools"#搜索安装包[root@controller repodata]# yum serach openssl
常用的网络yum源链接
阿里http://mirrors.aliyun.com/centos/$releasever/os/x86_64清华https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/x86_64阿里 epel yum源https://mirrors.aliyun.com/epel/$releasever/$basearch/
自己搭建网络yum源的方法
#安装httpd yum -y install httpd#参考阿里yum源的 在/var/www/html/下创建目录[root@controller isolinux]# mkdir -pv /var/www/html/centos/{6,7,8}/os/x86_64/#将iso 或者其他资源拷贝到 对应的目录下即可[root@controller isolinux]# cp /media/ $PAT#编辑/etc/yum.repo.d/目录下的yum文件[test—httpd]name=nginx stable repobaseurl=http://192.168.1.10/centos/$releasever/os/$basearch/gpgcheck=1enabled=1gpgkey=http://192.168.1.10/centos/$releasever/$basearch/RPM-GPG-KEY-CentOS-6同事也可以在发布目录下写一个url文件,将多个yum源的http链接放到一个文档里,放到文档里后直接在自定义的网络yum源定义mirrorlist=http://ip:/usrl.txt文件即可[tehttpd]name=nginx stable repo#baseurl=http://192.168.1.10/test.txtmirrorlist=http://192.168.1.10/test.txt[root@controller yum.repos.d]# cat /var/www/html/test.txt https://mirrors.aliyun.com/epel/7/x86_64/http://192.168.1.10/centos/$releasever/os/$basearch/https://mirrors.aliyun.com/epel/7/x86_64