当前位置:   article > 正文

yum源配置,看这一篇就够了!

yum源配置

一、yum源是什么

yum(全称Yellow Dog Updater)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM 包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理包之间的依赖关系,并且一次安装所有依赖的软件包。

二、yum源的作用

  1. yum源是Linux系统中的软件管理仓库,可以完成安装、卸载、自动升级rpm软件包等任务。
  2. yum源能够自动查找并解决rpm包之间的依赖关系,并一次安装所有依赖的相关软件包,无需管理员手动去安装每个rpm包。
  3. yum源也能够在大量Linux服务器中,缓解软件安装、升级等对Internet的依赖。
  4. yum源最大的好处就是自动解决依赖关系,联网装包非常方便,要注意的是在卸载时也会卸载的很干净,依赖的所有软件都会卸载。

三、镜像站点

1、国内企业镜像站

阿里开源镜像站:阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区
华为开源镜像站:https://mirrors.huaweicloud.com/home
腾讯开源镜像站:腾讯软件源
网易开源镜像站:欢迎访问网易开源镜像站
搜狐开源镜像站:Index of /
平安开源镜像站:https://mirrors.pinganyun.com/

2、国内高校镜像站

清华大学开源镜像站:清华大学开源软件镜像站 | Tsinghua Open Source Mirror
南京大学开源镜像站:NJU Mirror

四、yum源部署

1、准备工作

  1. 系统环境:
  2. CentOS Linux 服务器
  3. 系统版本:CentOS Linux release 7.9.2009 (Core)
  4. 内核版本:3.10.0-1160.102.1.el7.x86_64

2、安装wget包,以防下载时提示未找到命令...

[root@hzk /]# yum -y install wget

3、备份本地yum源

  1. # 创建备份目录
  2. [root@hzk /]# mkdir -p /etc/yum.repos.d/backup/
  3. # 备份本地yum包
  4. [root@hzk /]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/

4、查看系统版本

  1. [root@hzk /]# cat /etc/redhat-release
  2. CentOS Linux release 7.9.2009 (Core)

5、配置阿里云yum源、epel库

  1. # 下载对应系统版本的阿里云yum源
  2. [root@hzk /]# wget -O /etc/yum.repos.d/CentOs-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  3. # 下载epel开源发行软件包版本库,可以提供额外的软件包
  4. [root@hzk /]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

6、重新生成yum缓存

  1. # 删除缓存数据
  2. yum clean all
  3. # 创建元数据缓存
  4. yum makecache

7、yum常用命令

  1. # 下载软件包,-y表示安装过程中回答全部问题为'是'
  2. yum -y install [软件包名]
  3. # 删除软件包
  4. yum -y remove [软件包名]
  5. # 显示已配置的源
  6. yum repolist
  7. # 更新软件包
  8. yum update
  9. # 查看yum更多命令
  10. yum -h 或 yum --help

五、一键配置yum源

1、编辑yum配置脚本

  1. # 创建 yumtest.sh 文件 ,并复制以下脚本内容
  2. [root@hzk /]# vim /etc/yum.repos.d/yumtest.sh

