• RHCE8 资料整理(六)


    第 6 篇 软件管理

    第 23 章 用rpm管理软件

    详细查看 https://blog.csdn.net/u010230019/article/details/130016072

    rpm全称是redhat package manager,后来改成rpm package manager,这是根据源码包编译出来的包。以vsftpd-3.0.3-33.el8.x86_64.rpm为例,各字段的含义:

    1. vsftpd 包的名称
    2. 3.0.3 版本,即version
    3. 33.el8 小版本号,即release,el8指适用于RHEL8系统
    4. x86_64 指架构,是32位还是64位

    rpm安装命令rpm -ivh 安装包

    rpm安装时已经指定了安装路径,如下:

    [root@node-138 docker]# rpm2cpio docker-1.13.1-205.git7d71120.el7.centos.x86_64.rpm |cpio -id	#解压rpm包
    130330 blocks
    [root@node-138 docker]# tree
    .
    ├── docker-1.13.1-205.git7d71120.el7.centos.x86_64.rpm
    ├── etc
    │   ├── docker
    │   │   ├── certs.d
    │   │   │   ├── redhat.com
    │   │   │   │   └── redhat-ca.crt -> /etc/rhsm/ca/redhat-uep.pem
    │   │   │   ├── redhat.io
    │   │   │   │   └── redhat-ca.crt -> /etc/rhsm/ca/redhat-uep.pem
    │   │   │   └── registry.access.redhat.com
    │   │   │       └── redhat-ca.crt -> /etc/rhsm/ca/redhat-uep.pem
    │   │   ├── daemon.json
    │   │   └── seccomp.json
    │   └── sysconfig
    │       ├── docker-network
    │       └── docker-storage
    ├── usr
    │   ├── bin
    │   │   ├── docker-containerd-current
    │   │   ├── docker-containerd-shim-current
    │   │   ├── docker-ctr-current
    │   │   ├── dockerd-current
    │   │   └── docker-storage-setup -> /usr/bin/container-storage-setup
    │   ├── lib
    │   │   ├── systemd
    │   │   │   └── system
    │   │   │       ├── docker-cleanup.service
    │   │   │       ├── docker-cleanup.timer
    │   │   │       ├── docker.service
    │   │   │       └── docker-storage-setup.service
    │   │   └── udev
    │   │       └── rules.d
    │   │           └── 80-docker.rules
    │   ├── libexec
    │   │   └── docker
    │   │       ├── docker-init-current
    │   │       ├── docker-proxy-current
    │   │       └── docker-runc-current
    │   └── share
    │       ├── bash-completion
    │       │   └── completions
    │       │       └── docker
    │       ├── doc
    │       │   └── docker-1.13.1
    │       │       ├── AUTHORS
    │       │       ├── CHANGELOG.md
    │       │       ├── CONTRIBUTING.md
    │       │       ├── MAINTAINERS
    │       │       ├── NOTICE
    │       │       ├── README.md
    │       │       └── README-vim-syntax.md
    │       ├── fish
    │       │   └── vendor_completions.d
    │       │       └── docker.fish
    │       ├── licenses
    │       │   └── docker-1.13.1
    │       │       ├── LICENSE
    │       │       └── LICENSE-vim-syntax
    │       ├── man
    │       │   ├── man1
    ...
    │       │   │   └── docker-wait.1.gz
    │       │   ├── man5
    │       │   │   ├── docker-config-json.5.gz
    │       │   │   └── Dockerfile.5.gz
    │       │   └── man8
    │       │       └── dockerd.8.gz
    │       ├── vim
    │       │   └── vimfiles
    │       │       ├── doc
    │       │       │   └── dockerfile.txt
    │       │       ├── ftdetect
    │       │       │   └── dockerfile.vim
    │       │       └── syntax
    │       │           └── dockerfile.vim
    │       └── zsh
    │           └── site-functions
    │               └── _docker
    └── var
        └── lib
            └── docker
    
    39 directories, 87 files
    
    • 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
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86

    可以看到,我们安装rpm包时,它会把包中的内容安装这个结构拷贝到系统,所以安装的路径都是安排好的。

    23.1 rpm查询

    如果需要查询已经安装过的软件包的信息,rpm第一个选项需要使用-q,表示查询的意思,查询所有安装使用rpm -qa

    查询已安装的某个软件版本,如下:

    [root@node-138 docker]# rpm -qa  vsftpd
    vsftpd-3.0.2-29.el7_9.x86_64
    #或
    [root@node-138 docker]# rpm -qa|grep vsftpd
    vsftpd-3.0.2-29.el7_9.x86_64
    
    • 1
    • 2
    • 3
    • 4
    • 5

    查询安装某个软件之后所生成的文件rpm -ql 包名,如下

    [root@node-138 docker]# rpm -ql vsftpd
    /etc/logrotate.d/vsftpd
    /etc/pam.d/vsftpd
    /etc/vsftpd
    /etc/vsftpd/ftpusers
    /etc/vsftpd/user_list
    /etc/vsftpd/vsftpd.conf
    /etc/vsftpd/vsftpd_conf_migrate.sh
    /usr/lib/systemd/system-generators/vsftpd-generator
    /usr/lib/systemd/system/vsftpd.service
    /usr/lib/systemd/system/vsftpd.target
    /usr/lib/systemd/system/vsftpd@.service
    /usr/sbin/vsftpd
    ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    这样就可以看到软件安装位置。

    查询软件包生成的配置文件rpm -qc 包名,如下:

    [root@node-138 docker]# rpm -qc vsftpd
    /etc/logrotate.d/vsftpd
    /etc/pam.d/vsftpd
    /etc/vsftpd/ftpusers
    /etc/vsftpd/user_list
    /etc/vsftpd/vsftpd.conf
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    查询包的信息用rpm -qi 包名,如下:

    [root@node-138 docker]# rpm -qi vsftpd
    Name        : vsftpd
    Version     : 3.0.2
    Release     : 29.el7_9
    Architecture: x86_64
    Install Date: Thu 17 Aug 2023 09:10:25 AM CST
    Group       : System Environment/Daemons
    Size        : 361349
    License     : GPLv2 with exceptions
    Signature   : RSA/SHA256, Fri 11 Jun 2021 11:06:15 PM CST, Key ID 24c6a8a7f4a80eb5
    Source RPM  : vsftpd-3.0.2-29.el7_9.src.rpm
    Build Date  : Thu 10 Jun 2021 12:15:50 AM CST
    Build Host  : x86-02.bsys.centos.org
    Relocations : (not relocatable)
    Packager    : CentOS BuildSystem <http://bugs.centos.org>
    Vendor      : CentOS
    URL         : https://security.appspot.com/vsftpd.html
    Summary     : Very Secure Ftp Daemon
    Description :
    vsftpd is a Very Secure FTP daemon. It was written completely from
    scratch.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    查询某个文件由哪个软件包生成的用rpm -qf /path/file,如下

    [root@node-138 docker]# rpm -qf /usr/sbin/vsftpd
    vsftpd-3.0.2-29.el7_9.x86_64
    [root@node-138 docker]# rpm -qf /etc/shadow
    setup-2.8.71-11.el7.noarch
    
    • 1
    • 2
    • 3
    • 4

    可以看到shadow使用setup这个包生成的

    以上是对已安装的软件包进行查询,如果要查询未安装的软件包,则需要加上-p,如下:

    [root@node-138 docker]# rpm -qcp docker-1.13.1-205.git7d71120.el7.centos.x86_64.rpm
    /etc/docker/daemon.json
    /etc/docker/seccomp.json
    /etc/sysconfig/docker-network
    /etc/sysconfig/docker-storage
    
    • 1
    • 2
    • 3
    • 4
    • 5

    23.2 rpm卸载

    卸载软件包用rpm -e 软件名,如下

    [root@node-138 docker]# rpm -e vsftpd
    warning: /etc/pam.d/vsftpd saved as /etc/pam.d/vsftpd.rpmsave
    [root@node-138 docker]# rpm -qa vsftpd
    
    • 1
    • 2
    • 3

    强制安装,场景:如果提示软件已经安装过了,无法再次安装,或者某个配置文件被误删,此时可以加上--force选项强制安装

    rpm -ivh docker-1.13.1-205.git7d71120.el7.centos.x86_64.rpm --force
    
    • 1

    此时会重新生成被误删的文件,但其他文件即使做了修改也不会被覆盖替换

    23.3 软件包升级

    所谓升级或更新,即卸载旧版本软件,然后安装新版本软件包。如果安装路径不同,则可以共存,如果相同则会冲突,此时可以使用rpm -Uvh 软件包进行更新,如:

    rpm -Uvh docker-1.13.1-205.git7d71120.el7.centos.x86_64.rpm 
    
    • 1

    对于内核来说,不同的版本安装路径是不一样的,所以可同时安装多个版本而不会产生冲突。所以更新内核建议使用rpm -ivh而不是rpm -Uvh。因为rpm -Uvh会卸载旧版本内核,如果新版本内核有问题则无法进入系统。

    23.4 rpm验证

    当我们安装一个软件包之后会产生许多文件,想要判断这些文件是否被修改过,可以使用rpm -V命令,如

    [root@node-138 docker]# rpm -V docker
    S.5....T.  c /etc/sysconfig/docker-storage
    [root@node-138 docker]# rpm -V openssh
    [root@node-138 docker]# rpm -qc openssh
    /etc/ssh/moduli
    
    • 1
    • 2
    • 3
    • 4
    • 5

    可以看到/etc/sysconfig/docker-storage被修改过

    • S 指size大小
    • 5 指MD5值
    • T 指时间
    • c 指此文件是docker的配置文件

    可以看到/etc/sysconfig/docker-storage被修改过,我们再修改openssh的配置文件,例如

    [root@node-138 docker]# touch /etc/ssh/moduli
    [root@node-138 docker]# rpm -V openssh
    .......T.  c /etc/ssh/moduli
    
    • 1
    • 2
    • 3

    可以看到/etc/ssh/moduli的时间发生了变化

    红帽发行的每一个数据包都对他做了数字签名,以证明该包是红帽官方的,需要再本机用红帽密钥来验证。首先检查本机是否安装了红帽的密钥,命令如下:

    [root@node-138 docker]# rpm -qa |grep pubkey
    gpg-pubkey-dc6315a3-6091b7b3
    gpg-pubkey-621e9f35-58adea78
    gpg-pubkey-3e1ba8d5-558ab6a8
    gpg-pubkey-352c64e5-52ae6884
    gpg-pubkey-b6792c39-53c4fbdd
    gpg-pubkey-f4a80eb5-53a7ff4b
    gpg-pubkey-a621e701-63bdbc3d
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    如果没有安装,则需要手动导入,如:

    [root@server opt]# rpm -qa |grep pubkey
    [root@server opt]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
    [root@server opt]# rpm -qa |grep pubkey
    gpg-pubkey-fd431d51-4ae0493b
    gpg-pubkey-5a6340b3-6229229e
    
    • 1
    • 2
    • 3
    • 4
    • 5

    验证是否为红帽发布的包,即是否是红帽的数字签名,如下:

    [root@server opt]# rpm -K dnf-4.14.0-2.fc38.noarch.rpm
    dnf-4.14.0-2.fc38.noarch.rpm: digests SIGNATURES NOT OK
    
    • 1
    • 2

    第 24 章 用yum/dnf管理软件包

    使用rpm安装软件包时经常会遇到一个问题就是 包依赖,所谓的包依赖就是在安装A时必须把B和C安装上去,如果用rpm一个个安装是非常困难的,这里就可以使用yum或dnf来解决。yum其实是软连接到dnf命令上的,所以输入dnf或yum都可以。

    [root@server opt]# ll /usr/bin/yum
    lrwxrwxrwx. 1 root root 5 Jan 19  2023 /usr/bin/yum -> dnf-3
    
    • 1
    • 2

    REHL8/Centos8以前版本,yum是单独的命令

    [root@node-138 docker]# uname -r
    3.10.0-1160.92.1.el7.x86_64
    [root@node-138 docker]# ll /usr/bin/yum
    -rwxr-xr-x. 1 root root 801 Oct  2  2020 /usr/bin/yum
    
    • 1
    • 2
    • 3
    • 4

    24.1 yum架构介绍

    在这里插入图片描述
    在yum服务器上的某个目录中存储了大量的软件包,然后通过ftp或http把这些目录进行共享,使得客户端可以通过ftp或http能够访问到这些目录。

    如果按照软A,而A依赖B、C、X,而指定的yum服务器只有B、C,则需要额外指定X的源,否则会按照失败

    24.2 用光盘搭建yum源

    假设光盘中已经包含了最常用的软件包,就需要把关盘的内容作为源,使用vsftpd将光盘内容共享。

    修改vsftp的配置文件/etc/vsftpd/vsftpd.conf中的annoymous_enable选项,如下

    annoymous_enable=YES
    ...
    pasv_min_port=10010
    pasv_max_port=10020
    
    • 1
    • 2
    • 3
    • 4

    vsftp的被动模式端口区间

    启动vsftpd,并设置防火墙

    firewall-cmd --add-port=20-21/tcp --permanent
    firewall-cmd --add-port=10010-10020/tcp --permanent
    firewall-cmd --reload
    
    • 1
    • 2
    • 3

    设置SELinux相关的布尔值,命令如下

    setsebool -P ftpd_full_access 1
    
    • 1

    创建挂载目录

    mkdir /var/ftp/dvd
    mount /dev/cdrom /var/ftp/dvd
    
    • 1
    • 2

    可修改/etc/fstab进行持久化和自动挂载

    此时客户端不能直接把此目录作为源使用,因为服务器需要配置每个包和其他包之间的依赖关系,系统会把某个目录中的rpm包的元数据信息放在repodata目录中。但是在/var/ftp/dvd中并没有repodata目录,一般dvd光盘中都会有AppStreamBaseOS目录,其内包含了repodata各自的rpm信息。

    所以当前服务器的源,分别是/var/ftp/dvd/AppStream/var/ftp/dvd/BaseOS,客户端可以通过ftp://192.168.20.101/dvd/AppStreamftp://192.168.20.101/dvd/BaseOS进行访问

    24.3 创建私有仓库

    我们把光盘源挂载到/mnt目录上,并设置自动挂载,这样访问访问/mnt就是访问光盘了,创建/etc/yum.repos.d/aa.repo,内容如下:

    cat /etc/yum.repos.d/aa.repo
    [aa]
    name=aa
    baseurl=file:///mnt/AppStream
    enabled=1
    gpgcheck=0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    这里的file:///包含3个/,其中前两个类似于http://这样的通用写法,而第三个/表示绝对路径

    可以通过createrepo工具生成repodata,例如

    createrepo -v /var/ftp/myrepo/
    
    • 1

    就会在myrepo目录中生成repodata,里面包含了myrepo中所有的rpm包的信息,那么/var/ftp/myrepo也可作为一个源使用

    24.4 yum客户端配置

    客户端要安装软件包必须指定使用哪些源,指定源的方法是在目录/etc/yum.repos.d/创建后缀为repo的文件[必须为repo为后缀],本地配置格式如下:

    [名称] --- 用于标注不同的源
    name=  --- 注释信息
    baseurl= ---指定源的URL地址
    enabled= --用于指定是否启用这个源,值为0或1 enabled也可写为enable
    					0---不使用此源
    					1---使用
    gpgcheck= --用于指定安装的软件是否进行数字签名验证,值为0或1
    					0---不验证
    					1---验证
    gpgkey=/path/ 如果上面设置gpgcheck=1,则需要使用此选项的公钥
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    例如:

    [centos-kernel]
    name=CentOS LTS Kernels for $basearch
    mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=kernel&infra=$infra
    #baseurl=http://mirror.centos.org/altarch/7/kernel/$basearch/
    enabled=0
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    24.5 yum基本使用

    查询当前使用的源,使用yum repolist

    [root@server opt]# yum repolist
    Updating Subscription Management repositories.
    ...
    repo id                                          repo name
    AppStream                                        CentOS-8.5.2111 - AppStream - mirrors.aliyun.com
    BaseOS                                           BaseOS
    aa                                               aa
    base                                             CentOS-8.5.2111 - Base - mirrors.aliyun.com
    extras                                           CentOS-8.5.2111 - Extras - mirrors.aliyun.com
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    当源内容发生变化,使用yum clean all清空缓存

    yum clean all
    
    • 1

    重建缓存,使用yum makecache

    yum makecache
    
    • 1
    24.5.1 查询

    查询yum源是否存在某个包,可以使用yum search 或 yum list,例如

    [root@node-138 docker]# yum search lrzsz
    ...
    ========================================================== N/S matched: lrzsz ==========================================================
    lrzsz-debuginfo.x86_64 : Debug information for package lrzsz
    lrzsz.x86_64 : The lrz and lsz modem communications programs
    
      Name and summary matches only, use "search all" for everything.
    [root@node-138 docker]# yum list lrzsz
    ...
    Available Packages
    lrzsz.x86_64                                                     0.12.20-36.el7                                                     base
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    yum search是通过包名查找是否包含lrzsz,如果输入yum search lrzs也可以找到,也就是后面可以是不完整的包名,但yum list不可以,必须是完整的包名,否则查询不到

    [root@node-138 docker]# yum list lrzs
    ...
    Error: No matching Packages to list
    
    • 1
    • 2
    • 3

    yum search无法判断包是否已安装,但是通过yum list则可以,如下:

    [root@node-138 docker]# yum list lrzsz
    Loaded plugins: auto-update-debuginfo, fastestmirror, product-id, search-disabled-repos
    Loading mirror speeds from cached hostfile
     * base: mirrors.jlu.edu.cn
     * epel: mirrors.bfsu.edu.cn
     * epel-debuginfo: mirrors.bfsu.edu.cn
     * extras: mirrors.jlu.edu.cn
     * updates: mirrors.bfsu.edu.cn
    Installed Packages
    lrzsz.x86_64                                                    0.12.20-36.el7                                                     @base
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    当我们安装完该软件后,再使用yum list查询的时候,提示信息从Available Packages变成了Installed Packages

    24.5.2 安装与卸载

    安装软件使用yum install [-y] 包名-y表示在安装过程中确定信息yes

    卸载软件包用yum remove [-y] 包名

    更新软件包,使用yum update [-y] 包名

    yum install -y lrzsz
    yum update -y lrzsz
    yum remove -y lrzsz
    
    • 1
    • 2
    • 3
    24.5.3 下载

    使用yum安装软件时,可以只下载包到本地缓存而不安装,格式

    [root@node-138 docker]# yum install -y httpd --downloadonly --downloaddir ./
    ...
    Total                                                                                                   5.7 MB/s | 2.7 MB  00:00:00
    exiting because "Download Only" specified
    [root@node-138 docker]# ll
    ...
    -rw-r--r-- 1 root root  2849200 May 30 23:15 httpd-2.4.6-99.el7.centos.1.x86_64.rpm
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    该命令会把httpd及其依赖包全部下载

    24.5.4 查询缺失命令

    命令不同于包名,当我们执行某个命令却发现没有时,可以通过yum whatprovides */conmand进行查询,如

    yum whatprovides */smbclient
    samba-client-4.14.5-2.el8.x86_64 : Samba client programs
    Repo        : base
    Matched from:
    Filename    : /usr/bin/smbclient
    
    • 1
    • 2
    • 3
    • 4
    • 5

    这里*/是路径通配符,即不管smbclient在哪个目录

    24.6 组的使用

    前面安装软件都是一个个安装的,假设现在想在服务器上实现某个“功能”,这个功能需要很多个包,但不清楚需要安装哪些包,该怎么办?
    可以利用yum中的group功能,例如:

    [root@node-138 docker]# yum grouplist
    Available Environment Groups:
       Minimal Install
       Compute Node
       Infrastructure Server
       File and Print Server
       Cinnamon Desktop
       MATE Desktop
       Basic Web Server
       Virtualization Host
       Server with GUI
       GNOME Desktop
       KDE Plasma Workspaces
       Development and Creative Workstation
    Available Groups:
       Cinnamon
       Compatibility Libraries
       Console Internet Tools
       Development Tools
       Educational Software
       Electronic Lab
       Fedora Packager
       General Purpose Desktop
       Graphical Administration Tools
       Haskell
       LXQt Desktop
       Legacy UNIX Compatibility
       MATE
       Milkymist
       Scientific Support
       Security Tools
       Smart Card Support
       System Administration Tools
       System Management
       TurboGears application framework
       Xfce
    Done
    
    • 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
    • 36
    • 37

    这里显示的可用组是系统没有安装或者组中的包没有安装完全,已安装组说明这个组已经安装完整了。

    如果要查询某个组的信息,可以使用yum groupinfo 组名,例如:

    [root@node-138 docker]# yum groupinfo "Minimal Install"
    Loaded plugins: auto-update-debuginfo, fastestmirror, product-id, search-disabled-repos
    There is no installed groups file.
    Maybe run: yum groups mark convert (see man yum)
    Loading mirror speeds from cached hostfile
     * base: mirrors.jlu.edu.cn
     * epel: mirrors.tuna.tsinghua.edu.cn
     * epel-debuginfo: mirrors.tuna.tsinghua.edu.cn
     * extras: mirrors.aliyun.com
     * updates: mirrors.huaweicloud.com
    
    Environment Group: Minimal Install
     Environment-Id: minimal
     Description: Basic functionality.
     Mandatory Groups:
       +core
     Optional Groups:
       +debugging
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    可以使用yum groupinstall 组名安装某个组,例如:

    yum groupinstall "Minimal Install" -y
    
    • 1

    通过yum groupremove 组名卸载某个组

    yum groupremove "Minimal Install"
    
    • 1

    24.7 使用第三方yum源

    添加第三方的yum源,对于CentOS或者REHL来说,最常用的源就是epel了,如下

    [root@node-138 yum.repos.d]# yum list ansible
    Loaded plugins: auto-update-debuginfo, fastestmirror, product-id, search-disabled-repos
    Loading mirror speeds from cached hostfile
     * base: mirrors.jlu.edu.cn
     * extras: mirrors.aliyun.com
     * updates: mirrors.huaweicloud.com
    Error: No matching Packages to list
    [root@node-138 yum.repos.d]# yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
    [root@node-138 yum.repos.d]# sed -i 's|^#baseurl=http://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel.repo
    [root@node-138 yum.repos.d]# yum list ansible
    Loaded plugins: auto-update-debuginfo, fastestmirror, product-id, search-disabled-repos
    ...
    Available Packages
    ansible.noarch                                                     2.9.27-1.el7                                                     epel
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
  • 相关阅读:
    redis 启动,关闭,查看状态
    牛客刷题<11>4位数值比较器电路
    经纬度坐标转换为工程坐标
    强化学习 double DQN 代码注释解析
    CC21 包围区域
    创建Vue项目的常用npm插件总结
    Cell|易基因微量DNA甲基化测序助力中国科学家成功构建胚胎干细胞嵌合体猴,登上《细胞》封面
    Java方法的重载
    SpringBoot项目入门: IDEA 创建SpringBoot项目
    香港主机免备案吗?为什么不用备案?
  • 原文地址:https://blog.csdn.net/u010230019/article/details/134414047