yum命令参数使用

yum install -y nginx      #安装
yum remove nginx     #卸载
yum update nginx     #更新所有已安装的软件包或指定的nginx软件包
yum downgrade nginx   #降级指定软件包到早期版本
yum list nginx      #列出指定的软件包信息
yum info nginx      # 查看指定软件包的详细信息
yum repolist       #列出当前启用的仓库信息。
yum clean all      #清除所有缓存。
yum makecache      #创建本地缓存。
yum search ifconfig    #搜索与关键字匹配或者命令匹配的软件包。
yum install --nogpgcheck nginx # --nogpgcheck,跳过 GPG 签名检查。
yum check-update       #检查可用更新,不实际安装。
yum deplist nginx      #列出指定软件包的依赖项。

在这里插入图片描述

更换网络yum源

使用阿里云镜像站的源
https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.60bc1b11weddDS
在这里插入图片描述

备份

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

更换源

centos8

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

CentOS 7

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

centos6

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-6.10.repo

centos7 直接复制以下文件至/etc/yum.repos.d/CentOS-Base.repo

[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/contrib/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

相关字段解读

  • [base]、[updates] 和 [extras]:这些是仓库的名称。它们用于在yum命令中标识仓库。例如,要从base仓库中安装软件包,可以使用yum install packageName命令。
  • name:这是对仓库的描述性名称。
  • mirrorlist:这是一个指向CentOS镜像列表的URL。当你使用这个URL时,yum会从列表中选择一个最快的镜像来下载软件包。
  • baseurl:如果你不想使用mirrorlist,你可以使用这个字段直接指定镜像的URL。通常情况下,你会在注释掉的mirrorlist和未注释掉的baseurl之间进行选择。
  • gpgcheck:这个字段确定yum在安装软件包时是否要检查软件包的GPG签名。如果设置为1,yum将检查软件包的签名。如果设置为0,yum不会检查签名。通常情况下,建议将此选项保持为1,以确保从仓库中安装的软件包是经过验证的。
  • gpgkey:这是用于验证仓库中软件包的GPG密钥的路径。在这个例子中,它指向了CentOS 7的GPG密钥文件。
  • enable=1:表示仓库已启用。这意味着YUM会在搜索软件包和执行操作时考虑该仓库中的软件包。如果您想从该仓库中安装、更新或卸载软件包,仓库必须处于启用状态。
  • enable=0:表示仓库已禁用。这意味着YUM将忽略该仓库中的软件包,不会搜索、安装、更新或卸载与该仓库相关的软件包

baseurl 的来源

baseurl 是阿里云官方提供的 Yum 仓库地址,用于 CentOS 7 系统。
CentOS 7 对应的 baseurl 格式:

http://mirrors.aliyun.com/centos/$releasever/os/$basearch/

在这里插入图片描述

  • http://mirrors.aliyun.com/centos/: 表示 阿里云官方的包存储目录。
  • $releasever: 表示为 系统版本的变量。
  • $basearch: 是 Yum 的一个变量,表示系统架构(如 x86_64)。

对于 x86_64 架构的 CentOS 7 系统,实际解析结果为:

http://mirrors.aliyun.com/centos/7/os/x86_64/

gpgkey 的来源

gpgkey 是阿里云官方提供的签名密钥文件,用于验证下载的 RPM 包是否经过官方签名,以确保安全性。
GPG 密钥文件的来源:http://mirrors.aliyun.com/centos/
gpgkey 的具体地址:

http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

在这里插入图片描述

如何确认这些地址的有效性

测试 baseurl:你可以直接访问 baseurl 地址,查看是否能看到包含 RPM 包的文件目录。

http://mirrors.aliyun.com/centos/7/os/x86_64/

测试 gpgkey:直接访问 gpgkey 的 URL,如果返回的是一个密钥文件内容,就说明地址有效。

http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

运行 yum makecache 生成缓存

yum clean all
yum makecache

系统停止维护centos5,后使用yum命令

比如centos5 repo停止维护了,需要更改repo的enable文件为0,否则可能出现无法使用yum情况。
以及如下报错 M2Crypto.SSL.SSLError: sslv3 alert handshake failure

  File "/usr/lib64/python2.4/site-packages/M2Crypto/httpslib.py", line 47, in connect
    self.sock.connect((self.host, self.port))
  File "/usr/lib64/python2.4/site-packages/M2Crypto/SSL/Connection.py", line 174, in connect
    ret = self.connect_ssl()
  File "/usr/lib64/python2.4/site-packages/M2Crypto/SSL/Connection.py", line 167, in connect_ssl
    return m2.ssl_connect(self.ssl, self._timeout)
M2Crypto.SSL.SSLError: sslv3 alert handshake failure

应添加或者变更 enabled=0,这只是可以使yum可用,上传rpm包至服务器进行yum安装,直接使用yum还是要找最新的repo源

[base]
name=CentOS-$releasever - Base - 163.com
baseurl=https://vault.centos.org/5.11/os/$basearch/
gpgcheck=1
gpgkey=http://vault.centos.org/RPM-GPG-KEY-CentOS-5
enabled=0

YUM故障排错

yum list all 有对应包,但是无法安装。大概率是yum本身问题,对yum卸载重装

卸载

rpm -aq|grep yum|xargs rpm -e --nodeps

下载

wget http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm
wget http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
wget http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm
wget http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/python-iniparse-0.4-9.el7.noarch.rpm
wget http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm

重装

rpm -ivh python-iniparse-0.4-9.el7.noarch.rpm
rpm -ivh yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
rpm -ivh yum-3.4.3-168.el7.centos.noarch.rpm --force --nodeps yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm

重新安装对应安装包

yum 配置文件未指向默认yum仓库,无法更新

在这里插入图片描述

vim  /etc/yum.conf
reposdir=/etc/yum.repos.yonyou

可以注释该行 #reposdir=/etc/yum.repos.yonyou
再使用yum可成功执行

在这里插入图片描述

yum install 安装报错

如果基于 centos7.6 或者 centos7.9 系统,用 yum install 安装软件包报错如下:

在这里插入图片描述

yum clean all
yum makecache -y
yum install epel-release -y
yum update -y

yum-config-manager --enable 作用

yum-config-manager --enable 是 yum-utils 工具包提供的一个命令,用于启用 Yum 仓库中的某个指定的 repo 源。以下是具体的功能和用法。

  • 启用被禁用的仓库: 如果某个 Yum 仓库被配置为 enabled=0(禁用),可以使用此命令快速启用。
  • 动态启用仓库: 不修改配置文件的情况下,临时启用某个仓库。

比如某个仓库 epel 被禁用(enabled=0),可以通过以下命令启用:以便安装一些包

yum repolist all
#yum-config-manager --enable <repo-id>
yum-config-manager --enable epel
yum repolist enabled
  • “repo-id”:仓库的唯一标识,可以通过 yum repolist all 列出所有仓库及其状态。
  • –enable:启用指定的仓库。

禁用仓库:如果需要临时禁用某个仓库,可以使用 --disable 参数:

yum-config-manager --disable epel

永久修改仓库状态: yum-config-manager --enable 和 --disable 会修改对应仓库配置文件(/etc/yum.repos.d/*.repo)中的 enabled 值,从而永久生效。

总结

  • yum-config-manager --enable 是一种快捷方式,用于启用指定的 Yum 仓库。
  • 该命令非常适用于需要动态启用或调试仓库时。
  • 配合 yum repolist all,可以快速管理和切换 Yum 仓库的状态。

epel-release 有什么用

  • epel-release 是一个 RPM 软件包,用于在基于 RHEL(Red Hat Enterprise Linux)、CentOS、AlmaLinux、Rocky Linux 等系统上安装和配置 EPEL(Extra Packages for Enterprise Linux)仓库。
  • epel-release 是一个用于快速启用 EPEL 仓库的工具包,其作用是为企业级 Linux 系统提供高质量的附加软件包,满足用户在官方仓库之外的需求。安装 epel-release 后,你可以方便地安装和管理这些额外的软件包,从而显著增强系统功能。

安装方法

yum install epel-release

安装完成后,验证 EPEL 仓库是否已启用:

yum repolist
#epel/x86_64      Extra Packages for Enterprise Linux 7 - x86_64

主要作用

  • 安装 EPEL 仓库配置文件: 安装 epel-release 后会自动生成以下 EPEL 仓库的配置文件:
/etc/yum.repos.d/epel.repo
/etc/yum.repos.d/epel-testing.repo
这些配置文件定义了 EPEL 的源地址及其相关参数(如启用状态、GPG 密钥等)。
  • 添加大量额外的软件包: EPEL 提供了官方仓库中没有的、经常被用户需要的软件包,比如:
htop
nginx
certbot
fail2ban
  • 无需额外依赖: EPEL 仓库中的软件包与系统现有的库完全兼容,避免了依赖冲突问题。
  • 简化软件安装: 安装 epel-release 后,你可以通过 yum 或 dnf 直接从 EPEL 仓库安装软件,无需手动编译或下载。

卸载源码安装的软件

对于通过源码编译安装的软件,卸载步骤如下:

进入软件源码目录
sudo make uninstall

如无uninstall选项,手动删除相关文件和目录

使用rpm卸载软件

对于通过rpm包安装的软件,可以使用以下命令卸载:

rpm -qa | grep vim #查看所有软件包,筛选出和VIM相关的
rpm -e 软件包名

如遇到依赖问题,可以添加–nodeps参数强制卸载:

rpm -e --nodeps 软件包名
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