• YUM源的几种常见方式


    Yum,是Yellow dog Updater, Modified 的简称,是杜克大学为了提高RPM 软件包安装性而开发的一种软件包管理器。起初是由yellow dog 这一发行版的开发者Terra Soft 研发,用python 写成,那时还叫做yup(yellow dog updater),后经杜克大学的Linux@Duke 开发团队进行改进,遂有此名。yum 的宗旨是自动化地升级,安装/移除rpm 包,收集rpm 包的相关信息,检查依赖性并自动提示用户解决。yum 的关键之处是要有可靠的repository,顾名思义,这是软件的仓库,它可以是http 或ftp 站点,也可以是本地软件池,但必须包含rpm 的header,header 包括了rpm 包的各种信息,包括描述,功能,提供的文件,依赖性等。正是收集了这些 header 并加以分析,才能自动化地完成余下的任务。

    yum 的理念是使用一个中心仓库(repository)管理一部分甚至一个distribution 的应用程序相互关系,根据计算出来的软件依赖关系进行相关的升级、安装、删除等等操作,减少了Linux 用户一直头痛的dependencies 的问题。这一点上,yum 和apt 相同。apt 原为debian 的deb 类型软件管理所使用,但是现在也能用到RedHat 门下的rpm 了。
      yum 主要功能是更方便的添加/删除/更新RPM 包,自动解决包的倚赖性问题,便于管理大量系统的更新问题。
      yum 可以同时配置多个资源库(Repository),简洁的配置文件(/etc/yum.conf),自动解决增加或删除rpm 包时遇到的依赖性问题,保持与RPM 数据库的一致性。

    配置Y

    UM仓库服务
    --------------YUM服务器------------------client------------------
    192.168.10.1 192.168.10.10

    [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-enc0 
    [root@localhost ~]# systemctl restart  network 
    
    • 1
    • 2

    配置YUM仓库源

    repo文件内容简绍

    yum 源一般存放在 /etc/yum.repos.d/ 目录中,文件已 .repo 结尾。
    Yum 源镜像中心提供了 centosplus, cloud, extras, fasttrack, os, updates 等软件库,最好认的软件库就是 os (系统默认的软件) 与 updates (软件升级版本) 啰!最重要的文件就是那个 “repodata” 的目录!该目录就是分析 RPM 软件后所产生的软件属性相依数据放置处!因此,当你要找软件库所在网址时, 最重要的就是该网址底下一定要有个名为 repodata 的目录存在!那就是软件库的网址了!

    [main]
    cachedir=/var/cache/yum
    debuglevel=2
    logfile=/var/log/yum.log
    pkgpolicy=newest
    distroverpkg=redhat-release
    tolerant=1
    exactarch=1
    retries=1
    
    [base]
    name=Fedora Core $releasever - $basearch - Base
    baseurl=http://download.atrpms.net/mirrors/fedoracore/$releasever/$basearch/os
    http://rpmfind.net/linux/fedora/cor...er/$basearch/os
    http://mirror.clarkson.edu/pub/dist...er/$basearch/os
    
    [updates-released]
    name=Fedora Core $releasever - $basearch - Released Updates
    baseurl=http://download.atrpms.net/mirrors/fedoracore/updates/$releasever/$basearch
    http://redhat.linux.ee/pub/fedora/l...sever/$basearch
    http://fr2.rpmfind.net/linux/fedora...sever/$basearch
    
    ... 中间省略 ...
    
    [freshrpms]
    name=FreshRPMs
    baseurl=http://ayo.freshrpms.net/fedora/linux/$releasever/$basearch/freshrpms/
    http://ftp.us2.freshrpms.net/linux/...arch/freshrpms/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    第一部分(全局性设置,一般不必改动)

    [main]
    cachedir		yum 缓存的目录,存储下载的 rpm 包和数据库,一般是 /var/cache/yum
    debuglevel		除错级别,0-10,默认是2
    logfile			yum 的日志文件,默认是/var/log/yum.log
    pkgpolicy		选择安装软件包的策略。一共有两个选项,newest和last(如果你设置了多个 repository,同一软件在不同的 repository 中同时存在。yum 应该安装哪一个,如果是 newest,则 yum 会安装最新的那个版本。如果是 last,则 yum 会将服务器 id 以字母表排序,并选择最后的那个服务器上的软件安装。默认为 newest
    distroverpkg	指定一个软件包,yum 会根据这个包判断你的发行版本,默认是 redhat-release,也可以是安装的任何针对自己发行版的 rpm 包
    exactarch		有两个选项1和0(1代表只升级和你安装软件包 cpu 体系一致的包,例如:你安装了一个i386的 rpm,则 yum 不会用1686的包来升级这个包)
    retries			网络连接发生错误后的重试次数(如果设为0,则会无限重试)
    tolerent		有1和0两个选项,表示 yum 是否提示与软件包有关的错误,(1代表 yum 不会提示错误信息,默认是0)
    
    除了上述之外,还有一些可以添加的选项,如
    exclude=,		排除某些软件在升级名单之外,可以用通配符,列表中各个项目要用空格隔开,这个对于安装了诸如美化包,中文补丁的朋友特别有用。
    gpgchkeck= 		有1和0两个选择,分别代表是否是否进行gpg校验,如果没有这一项,默认好像也是检查的。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    第二部分(个性化配置)
    配置 repository 服务器了,这是最令人激动的。有了好的 repository,就如家门口开了大卖场,要什么东西稍微跑跑腿就行,对了这还是个免费的大卖场。所有服务器设置都应该遵循如下格式:
    文件中各参数的含义分别为:

    [base]: 代表软件库的名字!中括号一定要存在,里面的名称则可以随意取。但是不能有两个相同的软件库名称, 否则 yum 会不晓得该到哪里去找软件库相关软件列表档案。
    name			 只是说明一下这个软件库的意义而已,重要性不高!
    mirrorlist=		 列出这个软件库可以使用的映射站台,如果不想使用,可以注释掉这行;
    baseurl= 		 这个最重要,因为后面接的就是软件库的实际网址! mirrorlist 是由 yum 程序自行去捉映像站台, baseurl 则是指定固定的一个软件库网址!我们刚刚找到的网址放到这里来啦!
    enable=1         就是让这个软件库被启动。如果不想启动可以使用 enable=0 喔!
    gpgcheck=1       还记得 RPM 的数字签名吗?这就是指定是否需要查阅 RPM 档案内的数字签名!
    gpgkey=          就是数字签名的公钥文件所在位置!使用默认值即可
    
    几个变量
    $releasever		发行版的版本,从[main]部分的distroverpkg获取,如果没有,则根据redhat-release包进行判断。
    $arch			cpu体系,如i686,athlon等
    $basearch		cpu的基本体系组,如i686和athlon同属i386,alpha和alphaev6同属alpha。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    CentOS下安装yum

    在Linux里面依次输入下面的命令:
    http://yum.baseurl.org/

    wget http://yum.baseurl.org/download/3.2/yum-3.2.28.tar.gz
    tar xvf yum-3.2.28.tar.gz
    cd yum-3.2.28/
    ./yummain.py install yum
    如果结果提示错误: CRITICAL:yum.cli:Config Error: Error accessing file for config file:///etc/
    可能是原来是缺少配置文件。在 etc 目录下面新建 yum.conf 文件,然后再次运行 yummain.py install yum,顺利完成安装。
    
    # 最后更新系统。
    yum check-update
    yum update
    yum clean all
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    一、基于本地文件的YUM源

    [root@localhost ~]# umount /dev/sr0
    [root@localhost ~]# mount /dev/sr0 /media/
    [root@localhost ~]# rm -f /etc/yum.repos.d/*
    [root@localhost ~]# vim /etc/yum.repos.d/local.repo 
    修改:
    [haha]
    baseurl=file:///media
    enabled=1                   #启用yum软件仓库
    gpgcheck=0                  #取消gpg校验,一种密钥方式签名(默认检查)
    
    测试:
    [root@localhost ~]# yum -y install dhcp
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    二、基于ftp的YUM源

    yum源服务器配置:

    [root@localhost ~]# cd /media/Packages/
    [root@localhost ~]# rpm -ivh vsftpd-3.0.2-10.el7.x86_64.rpm 
    [root@localhost ~]# systemctl restart vsftpd                               (关键点,否则客户端将找不到centos目录)
    [root@localhost ~]# mkdir /var/ftp/centos                                 (默认匿名用户访问的“宿主根目录”为/var/ftp/目录~)
    [root@localhost ~]# mount /dev/sr0 /var/ftp/centos
    
    • 1
    • 2
    • 3
    • 4
    • 5

    三、基于HTTP的YUM源

    yum源服务器配置:
    安装apache服务,开源和rpm包安装的服务,默认目标位置不同。

    开源安装的服务配置:

    [root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf         (指定了安装路径)
    修改:
    ServerName 192.168.10.1:80
    
    [root@localhost ~]# mkdir /usr/local/httpd/htdoc/centos7
    [root@localhost ~]# mount /dev/sr0 /usr/local/httpd/htdoc/centos7
    [root@localhost ~]# systemctl start httpd
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    yum安装httpd的服务配置:

    [root@localhost ~]# yum -y install httpd
    [root@localhost ~]# vim /etc/httpd/conf/httpd.conf
    修改:
    ServerName 192.168.10.1:80
    
    [root@localhost ~]# mkdir /var/www/html/centos7                (默认网页根目录位于/var/www/html)
    [root@localhost ~]# mount /dev/sr0 /var/www/html/centos7
    [root@localhost ~]# systemctl start httpd			注意:不能使用rpm -ivh的方式安装httpd
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    四、基于网络的YUM源

    初始快照下配置,啥也不用动,就能访问百度就行
    客户端
    CentOS,是基于 Red Hat Linux 提供的可自由使用源代码的企业级 Linux 发行版本;是一个稳定,可预测,可管理和可复制的免费企业级计算平台。
    阿里源:
    Linux客户端配置方法

    1. 备份你的原镜像文件,以免出错后可以恢复   
    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    
    2.下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/
    CentOS 7wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
    或者
    curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
    
    3. 运行 yum makecache 生成缓存
    4. 
    5. 其他
    非阿里云ECS用户会出现 Couldn't resolve host 'mirrors.cloud.aliyuncs.com' 信息,不影响使用。用户也可自行修改相关配置: eg:
    sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    华为源:

    1、备份配置文件:
    cp -a /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
    
    2、两种方案,请大家自行选取。
    方案一:
    下载新的CentOS-Base.repo文件到/etc/yum.repos.d/目录下,选择CentOS版本:
    CentOS 7
    执行如下命令:
    wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-7-anon.repo
    
    方案二:
    修改CentOS-Base.repo文件,取消baseurl开头的行的注释,并增加mirrorlist开头的行的注释。将文件中的http://mirror.centos.org替换成https://mirrors.huaweicloud.com,可以参考如下命令:
    sed -i "s/#baseurl/baseurl/g" /etc/yum.repos.d/CentOS-Base.repo
    sed -i "s/mirrorlist=http/#mirrorlist=http/g" /etc/yum.repos.d/CentOS-Base.repo
    sed -i "s@http://mirror.centos.org@https://mirrors.huaweicloud.com@g" /etc/yum.repos.d/CentOS-Base.repo
    
    3、执行yum clean all清除原有yum缓存。
    
    4、执行yum makecache(刷新缓存)或者yum repolist all(查看所有配置可以使用的文件,会自动刷新缓存)。
    
    
    # 系统环境:CentOS7
    http://mirrors.aliyun.com/repo/Centos-7.repo
    [1] 首先备份/etc/yum.repos.d/CentOS-Base.repo  
    cp /etc/yum.repos.d/CentOS-Base.repo  /etc/yum.repos.d/CentOS-Base.repo.backup 
    [2] 进入yum源配置文件所在文件夹  
    cd /etc/yum.repos.d/ 
    [3] 下载163的yum源配置文件,放入/etc/yum.repos.d/(操作前请做好相应备份)
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo 
    阿里云是:wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 
    [4] 运行yum makecache生成缓存  yum makecache
    [5] 更新系统(时间比较久,主要看个人网速)  yum -y update 
    [6] 安装vim编辑器  yum -y install vim*
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    五、客户端配置

    [root@localhost ~]# rm -rf /etc/yum.repos.d/*                         //如果不删除,他将找不到yum仓库
    [root@localhost ~]# vim /etc/yum.repos.d/ftp.repo
    [ftp]
    baseurl=ftp://192.168.10.1/centos
    enabled=0
    gpgcheck=0[http]
    baseurl=http://192.168.10.1/centos7
    enabled=1
    gpgcheck=0
    
    [root@localhost ~]# yum -y install bind*
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    YUM客户端的基本操作:

    [root@localhost ~]# yum list				//查询所有已经安装和可以安装的程序包
    [root@localhost ~]# yum info httpd			//查询httpd的信息
    [root@localhost ~]# yum search all httpd	//查询httpd相关软件包的信息
    [root@localhost ~]# yum clean all			//清除缓存
    
    [root@localhost ~]# yum grouplist			
    [root@localhost ~]# yum groupinfo
    [root@localhost ~]# yum groupinfo Desktop
    
    [root@localhost ~]# yum -y install bind*		//安装bind*相关软件包
    [root@localhost ~]# yum groupinstall "组名"
    
    [root@localhost ~]# yum -y remove bind*			//删除bind*相关软件包
    [root@localhost ~]# yum -y groupremove "组名"
    
    [root@localhost ~]# yum deplist mysql-server
    例如:
    [root@localhost ~]# yum groupinstall "X Window System"
    [root@localhost ~]# yum groupinstall "GNOME Desktop Environment"
    [root@localhost ~]# yum groupinstall "KDE (K Desktop Environment)"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    Anything I can put you through, that’s not a thing!

  • 相关阅读:
    Kafka为什么这么快?它的高性能是如何实现的?
    有了这款工具,自动化识别验证码再也不是问题
    【应用多元统计分析】上机四&五——主成分分析&因子分析
    Java设计模式总结
    【微服务】CentOS7 虚拟机 安装 Docker
    实在是解决不了来提问一下。UE5,打开项目地变成黑色怎么解决?
    汽车诊断仪算法保护芯片——LKT4305-GM
    阿里巴巴面试题- - -多线程&并发篇(三十九)
    多御安全浏览器使用技巧,剖析7大优点特性
    跨境电商做什么产品好?2022速卖通热销品类榜单来袭!
  • 原文地址:https://blog.csdn.net/qq_50573146/article/details/126900836