• Linux学习-20-yum介绍,yum源配置


    7.8 yum介绍,yum源配置
    • 使用 SRPM 源码包和 RPM 二进制包安装软件,这两种方法都比较繁琐,需要手动解决包之间具有依赖性的问题,尤其是库文件依赖,需要自行去 http://www.rpmfind.net 网站上查找相关的 RPM 包。
    7.8.1 yum介绍及安装
    • yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器,是一个专门为了解决包的依赖关系而存在的软件包管理器,可自动安装软件包(自动解决包之间依赖关系)的安装方式,能大大降低rpm包程序的安装难度。就好像 Windows 系统上可以通过 360 软件管家实现软件的一键安装、升级和卸载,Linux 系统也提供有这样的工具,就是 yum。

    • 基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。yum 在服务器端存有所有的 RPM 包,并将各个包之间的依赖关系记录在文件中,当管理员使用 yum 安装 RPM 包时,yum 会先从服务器端下载包的依赖性文件,通过分析此文件从服务器端一次性下载所有相关的 RPM 包并进行安装。

    • yum 软件可以用 rpm 命令安装,安装之前可以通过如下命令查看 yum 是否已安装:

    [root@CncLucZK ~]# rpm -qa|grep yum
    yum-4.0.9.2-5.el8.noarch
    #可以看到,系统上已经安装了 yum。
    
    • 1
    • 2
    • 3
    • 使用 rpm 命令安装 yum 的具体方式,用上面的命令查看yum 是否已安装如果没有安装,则输出为空。这里输出为空。

    • 将centos7 linux系统安装光盘插入光驱,运行以下命令,将光盘挂载到/mnt分区上。

      mount /dev/sr0 /mnt
      
      • 1
    • 利用CD命令,将当前路径切换为光盘中的rpm包所在目录Packages。利用grep查找yum安装包,获取yum安装包的文件名。

    Linux 系统安装映像文件中就含有常用的 RPM 包,我们可以使用压缩文件打开映像文件(iso文件),进入其 Packages 子目录.

     ll|grep yum*centos*
    
    • 1
    • 将查找到的yum安装包文件yum-3.4.3-158.el7.centos.noarch.rpm,拷贝到/tmp目录中。
    cp yum-3.4.3-167.el7.centos.noarch.rpm /tmp/  
    
    • 1
    • 运行rpm -ivh /tmp/yum-3.4.3-167.el7.centos.noarch.rpm 命令,开始安装yum程序。rpm命令是rpm包管理器,-i参数表示进行安装,-v参数表示显示安装详细过程,-h参数表示显示安装进程,直到出现两个 100% 才是真正的安装成功,第一个 100% 仅表示完成了安装准备工作。

    • 直接在shell窗口中运行yum命令,可以看到yum命令能够正常运行,因为没有携带参数,所以运行后列出了yum命令的帮助信息。

    [root@CncLucZK ~]# yum
    usage: dnf [options] COMMAND
    
    List of Main Commands:
    
    alias                     List or create command aliases
    autoremove                remove all unneeded packages that were originally installed as dependencies
    check                     check for problems in the packagedb
    check-update              check for available package upgrades
    clean                     remove cached data
    deplist                   List package's dependencies and what packages provide them
    distro-sync               synchronize installed packages to the latest available versions
    downgrade                 Downgrade a package
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 也可以运行:rpm -qa|grep yum命令来检验yum是否正常安装

    • 使用 yum 安装软件包之前,需指定好 yum 下载 RPM 包的位置,此位置称为 yum 源。换句话说,yum 源指的就是软件安装包的来源。使用 yum 安装软件时至少需要一个 yum 源。yum 源既可以使用网络 yum 源,也可以将本地光盘作为 yum 源。接下来就给大家介绍这两种 yum 源的搭建方式。

    7.8.2 网络 yum 源搭建
    • 一般情况下,只要你的云服务器网络正常,可以直接使用网络 yum 源,不需要对配置文件做任何修改,这里对 yum 源配置文件做一下介绍。
    • 网络 yum 源配置文件位于 /etc/yum.repos.d/ 目录下,文件扩展名为".repo"(只要扩展名为 ".repo" 的文件都是 yum 源的配置文件)。
    [root@CncLucZK ~]# ll /etc/yum.repos.d/
    total 24
    -r--r--r-- 1 root root  977 Dec 11  2020 CentOS-Base.repo
    -r--r--r-- 1 root root  230 Dec 11  2020 CentOS-Epel.repo
    -rw-r--r-- 1 root root 1395 Mar 15  2022 epel-modular.repo
    -rw-r--r-- 1 root root 1332 Mar 15  2022 epel.repo
    -rw-r--r-- 1 root root 1494 Mar 15  2022 epel-testing-modular.repo
    -rw-r--r-- 1 root root 1431 Mar 15  2022 epel-testing.repo
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 可以看到,该目录下有 4 个 yum 配置文件,通常情况下 CentOS-Base.repo 文件生效。我们可以尝试打开此文件,命令如下:
    [root@CncLucZK etc]# cat yum.repos.d/CentOS-Base.repo
    [BaseOS]
    name=Qcloud centos - BaseOS
    baseurl=http://mirrors.tencentyun.com/centos/$releasever/BaseOS/$basearch/os/
    gpgcheck=1
    enabled=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-8
    
    [extras]
    name=Qcloud centos - extras
    baseurl=http://mirrors.tencentyun.com/centos/$releasever/extras/$basearch/os/
    gpgcheck=1
    enabled=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-8
    
    [centosplus]
    name=Qcloud centos - centosplus
    baseurl=http://mirrors.tencentyun.com/centos/$releasever/centosplus/$basearch/os/
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-8
    
    [AppStream]
    name=Qcloud centos - AppStream
    baseurl=http://mirrors.tencentyun.com/centos/$releasever/AppStream/$basearch/os/
    gpgcheck=1
    enabled=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-8
    
    [PowerTools]
    name=Qcloud centos - PowerTools
    baseurl=http://mirrors.tencentyun.com/centos/$releasever/PowerTools/$basearch/os/
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-8
    
    • 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
    • 34
    • 35
    • 此文件中含有 5 个 yum 源容器,其他容器和 base 容器类似。base 容器中各参数的含义分别为:

      • [base]:容器名称,一定要放在[]中。
      • name:容器说明,可以自己随便写。
      • mirrorlist:镜像站点,这个可以注释掉。
      • baseurl:我们的 yum 源服务器的地址。一般默认是 CentOS 官方的 yum 源服务器,云服务器是厂商自家的 yum 源服务器地址的是可以使用的。可以自定义 yum 源地址。
      • enabled:此容器是否生效,如果不写或写成 enabled 则表示此容器生效,写成 enable=0 则表示此容器不生效。
      • gpgcheck:如果为 1 则表示 RPM 的数字证书生效;如果为 0 则表示 RPM 的数字证书不生效。
      • gpgkey:数字证书的公钥文件保存位置。不用修改。
    • 网易(163)yum源是国内最好的yum源之一 ,无论是速度还是软件版本,都非常的不错。将yum源设置为163 yum,可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法找到。以下是网络yum源的安装步骤:

    1.首先备份/etc/yum.repos.d/CentOS-Base.repo

    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    
    • 1

    2.下载对应版本 repo 文件, 放入 /etc/yum.repos.d/ (操作前请做好相应备份)

    • CentOS5 :http://mirrors.163.com/.help/CentOS5-Base-163.repo
    • CentOS6 :http://mirrors.163.com/.help/CentOS6-Base-163.repo
    • CentOS7 :http://mirrors.163.com/.help/CentOS7-Base-163.repo
    wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
    mv CentOS7-Base-163.repo CentOS-Base.repo
    
    • 1
    • 2

    3.运行以下命令生成缓存

    yum clean all
    yum makecache
    
    • 1
    • 2

    除了网易之外,国内还有其他不错的 yum 源,比如中科大和搜狐。

    中科大的 yum 源,安装方法查看:https://lug.ustc.edu.cn/wiki/mirrors/help/centos

    sohu 的 yum 源安装方法查看: http://mirrors.sohu.com/help/centos.html

    7.8.3 本地 yum 源
    • 在无法联网的情况下,yum 可以考虑用本地光盘(或安装映像文件)作为 yum 源。Linux 系统安装映像文件中就含有常用的 RPM 包,我们可以使用压缩文件打开映像文件(iso文件),进入其 Packages 子目录
      在这里插入图片描述
    • 可以看到,该子目录下含有几乎所有常用的 RPM 包,因此使用系统安装映像作为本地 yum 源没有任何问题。
    • 在 /etc/yum.repos.d/ 目录下有一个 CentOS-Media.repo 文件(实体服务器才有此文件,云服务器没有),此文件就是以本地光盘作为 yum 源的模板文件,只需进行简单的修改即可,步骤如下:
      在这里插入图片描述
      1.放入 CentOS 安装光盘,并挂载光盘到指定位置。命令如下:
    [root@CncLucZK ~]# mkdir /mnt/cdrom
    #创建cdrom目录,作为光盘的挂载点
    [root@CncLucZK ~]# mount /dev/cdrom /mnt/cdrom/
    mount: block device/dev/srO is write-protected, mounting read-only
    #挂载光盘到/mnt/cdrom目录下
    [root@CncLucZK ~]# mount | tail -1
    /dev/sr0 on /media type iso9660 (ro)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2.修改其他几个 yum 源配置文件的扩展名,让它们失效,因为只有扩展名是"*.repo"的文件才能作为 yum 源配置文件。当也可以删除其他几个 yum 源配置文件,但是如果删除了,当又想用网络作为 yum 源时,就没有了参考文件,所以最好还是修改扩展名。 命令如下:

    [root@CncLucZK ~]# cd /etc/yum.repos.d/
    [root@CncLucZK yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak
    [root@CncLucZK yum.repos.d]#mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak
    [root@CncLucZK yum.repos.d]# mv CentOS-Vault.repo CentOS-Vault.repo.bak
    
    • 1
    • 2
    • 3
    • 4

    3.修改光盘 yum 源配置文件 CentOS-Media.repo,参照以下方修改:如此,本地 yum 源就配置完成了

    [root@CncLucZK yum.repos.d]# vim CentOS-Media.repo
    [c6-media]									#中括号里内容要求唯一,但不要出现特殊字符				
    name=CentOS-$releasever - Media			   #此为描述信息,可以看情况填写
    baseurl=file:///mnt/cdrom
    #地址为你自己的光盘挂载地址
    #file:///media/cdrom/
    #file:///media/cdrecorder/
    #注释这两个的不存在地址
    gpgcheck=1									#此项为是否检查签名,1为检测, 0为不检测
    enabled=1
    #把enabled=0改为enabled=1, 让这个yum源配置文件生效
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-8		//签名认证信息的路径
    [root@CncLucZK yum.repos.d]# yum repolist
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    参考文献:
    yum是什么,yum源配置
    Linux yum 命令

    下一篇:Linux学习-21-yum命令(查询、安装、升级和卸载软件包)和软件组管理
  • 相关阅读:
    02-Redis持久化、主从复制
    Linux C++ 051-设计模式之中介者模式
    01_imx6ull_linux_c_应用编程指南
    20221108:onnx2caffe错误处理
    语音识别笔记
    注意力机制
    go语言基础语法
    RPC项目解析(1)
    pythonopen文件,取出某列,转化成天,然后和当前时间【从1月1日到现在多少天】做比较,得出不可用百分比
    【SpringBoot | 过滤器/拦截器/AOP/控制器】的区别
  • 原文地址:https://blog.csdn.net/weixin_42045639/article/details/127680021