2、配置CentOS 7的yum源

  1. #!/bin/bash
  2. # 检查wget工具是否安装
  3. if ! command -v wget &> /dev/null; then
  4. echo "wget未安装,执行yum -y install wget 安装"
  5. exit 1
  6. fi
  7. # 检查网络连接
  8. ping -c 1 wwww.baidu.com > /dev/null 2>&1
  9. if [ $? -ne 0 ]; then
  10. echo "没有网络连接,脚本退出。"
  11. exit 1
  12. fi
  13. # 创建备份目录
  14. mkdir -p /etc/yum.repos.d/backup
  15. # 备份本地原有CentOS、epel库的yum源
  16. cd /etc/yum.repos.d/
  17. if [ -f "*repo" ]; then
  18. echo "repo文件存在,开始备份..."
  19. rm -f /etc/yum.repos.d/backup/*repo # 删除旧的备份文件
  20. mv /etc/yum.repos.d/CentOS*.repo /etc/yum.repos.d/backup/
  21. mv /etc/yum.repos.d/epel*.repo /etc/yum.repos.d/backup/
  22. echo "备份完成!"
  23. else
  24. echo "repo文件不存在,准备新建CentOS 7 yum源"
  25. fi
  26. # 获取系统类型和版本ID
  27. distro=$(cat /etc/os-release | grep '^ID=' | cut -d '=' -f 2 | tr -d '"')
  28. osversion=$(cat /etc/os-release | grep '^VERSION_ID' | cut -d '=' -f 2 | tr -d '"')
  29. # 判断系统类型和版本并配置yum源
  30. if [ "$distro" = "centos" ]; then
  31. if [ "$osversion" = "7" ]; then
  32. # CentOS 7 repo
  33. wget -q -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo >/dev/null 2>&1
  34. # epel 7 repo
  35. wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo >/dev/null 2>&1
  36. if [ $? -eq 0 ]; then # 检查wget是否成功
  37. echo "CentOS 7 yum源配置完成。"
  38. # 更新yum软件包仓库
  39. yum repolist
  40. yum clean all
  41. yum makecache
  42. else
  43. echo "无法获取CentOS 7 yum源,请检查网络或源地址。"
  44. fi
  45. else
  46. echo "非 CentOS 7 系统,请手动添加yum源。"
  47. fi
  48. else
  49. echo "非 CentOS 系统,请手动添加yum源。"
  50. fi

3、配置其它版本的yum源

  1. #!/bin/bash
  2. # 检查yum是否安装
  3. # command -v [命令名]:显示指定命令是否已安装及其路径。
  4. # 检查wget工具是否安装
  5. if ! command -v wget &> /dev/null; then
  6. echo "wget未安装,执行yum -y install wget 安装"
  7. exit 1
  8. fi
  9. # 检查网络连接
  10. ping -c 1 wwww.baidu.com > /dev/null 2>&1
  11. if [ $? -ne 0 ]; then
  12. echo "没有网络连接,脚本退出。"
  13. exit 1
  14. fi
  15. # 创建备份目录
  16. mkdir -p /etc/yum.repos.d/backup
  17. # 备份本地原有CentOS、epel库的yum源
  18. mv /etc/yum.repos.d/CentOS*.repo /etc/yum.repos.d/backup/
  19. mv /etc/yum.repos.d/epel*.repo /etc/yum.repos.d/backup/
  20. # 获取系统类型
  21. distro=`cat /etc/os-release | grep '^ID='| cut -d '=' -f 2 | tr -d '"'`
  22. # 获取系统版本ID
  23. osversion=`cat /etc/os-release | grep '^VERSION_ID' | cut -d '=' -f 2 | tr -d '"'`
  24. if [ "$distro" = "centos" ]; then
  25. # 判断 CentOS 系统版本,安装CentOS不同版本yum源
  26. case ${osversion} in
  27. 6)
  28. # CentOS 6 官方源已下线,建议使用centos-vault源
  29. wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-6.10.repo
  30. # epel 6 官方源已下线,官方建议使用epel-archive源
  31. wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-archive-6.repo
  32. ;;
  33. 7)
  34. # 下载 CentOS 7 阿里云yum源
  35. wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
  36. # 下载 epel 7 阿里云yum源
  37. wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
  38. ;;
  39. 8)
  40. # CentOS 8 官方源已下线,官方建议使用centos-vault源
  41. wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
  42. # 下载 epel-release-latest-8 阿里云yum源
  43. yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
  44. # 将 repo 配置中的地址替换为阿里云镜像站地址
  45. sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*
  46. sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*
  47. ;;
  48. *)
  49. echo "请检查系统版本,手动安装!"
  50. ;;
  51. esac
  52. # 更新软件包仓库
  53. yum clean all
  54. yum makecache
  55. else
  56. echo "非CentOS系统,请手动添加yum源。"
  57. fi

4、执行脚本

  1. # 执行脚本
  2. [root@hzk /]# bash /etc/yum.repos.d/yumtest.sh
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/851284
推荐阅读
相关标签
  

闽ICP备14008679号