#!/bin/bash ## Author: SuperManito ## Modified: 2023-05-07 ## License: MIT ## Github: https://github.com/SuperManito/LinuxMirrors ## Website: https://linuxmirrors.cn ## 软件源列表 # 国内格式:"软件源名称@软件源地址" mirror_list_default=( "阿里云@mirrors.aliyun.com" "腾讯云@mirrors.tencent.com" "华为云@repo.huaweicloud.com" "网易@mirrors.163.com" "搜狐@mirrors.sohu.com" "清华大学@mirrors.tuna.tsinghua.edu.cn" "北京大学@mirrors.pku.edu.cn" "浙江大学@mirrors.zju.edu.cn" "南京大学@mirrors.nju.edu.cn" "重庆大学@mirrors.cqu.edu.cn" "兰州大学@mirror.lzu.edu.cn" "上海交通大学@mirror.sjtu.edu.cn" "哈尔滨工业大学@mirrors.hit.edu.cn" "中国科学技术大学@mirrors.ustc.edu.cn" "中国科学院软件研究所@mirror.iscas.ac.cn" ) # 海外格式:"洲 · 软件源名称 · 国家/地区@软件源地址",修改前请先前往官网阅读添加规范 mirror_list_abroad=( "亚洲 · 科盈电信 · 香港@mirror.hkt.cc" "亚洲 · xTom · 香港@mirrors.xtom.hk" "亚洲 · 01Link · 香港@mirror.01link.hk" "亚洲 · 新加坡国立大学(NUS) · 新加坡@download.nus.edu.sg/mirror" "亚洲 · SG.GS · 新加坡@mirror.sg.gs" "亚洲 · Neo Soon Keat · 新加坡@mirror.soonkeat.sg" "亚洲 · 自由软件实验室(NCHC) · 台湾@free.nchc.org.tw" "亚洲 · OSS Planet · 台湾@mirror.ossplanet.net" "亚洲 · 国立阳明交通大学 · 台湾@linux.cs.nctu.edu.tw" "亚洲 · 淡江大学 · 台湾@ftp.tku.edu.tw" "亚洲 · AniGil Linux Archive · 韩国@mirror.anigil.com" "亚洲 · 工业网络安全中心(ICSCoE) · 日本@ftp.udx.icscoe.jp/Linux" "亚洲 · Internet Initiative Japan(IIJ) · 日本@ftp.iij.ad.jp/pub/linux" "亚洲 · 北陆先端科学技术大学院大学(JAIST) · 日本@ftp.jaist.ac.jp/pub/Linux" "亚洲 · 山形大学 · 日本@linux2.yz.yamagata-u.ac.jp/pub/Linux" "亚洲 · xTom · 日本@mirrors.xtom.jp" "亚洲 · GB Network Solutions · 马来西亚@mirrors.gbnetwork.com" "亚洲 · 孔敬大学 · 泰国@mirror.kku.ac.th" "亚洲 · RISE · 菲律宾@mirror.rise.ph" "欧洲 · Vorboss Ltd · 英国@mirror.vorboss.net" "欧洲 · QuickHost · 英国@mirror.quickhost.uk" "欧洲 · dogado · 德国@mirror.dogado.de" "欧洲 · xTom · 德国@mirrors.xtom.de" "欧洲 · 亚琛工业大学(RWTH Aachen) · 德国@ftp.halifax.rwth-aachen.de" "欧洲 · 德累斯顿大学(AG DSN) · 德国@ftp.agdsn.de" "欧洲 · CCIN2P3 · 法国@mirror.in2p3.fr/pub/linux" "欧洲 · Ircam · 法国@mirrors.ircam.fr/pub" "欧洲 · Crans · 法国@eclats.crans.org" "欧洲 · CRIHAN · 法国@ftp.crihan.fr" "欧洲 · xTom · 荷兰@mirrors.xtom.nl" "欧洲 · DataPacket · 荷兰@mirror.datapacket.com" "欧洲 · Linux Kernel · 荷兰@eu.edge.kernel.org" "欧洲 · xTom · 爱沙尼亚@mirrors.xtom.ee" "欧洲 · netsite · 丹麦@mirror.netsite.dk" "欧洲 · Dotsrc · 丹麦@mirrors.dotsrc.org" "欧洲 · Academic Computer Club · 瑞典@mirror.accum.se" "欧洲 · Lysator · 瑞典@ftp.lysator.liu.se" "欧洲 · Yandex · 俄罗斯@mirror.yandex.ru" "欧洲 · ia64 · 俄罗斯@mirror.linux-ia64.org" "欧洲 · Truenetwork · 俄罗斯@mirror.truenetwork.ru" "欧洲 · Belgian Research Network · 比利时@ftp.belnet.be/mirror" "欧洲 · 克里特大学计算机中心 · 希腊@ftp.cc.uoc.gr/mirrors/linux" "欧洲 · 马萨里克大学信息学院 · 捷克@ftp.fi.muni.cz/pub/linux" "欧洲 · 捷克理工大学学生会俱乐部(Silicon Hill) · 捷克@ftp.sh.cvut.cz" "欧洲 · Vodafone · 捷克@mirror.karneval.cz/pub/linux" "欧洲 · CZ.NIC · 捷克@mirrors.nic.cz" "欧洲 · 苏黎世联邦理工学院 · 瑞士@mirror.ethz.ch" "北美 · Linux Kernel · 美国@mirrors.kernel.org" "北美 · 麻省理工学院(MIT) · 美国@mirrors.mit.edu" "北美 · 普林斯顿大学数学系 · 美国@mirror.math.princeton.edu/pub" "北美 · 俄勒冈州立大学开源实验室 · 美国@ftp-chi.osuosl.org/pub" "北美 · Fremont Cabal Internet Exchange(FCIX) · 美国@mirror.fcix.net" "北美 · xTom · 美国@mirrors.xtom.com" "北美 · Steadfast · 美国@mirror.steadfast.net" "北美 · 不列颠哥伦比亚大学 · 加拿大@mirror.it.ubc.ca" "北美 · GoCodeIT · 加拿大@mirror.xenyth.net" "北美 · Switch · 加拿大@mirrors.switch.ca" "南美 · PoP-SC · 巴西@mirror.pop-sc.rnp.br/mirror" "南美 · 蓬塔格罗萨州立大学 · 巴西@mirror.uepg.br" "南美 · UFSCar · 巴西@mirror.ufscar.br" "南美 · Sysarmy Community · 阿根廷@mirrors.eze.sysarmy.com" "大洋 · Fremont Cabal Internet Exchange(FCIX) · 澳大利亚@gsl-syd.mm.fcix.net" "大洋 · AARNet · 澳大利亚@mirror.aarnet.edu.au/pub" "大洋 · DataMossa · 澳大利亚@mirror.datamossa.io" "大洋 · Amaze · 澳大利亚@mirror.amaze.com.au" "大洋 · xTom · 澳大利亚@mirrors.xtom.au" "大洋 · Over the Wire · 澳大利亚@mirror.overthewire.com.au" "大洋 · Free Software Mirror Group · 新西兰@mirror.fsmg.org.nz" "非洲 · Liquid Telecom · 肯尼亚@mirror.liquidtelecom.com" "非洲 · Dimension Data · 南非@mirror.dimensiondata.com" ) ## 配置需要区分公网地址和内网地址的软件源(不分地域) # 配置方法:需要同时在两个数组变量中分别定义软件源地址,并且保证排列顺序一致 # 工作原理:当检测到用户所选择的软件源地址在 “软件源公网地址列表” 中时就会询问是否切换为内网地址,然后从 “软件源内网地址列表” 相同的位置提取内网地址 # 软件源公网地址列表 mirror_list_extranet=( "mirrors.aliyun.com" "mirrors.tencent.com" "repo.huaweicloud.com" ) # 软件源内网地址列表 mirror_list_intranet=( "mirrors.cloud.aliyuncs.com" "mirrors.tencentyun.com" "mirrors.myhuaweicloud.com" ) ############################################################################## ## 定义系统判定变量 SYSTEM_DEBIAN="Debian" SYSTEM_UBUNTU="Ubuntu" SYSTEM_KALI="Kali" SYSTEM_REDHAT="RedHat" SYSTEM_RHEL="Red Hat Enterprise Linux" SYSTEM_CENTOS="CentOS" SYSTEM_CENTOS_STREAM="CentOS Stream" SYSTEM_ROCKY="Rocky" SYSTEM_ALMA="AlmaLinux" SYSTEM_FEDORA="Fedora" SYSTEM_OPENEULER="openEuler" SYSTEM_OPENSUSE="openSUSE" SYSTEM_ARCH="Arch" ## 定义目录和文件 File_LinuxRelease=/etc/os-release File_RedHatRelease=/etc/redhat-release File_openEulerRelease=/etc/openEuler-release File_ArchRelease=/etc/arch-release File_DebianVersion=/etc/debian_version File_DebianSourceList=/etc/apt/sources.list File_DebianSourceListBackup=/etc/apt/sources.list.bak Dir_DebianExtendSource=/etc/apt/sources.list.d Dir_DebianExtendSourceBackup=/etc/apt/sources.list.d.bak File_ArchMirrorList=/etc/pacman.d/mirrorlist File_ArchMirrorListBackup=/etc/pacman.d/mirrorlist.bak Dir_RedHatRepos=/etc/yum.repos.d Dir_RedHatReposBackup=/etc/yum.repos.d.bak Dir_openEulerRepos=/etc/yum.repos.d Dir_openEulerReposBackup=/etc/yum.repos.d.bak Dir_openSUSERepos=/etc/zypp/repos.d Dir_openSUSEReposBackup=/etc/zypp/repos.d.bak ## 定义颜色变量 RED='\033[31m' GREEN='\033[32m' YELLOW='\033[33m' BLUE='\033[34m' PLAIN='\033[0m' BOLD='\033[1m' SUCCESS='[\033[32mOK\033[0m]' COMPLETE='[\033[32mDONE\033[0m]' WARN='[\033[33mWARN\033[0m]' ERROR='[\033[31mERROR\033[0m]' WORKING='[\033[34m*\033[0m]' ## 其它 WEBSITE="https://linuxmirrors.cn" function StartTitle() { [ -z "${SOURCE}" ] && clear echo -e ' +-----------------------------------+' echo -e " | \033[0;1;35;95m⡇\033[0m \033[0;1;33;93m⠄\033[0m \033[0;1;32;92m⣀⡀\033[0m \033[0;1;36;96m⡀\033[0;1;34;94m⢀\033[0m \033[0;1;35;95m⡀⢀\033[0m \033[0;1;31;91m⡷\033[0;1;33;93m⢾\033[0m \033[0;1;32;92m⠄\033[0m \033[0;1;36;96m⡀⣀\033[0m \033[0;1;34;94m⡀\033[0;1;35;95m⣀\033[0m \033[0;1;31;91m⢀⡀\033[0m \033[0;1;33;93m⡀\033[0;1;32;92m⣀\033[0m \033[0;1;36;96m⢀⣀\033[0m |" echo -e " | \033[0;1;31;91m⠧\033[0;1;33;93m⠤\033[0m \033[0;1;32;92m⠇\033[0m \033[0;1;36;96m⠇⠸\033[0m \033[0;1;34;94m⠣\033[0;1;35;95m⠼\033[0m \033[0;1;31;91m⠜⠣\033[0m \033[0;1;33;93m⠇\033[0;1;32;92m⠸\033[0m \033[0;1;36;96m⠇\033[0m \033[0;1;34;94m⠏\033[0m \033[0;1;35;95m⠏\033[0m \033[0;1;33;93m⠣⠜\033[0m \033[0;1;32;92m⠏\033[0m \033[0;1;34;94m⠭⠕\033[0m |" echo -e ' +-----------------------------------+' echo -e ' 欢迎使用 GNU/Linux 一键更换软件源脚本' } ## 报错退出 function Output_Error() { [ "$1" ] && echo -e "\n$ERROR $1\n" exit 1 } ## 权限判定 function PermissionJudgment() { if [ $UID -ne 0 ]; then Output_Error "权限不足,请使用 Root 用户运行本脚本" fi } ## 命令选项兼容性判断 function CheckCommandOptions() { case "${SYSTEM_FACTIONS}" in "${SYSTEM_DEBIAN}") if [[ "${SYSTEM_JUDGMENT}" != "${SYSTEM_DEBIAN}" ]]; then if [[ "${SOURCE_SECURITY}" == "true" || "${SOURCE_BRANCH_SECURITY}" == "true" ]]; then Output_Error "当前系统不支持使用 debian-security 仓库故无法使用相关参数,请确认后重试!" fi fi if [[ "${INSTALL_EPEL}" == "true" || "${ONLY_EPEL}" == "true" ]]; then Output_Error "当前系统不支持安装 EPEL 附件软件包故无法使用相关参数,请确认后重试!" fi ;; "${SYSTEM_REDHAT}") if [[ "${SYSTEM_JUDGMENT}" != "${SYSTEM_CENTOS}" && "${SYSTEM_JUDGMENT}" != "${SYSTEM_RHEL}" ]]; then if [[ "${SOURCE_VAULT}" == "true" || "${SOURCE_BRANCH_VAULT}" == "true" ]]; then Output_Error "当前系统不支持使用 centos-vault 仓库故无法使用相关参数,请确认后重试!" fi fi case "${SYSTEM_JUDGMENT}" in "${SYSTEM_FEDORA}") if [[ "${INSTALL_EPEL}" == "true" || "${ONLY_EPEL}" == "true" ]]; then Output_Error "当前系统不支持安装 EPEL 附件软件包故无法使用相关参数,请确认后重试!" fi ;; esac ;; "${SYSTEM_OPENEULER}") if [[ "${SOURCE_SECURITY}" == "true" || "${SOURCE_BRANCH_SECURITY}" == "true" ]]; then Output_Error "当前系统不支持使用 debian-security 仓库故无法使用相关参数,请确认后重试!" fi if [[ "${SOURCE_VAULT}" == "true" || "${SOURCE_BRANCH_VAULT}" == "true" ]]; then Output_Error "当前系统不支持使用 centos-vault 仓库故无法使用相关参数,请确认后重试!" fi if [[ "${INSTALL_EPEL}" == "true" || "${ONLY_EPEL}" == "true" ]]; then Output_Error "当前系统不支持安装 EPEL 附件软件包故无法使用相关参数,请确认后重试!" fi ;; "${SYSTEM_OPENSUSE}") if [[ "${SOURCE_SECURITY}" == "true" || "${SOURCE_BRANCH_SECURITY}" == "true" ]]; then Output_Error "当前系统不支持使用 debian-security 仓库故无法使用相关参数,请确认后重试!" fi if [[ "${SOURCE_VAULT}" == "true" || "${SOURCE_BRANCH_VAULT}" == "true" ]]; then Output_Error "当前系统不支持使用 centos-vault 仓库故无法使用相关参数,请确认后重试!" fi if [[ "${INSTALL_EPEL}" == "true" || "${ONLY_EPEL}" == "true" ]]; then Output_Error "当前系统不支持安装 EPEL 附件软件包故无法使用相关参数,请确认后重试!" fi ;; "${SYSTEM_ARCH}") if [[ "${SOURCE_SECURITY}" == "true" || "${SOURCE_BRANCH_SECURITY}" == "true" ]]; then Output_Error "当前系统不支持使用 debian-security 仓库故无法使用相关参数,请确认后重试!" fi if [[ "${SOURCE_VAULT}" == "true" || "${SOURCE_BRANCH_VAULT}" == "true" ]]; then Output_Error "当前系统不支持使用 centos-vault 仓库故无法使用相关参数,请确认后重试!" fi if [[ "${INSTALL_EPEL}" == "true" || "${ONLY_EPEL}" == "true" ]]; then Output_Error "当前系统不支持安装 EPEL 附件软件包故无法使用相关参数,请确认后重试!" fi ;; esac } ## 系统判定变量 function EnvJudgment() { ## 定义系统名称 SYSTEM_NAME="$(cat $File_LinuxRelease | grep -E "^NAME=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")" cat $File_LinuxRelease | grep "PRETTY_NAME=" -q [ $? -eq 0 ] && SYSTEM_PRETTY_NAME="$(cat $File_LinuxRelease | grep -E "^PRETTY_NAME=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")" ## 定义系统版本号 SYSTEM_VERSION_NUMBER="$(cat $File_LinuxRelease | grep -E "^VERSION_ID=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")" ## 定义系统ID SYSTEM_ID="$(cat $File_LinuxRelease | grep -E "^ID=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")" ## 判定当前系统派系(Debian/RedHat/openEuler/openSUSE) if [ -s $File_RedHatRelease ]; then SYSTEM_FACTIONS="${SYSTEM_REDHAT}" elif [ -s $File_DebianVersion ]; then SYSTEM_FACTIONS="${SYSTEM_DEBIAN}" elif [ -s $File_openEulerRelease ]; then SYSTEM_FACTIONS="${SYSTEM_OPENEULER}" elif [ -f $File_ArchRelease ]; then SYSTEM_FACTIONS="${SYSTEM_ARCH}" elif [[ "${SYSTEM_NAME}" == *"openSUSE"* ]]; then SYSTEM_FACTIONS="${SYSTEM_OPENSUSE}" else Output_Error "无法判断当前运行环境,当前系统不在本脚本的支持范围内" fi ## 判定系统名称、版本、版本号 case "${SYSTEM_FACTIONS}" in "${SYSTEM_DEBIAN}") if [ ! -x /usr/bin/lsb_release ]; then apt-get install -y lsb-release if [ $? -ne 0 ]; then Output_Error "lsb-release 软件包安装失败\n 本脚本需要通过 lsb_release 指令判断系统类型,当前可能为精简安装的系统,因为正常情况下系统会自带该软件包,请自行安装后重新执行脚本!" fi fi SYSTEM_JUDGMENT="$(lsb_release -is)" SYSTEM_VERSION_CODENAME="$(lsb_release -cs)" ;; "${SYSTEM_REDHAT}") SYSTEM_JUDGMENT="$(cat $File_RedHatRelease | awk -F ' ' '{printf$1}')" ## Red Hat Enterprise Linux cat $File_RedHatRelease | grep -q "${SYSTEM_RHEL}" [ $? -eq 0 ] && SYSTEM_JUDGMENT="${SYSTEM_RHEL}" ## CentOS Stream cat $File_RedHatRelease | grep -q "${SYSTEM_CENTOS_STREAM}" [ $? -eq 0 ] && SYSTEM_JUDGMENT="${SYSTEM_CENTOS_STREAM}" ;; "${SYSTEM_OPENEULER}") SYSTEM_JUDGMENT="$(cat $File_openEulerRelease | awk -F ' ' '{printf$1}')" ;; "${SYSTEM_OPENSUSE}") SYSTEM_JUDGMENT="${SYSTEM_OPENSUSE}" ;; "${SYSTEM_ARCH}") SYSTEM_JUDGMENT="${SYSTEM_ARCH}" ;; esac ## 判断系统是否在脚本支持范围内 case "${SYSTEM_JUDGMENT}" in "${SYSTEM_DEBIAN}") if [[ "${SYSTEM_VERSION_NUMBER:0:1}" != [8-9] && "${SYSTEM_VERSION_NUMBER:0:2}" != 1[0-2] ]]; then Output_Error "当前系统版本不在本脚本的支持范围内" fi ;; "${SYSTEM_UBUNTU}") if [[ "${SYSTEM_VERSION_NUMBER:0:2}" != 1[4-9] && "${SYSTEM_VERSION_NUMBER:0:2}" != 2[0-3] ]]; then Output_Error "当前系统版本不在本脚本的支持范围内" fi ;; "${SYSTEM_RHEL}") if [[ "${SYSTEM_VERSION_NUMBER:0:1}" != [7-9] ]]; then Output_Error "当前系统版本不在本脚本的支持范围内" fi ;; "${SYSTEM_CENTOS}") if [[ "${SYSTEM_VERSION_NUMBER:0:1}" != [7-8] ]]; then Output_Error "当前系统版本不在本脚本的支持范围内" fi ;; "${SYSTEM_CENTOS_STREAM}" | "${SYSTEM_ROCKY}" | "${SYSTEM_ALMA}") if [[ "${SYSTEM_VERSION_NUMBER:0:1}" != [8-9] ]]; then Output_Error "当前系统版本不在本脚本的支持范围内" fi ;; "${SYSTEM_FEDORA}") if [[ "${SYSTEM_VERSION_NUMBER:0:2}" != 3[0-8] ]]; then Output_Error "当前系统版本不在本脚本的支持范围内" fi ;; "${SYSTEM_OPENEULER}") if [[ "${SYSTEM_VERSION_NUMBER:0:2}" != 2[1-3] ]]; then Output_Error "当前系统版本不在本脚本的支持范围内" fi ;; "${SYSTEM_OPENSUSE}") if [[ "${SYSTEM_ID}" != "opensuse-leap" && "${SYSTEM_ID}" != "opensuse-tumbleweed" ]]; then Output_Error "当前系统版本不在本脚本的支持范围内" else if [[ "${SYSTEM_VERSION_NUMBER:0:2}" != 15 ]]; then Output_Error "当前系统版本不在本脚本的支持范围内" fi fi ;; "${SYSTEM_KALI}" | "${SYSTEM_ARCH}") # 理论全部支持 ;; *) Output_Error "当前系统不在本脚本的支持范围内" ;; esac ## 判定系统处理器架构 case "$(uname -m)" in x86_64) DEVICE_ARCH="x86_64" ;; aarch64) DEVICE_ARCH="ARM64" ;; armv7l) DEVICE_ARCH="ARMv7" ;; armv6l) DEVICE_ARCH="ARMv6" ;; i686) DEVICE_ARCH="x86_32" ;; *) DEVICE_ARCH="$(uname -m)" ;; esac ## 定义软件源分支名称 if [[ -z "${SOURCE_BRANCH}" ]]; then ## 默认 SOURCE_BRANCH="$(echo "${SYSTEM_JUDGMENT,,}" | sed "s/ /-/g")" ## 处理特殊 case "${SYSTEM_JUDGMENT}" in "${SYSTEM_RHEL}") case ${SYSTEM_VERSION_NUMBER:0:1} in 9) SOURCE_BRANCH="rocky" ;; *) SOURCE_BRANCH="centos" ;; esac ;; "${SYSTEM_CENTOS}") if [[ "${DEVICE_ARCH}" == "x86_64" ]]; then SOURCE_BRANCH="centos" else SOURCE_BRANCH="centos-altarch" fi ;; "${SYSTEM_CENTOS_STREAM}") case ${SYSTEM_VERSION_NUMBER:0:1} in 8) if [[ "${DEVICE_ARCH}" == "x86_64" ]]; then SOURCE_BRANCH="centos" else SOURCE_BRANCH="centos-altarch" fi ;; *) SOURCE_BRANCH="centos-stream" ;; esac ;; "${SYSTEM_UBUNTU}") if [[ "${DEVICE_ARCH}" == "x86_64" ]] || [[ "${DEVICE_ARCH}" == *i?86* ]]; then SOURCE_BRANCH="ubuntu" else SOURCE_BRANCH="ubuntu-ports" fi ;; "${SYSTEM_ARCH}") if [[ "${DEVICE_ARCH}" == "x86_64" ]] || [[ "${DEVICE_ARCH}" == *i?86* ]]; then SOURCE_BRANCH="archlinux" else SOURCE_BRANCH="archlinuxarm" fi ;; esac fi ## 定义软件源同步/更新文字 case "${SYSTEM_FACTIONS}" in "${SYSTEM_DEBIAN}") SYNC_TXT="更新" ;; *) SYNC_TXT="同步" ;; esac } ## 选择软件源 function ChooseMirrors() { ## 打印软件源列表 function PrintMirrorsList() { local tmp_mirror_name tmp_mirror_url arr_num default_mirror_name_length tmp_mirror_name_length tmp_spaces_nums a i j ## 计算字符串长度 function StringLength() { local text=$1 echo "${#text}" } echo -e '' local list_arr=() local list_arr_sum="$(eval echo \${#$1[@]})" for ((a = 0; a < $list_arr_sum; a++)); do list_arr[$a]="$(eval echo \${$1[a]})" done if [ -x /usr/bin/printf ]; then for ((i = 0; i < ${#list_arr[@]}; i++)); do tmp_mirror_name=$(echo "${list_arr[i]}" | awk -F '@' '{print$1}') # 软件源名称 # tmp_mirror_url=$(echo "${list_arr[i]}" | awk -F '@' '{print$2}') # 软件源地址 arr_num=$((i + 1)) default_mirror_name_length=${2:-"30"} # 默认软件源名称打印长度 ## 补齐长度差异(中文的引号在等宽字体中占1格而非2格) [[ $(echo "${tmp_mirror_name}" | grep -c "“") -gt 0 ]] && let default_mirror_name_length+=$(echo "${tmp_mirror_name}" | grep -c "“") [[ $(echo "${tmp_mirror_name}" | grep -c "”") -gt 0 ]] && let default_mirror_name_length+=$(echo "${tmp_mirror_name}" | grep -c "”") [[ $(echo "${tmp_mirror_name}" | grep -c "‘") -gt 0 ]] && let default_mirror_name_length+=$(echo "${tmp_mirror_name}" | grep -c "‘") [[ $(echo "${tmp_mirror_name}" | grep -c "’") -gt 0 ]] && let default_mirror_name_length+=$(echo "${tmp_mirror_name}" | grep -c "’") # 非一般字符长度 tmp_mirror_name_length=$(StringLength $(echo "${tmp_mirror_name}" | sed "s| ||g" | sed "s|[0-9a-zA-Z\.\=\:\_\(\)\'\"-\/\!·]||g;")) ## 填充空格 tmp_spaces_nums=$(($(($default_mirror_name_length - ${tmp_mirror_name_length} - $(StringLength "${tmp_mirror_name}"))) / 2)) for ((j = 1; j <= ${tmp_spaces_nums}; j++)); do tmp_mirror_name="${tmp_mirror_name} " done printf " ❖ %-$(($default_mirror_name_length + ${tmp_mirror_name_length}))s %4s\n" "${tmp_mirror_name}" "$arr_num)" done else for ((i = 0; i < ${#list_arr[@]}; i++)); do tmp_mirror_name=$(echo "${list_arr[i]}" | awk -F '@' '{print$1}') # 软件源名称 tmp_mirror_url=$(echo "${list_arr[i]}" | awk -F '@' '{print$2}') # 软件源地址 arr_num=$((i + 1)) echo -e " ❖ $arr_num. ${tmp_mirror_url} | ${tmp_mirror_name}" done fi } ## 选择软件源内网地址 # 例如部分云计算厂商的镜像站区分外网(公网)地址和内网地址,内网地址仅面向云计算厂商云服务器用户使用 # 内网地址一般不支持使用 HTTPS 协议,所以默认设置为 HTTP 协议 function ChooseMirrorIntranetAddress() { local intranet_source for ((i = 0; i < ${#mirror_list_extranet[@]}; i++)); do if [[ "${SOURCE}" == "${mirror_list_extranet[i]}" ]]; then # echo "${SOURCE}" intranet_source="${mirror_list_intranet[i]}" # echo "${intranet_source}" # exit ONLY_HTTP="True" break else continue fi done if [[ -z "${USE_INTRANET_SOURCE}" ]]; then local CHOICE=$(echo -e "\n${BOLD}└─ 默认使用软件源的公网地址,是否继续? [Y/n] ${PLAIN}") read -p "${CHOICE}" INPUT [[ -z "${INPUT}" ]] && INPUT=Y case "${INPUT}" in [Yy] | [Yy][Ee][Ss]) ;; [Nn] | [Nn][Oo]) SOURCE="${intranet_source}" echo -e "\n$WARN 已切换至内网专用地址,仅限在特定环境下使用!" ;; *) echo -e "\n$WARN 输入错误,默认不使用内网地址!" ;; esac elif [[ "${USE_INTRANET_SOURCE}" == "true" ]]; then SOURCE="${intranet_source}" fi } function Title() { local system_name="${SYSTEM_PRETTY_NAME:-"${SYSTEM_NAME} ${SYSTEM_VERSION_NUMBER}"}" local arch=""${DEVICE_ARCH}"" local date="$(date "+%Y-%m-%d %H:%M:%S")" local timezone="$(timedatectl status 2>/dev/null | grep "Time zone" | awk -F ':' '{print$2}' | awk -F ' ' '{print$1}')" echo -e '' echo -e " 运行环境 ${BLUE}${system_name} ${arch}${PLAIN}" echo -e " 系统时间 ${BLUE}${date} ${timezone}${PLAIN}" } Title if [[ -z "${SOURCE}" ]]; then if [[ ${USE_ABROAD_SOURCE} = "true" ]]; then local mirror_list_name="mirror_list_abroad" PrintMirrorsList "${mirror_list_name}" 60 else local mirror_list_name="mirror_list_default" PrintMirrorsList "${mirror_list_name}" 31 fi local CHOICE=$(echo -e "\n${BOLD}└─ 请选择并输入你想使用的软件源 [ 1-$(eval echo \${#$mirror_list_name[@]}) ]:${PLAIN}") while true; do read -p "${CHOICE}" INPUT case "${INPUT}" in [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) local tmp_source="$(eval echo \${${mirror_list_name}[$(($INPUT - 1))]})" if [[ -z "${tmp_source}" ]]; then echo -e "\n$WARN 请输入有效的数字序号!" else SOURCE="$(eval echo \${${mirror_list_name}[$(($INPUT - 1))]} | awk -F '@' '{print$2}')" # echo "${SOURCE}" # exit break fi ;; *) echo -e "\n$WARN 请输入数字序号以选择你想使用的软件源!" ;; esac done fi ## 选择软件源内网地址 if [[ "${mirror_list_extranet[*]}" =~ (^|[^[:alpha:]])"${SOURCE}"([^[:alpha:]]|$) ]]; then ChooseMirrorIntranetAddress fi } ## 选择同步软件源所使用的 WEB 协议( HTTP:80 端口,HTTPS:443 端口) function ChooseWebProtocol() { if [[ -z "${WEB_PROTOCOL}" ]]; then if [[ "${ONLY_HTTP}" == "True" ]]; then WEB_PROTOCOL="http" else local CHOICE=$(echo -e "\n${BOLD}└─ 软件源是否使用 HTTP 协议? [Y/n] ${PLAIN}") read -p "${CHOICE}" INPUT [[ -z "${INPUT}" ]] && INPUT=Y case "${INPUT}" in [Yy] | [Yy][Ee][Ss]) WEB_PROTOCOL="http" ;; [Nn] | [Nn][Oo]) WEB_PROTOCOL="https" ;; *) echo -e "\n$WARN 输入错误,默认使用 HTTPS 协议!" WEB_PROTOCOL="https" ;; esac fi fi WEB_PROTOCOL="${WEB_PROTOCOL,,}" } # 适用于 RHEL/CentOS(Stream)/RockyLinux 的 EPEL 附加软件包(安装/换源) function ChooseInstallEPEL() { function Check() { ## 判断是否已安装 EPEL 软件包 rpm -qa | grep epel-release -q VERIFICATION_EPEL=$? ## 判断 /etc/yum.repos.d 目录下是否存在 epel 附加软件包 repo 源文件 [ -d $Dir_RedHatRepos ] && ls $Dir_RedHatRepos | grep epel -q VERIFICATION_EPELFILES=$? ## 判断 /etc/yum.repos.d.bak 目录下是否存在 epel 附加软件包 repo 源文件 [ -d $Dir_RedHatReposBackup ] && ls $Dir_RedHatReposBackup | grep epel -q VERIFICATION_EPELBACKUPFILES=$? } if [[ "${SYSTEM_FACTIONS}" == "${SYSTEM_REDHAT}" ]]; then if [[ -z "${INSTALL_EPEL}" ]]; then case "${SYSTEM_JUDGMENT}" in "${SYSTEM_RHEL}" | "${SYSTEM_CENTOS}" | "${SYSTEM_CENTOS_STREAM}" | "${SYSTEM_ROCKY}" | "${SYSTEM_ALMA}") Check if [ ${VERIFICATION_EPEL} -eq 0 ]; then local CHOICE=$(echo -e "\n${BOLD}└─ 检测到系统已安装 EPEL 附加软件包,是否替换/覆盖软件源? [Y/n] ${PLAIN}") else local CHOICE=$(echo -e "\n${BOLD}└─ 是否安装 EPEL 附加软件包? [Y/n] ${PLAIN}") fi read -p "${CHOICE}" INPUT [[ -z "${INPUT}" ]] && INPUT=Y case "${INPUT}" in [Yy] | [Yy][Ee][Ss]) INSTALL_EPEL="True" ;; [Nn] | [Nn][Oo]) INSTALL_EPEL="False" ;; *) echo -e "\n$WARN 输入错误,默认不更换!" INSTALL_EPEL="False" ;; esac ;; esac elif [[ "${INSTALL_EPEL}" == "true" ]]; then Check fi fi } ## 关闭防火墙和SELinux function CloseFirewall() { function Main() { local SelinuxConfig=/etc/selinux/config systemctl disable --now firewalld >/dev/null 2>&1 [ -s $SelinuxConfig ] && sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" $SelinuxConfig && setenforce 0 >/dev/null 2>&1 } if [ -x /usr/bin/systemctl ]; then if [[ "$(systemctl is-active firewalld)" == "active" ]]; then if [[ "${CLOSE_FIREWALL}" == "true" ]]; then Main elif [[ -z "${CLOSE_FIREWALL}" ]]; then local CHOICE=$(echo -e "\n${BOLD}└─ 是否关闭防火墙和 SELinux ? [Y/n] ${PLAIN}") read -p "${CHOICE}" INPUT [[ -z "${INPUT}" ]] && INPUT=Y case "${INPUT}" in [Yy] | [Yy][Ee][Ss]) Main ;; [Nn] | [Nn][Oo]) ;; *) echo -e "\n$WARN 输入错误,默认不关闭!" ;; esac fi fi fi } ## 备份原有软件源 function BackupOriginMirrors() { BACKUPED="false" if [[ "${BACKUP}" == "true" ]]; then local VERIFICATION_FILES=1 local VERIFICATION_BACKUPFILES=1 case "${SYSTEM_FACTIONS}" in "${SYSTEM_DEBIAN}") ## 判断 /etc/apt/sources.list.d 目录下是否存在文件 [ -d $Dir_DebianExtendSource ] && ls $Dir_DebianExtendSource | grep *.list -q VERIFICATION_FILES=$? ## 判断 /etc/apt/sources.list.d.bak 目录下是否存在文件 [ -d $Dir_DebianExtendSourceBackup ] && ls $Dir_DebianExtendSourceBackup | grep *.list -q VERIFICATION_BACKUPFILES=$? ;; "${SYSTEM_REDHAT}") ## 判断 /etc/yum.repos.d 目录下是否存在文件 [ -d $Dir_RedHatRepos ] && ls $Dir_RedHatRepos | grep '\.repo$' -q VERIFICATION_FILES=$? ## 判断 /etc/yum.repos.d.bak 目录下是否存在文件 [ -d $Dir_RedHatReposBackup ] && ls $Dir_RedHatReposBackup | grep '\.repo$' -q VERIFICATION_BACKUPFILES=$? ;; "${SYSTEM_OPENEULER}") ## 判断 /etc/yum.repos.d 目录下是否存在文件 [ -d $Dir_openEulerRepos ] && ls $Dir_openEulerRepos | grep '\.repo$' -q VERIFICATION_FILES=$? ## 判断 /etc/yum.repos.d.bak 目录下是否存在文件 [ -d $Dir_openEulerReposBackup ] && ls $Dir_openEulerReposBackup | grep '\.repo$' -q VERIFICATION_BACKUPFILES=$? ;; "${SYSTEM_OPENSUSE}") ## 判断 /etc/zypp/repos.d 目录下是否存在文件 [ -d $Dir_openSUSERepos ] && ls $Dir_openSUSERepos | grep '\.repo$' -q VERIFICATION_FILES=$? ## 判断 /etc/zypp/repos.d.bak 目录下是否存在文件 [ -d $Dir_openSUSEReposBackup ] && ls $Dir_openSUSEReposBackup | grep '\.repo$' -q VERIFICATION_BACKUPFILES=$? ;; esac case "${SYSTEM_FACTIONS}" in "${SYSTEM_DEBIAN}") ## /etc/apt/sources.list if [ -s $File_DebianSourceList ]; then if [ -s $File_DebianSourceListBackup ]; then if [[ "${IGNORE_BACKUP_TIPS}" == "false" ]]; then local CHOICE_BACKUP1=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 list 源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}") read -p "${CHOICE_BACKUP1}" INPUT [[ -z "${INPUT}" ]] && INPUT=Y case "${INPUT}" in [Yy] | [Yy][Ee][Ss]) ;; [Nn] | [Nn][Oo]) echo '' cp -rvf $File_DebianSourceList $File_DebianSourceListBackup 2>&1 BACKUPED="true" ;; *) echo -e "\n$WARN 输入错误,默认不覆盖!" ;; esac fi else echo '' cp -rvf $File_DebianSourceList $File_DebianSourceListBackup 2>&1 BACKUPED="true" echo -e "\n$COMPLETE 已备份原有 list 源文件" sleep 1s fi else [ ! -f $File_DebianSourceList ] && touch $File_DebianSourceList echo -e '' fi ## /etc/apt/sources.list.d if [ -d $Dir_DebianExtendSource ] && [ ${VERIFICATION_FILES} -eq 0 ]; then if [ -d $Dir_DebianExtendSourceBackup ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then if [[ "${IGNORE_BACKUP_TIPS}" == "false" ]]; then local CHOICE_BACKUP2=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 list 扩展源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}") read -p "${CHOICE_BACKUP2}" INPUT [[ -z "${INPUT}" ]] && INPUT=Y case "${INPUT}" in [Yy] | [Yy][Ee][Ss]) ;; [Nn] | [Nn][Oo]) echo '' cp -rvf $Dir_DebianExtendSource/* $Dir_DebianExtendSourceBackup 2>&1 BACKUPED="true" ;; *) echo -e "\n$WARN 输入错误,默认不覆盖!" ;; esac fi else [ ! -d $Dir_DebianExtendSourceBackup ] && mkdir -p $Dir_DebianExtendSourceBackup echo '' cp -rvf $Dir_DebianExtendSource/* $Dir_DebianExtendSourceBackup 2>&1 BACKUPED="true" echo -e "$COMPLETE 已备份原有 list 扩展源文件" sleep 1s fi fi ;; "${SYSTEM_REDHAT}") ## /etc/yum.repos.d if [ ${VERIFICATION_FILES} -eq 0 ]; then if [ -d $Dir_RedHatReposBackup ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then if [[ "${IGNORE_BACKUP_TIPS}" == "false" ]]; then local CHOICE_BACKUP3=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 repo 源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}") read -p "${CHOICE_BACKUP3}" INPUT [[ -z "${INPUT}" ]] && INPUT=Y case "${INPUT}" in [Yy] | [Yy][Ee][Ss]) ;; [Nn] | [Nn][Oo]) echo '' cp -rvf $Dir_RedHatRepos/* $Dir_RedHatReposBackup 2>&1 BACKUPED="true" ;; *) echo -e "\n$WARN 输入错误,默认不覆盖!" ;; esac fi else [ ! -d $Dir_RedHatReposBackup ] && mkdir -p $Dir_RedHatReposBackup echo '' cp -rvf $Dir_RedHatRepos/* $Dir_RedHatReposBackup 2>&1 BACKUPED="true" echo -e "\n$COMPLETE 已备份原有 repo 源文件" sleep 1s fi else [ -d $Dir_RedHatRepos ] || mkdir -p $Dir_RedHatRepos fi ;; "${SYSTEM_OPENEULER}") ## /etc/yum.repos.d if [ ${VERIFICATION_FILES} -eq 0 ]; then if [ -d $Dir_openEulerReposBackup ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then if [[ "${IGNORE_BACKUP_TIPS}" == "false" ]]; then local CHOICE_BACKUP4=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 repo 源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}") read -p "${CHOICE_BACKUP4}" INPUT [[ -z "${INPUT}" ]] && INPUT=Y case "${INPUT}" in [Yy] | [Yy][Ee][Ss]) ;; [Nn] | [Nn][Oo]) echo '' cp -rvf $Dir_openEulerRepos/* $Dir_openEulerReposBackup 2>&1 BACKUPED="true" ;; *) echo -e "\n$WARN 输入错误,默认不覆盖!" ;; esac fi else [ ! -d $Dir_openEulerReposBackup ] && mkdir -p $Dir_openEulerReposBackup echo '' cp -rvf $Dir_openEulerRepos/* $Dir_openEulerReposBackup 2>&1 BACKUPED="true" echo -e "\n$COMPLETE 已备份原有 repo 源文件" sleep 1s fi else [ -d $Dir_openEulerRepos ] || mkdir -p $Dir_openEulerRepos fi ;; "${SYSTEM_OPENSUSE}") ## /etc/zypp/repos.d if [ ${VERIFICATION_FILES} -eq 0 ]; then if [ -d $Dir_openSUSEReposBackup ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then if [[ "${IGNORE_BACKUP_TIPS}" == "false" ]]; then local CHOICE_BACKUP4=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 repo 源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}") read -p "${CHOICE_BACKUP4}" INPUT [[ -z "${INPUT}" ]] && INPUT=Y case "${INPUT}" in [Yy] | [Yy][Ee][Ss]) ;; [Nn] | [Nn][Oo]) echo '' cp -rvf $Dir_openSUSERepos/* $Dir_openSUSEReposBackup 2>&1 BACKUPED="true" ;; *) echo -e "\n$WARN 输入错误,默认不覆盖!" ;; esac fi else [ ! -d $Dir_openSUSEReposBackup ] && mkdir -p $Dir_openSUSEReposBackup echo '' cp -rvf $Dir_openSUSERepos/* $Dir_openSUSEReposBackup 2>&1 BACKUPED="true" echo -e "\n$COMPLETE 已备份原有 repo 源文件" sleep 1s fi else [ -d $Dir_openSUSERepos ] || mkdir -p $Dir_openSUSERepos fi ;; "${SYSTEM_ARCH}") ## /etc/pacman.d/mirrorlist if [ -s $File_ArchMirrorList ]; then if [ -s $File_ArchMirrorListBackup ]; then if [[ "${IGNORE_BACKUP_TIPS}" == "false" ]]; then local CHOICE_BACKUP5=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的软件源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}") read -p "${CHOICE_BACKUP5}" INPUT [[ -z "${INPUT}" ]] && INPUT=Y case "${INPUT}" in [Yy] | [Yy][Ee][Ss]) ;; [Nn] | [Nn][Oo]) echo '' cp -rvf $File_ArchMirrorList $File_ArchMirrorListBackup 2>&1 BACKUPED="true" ;; *) echo -e "\n$WARN 输入错误,默认不覆盖!" ;; esac fi else echo '' cp -rvf $File_ArchMirrorList $File_ArchMirrorListBackup 2>&1 BACKUPED="true" echo -e "\n$COMPLETE 已备份原有软件源文件" sleep 1s fi else [ ! -f $File_ArchMirrorList ] && touch $File_ArchMirrorList echo -e '' fi ;; esac fi } ## 移除原有软件源 function RemoveOriginMirrors() { case "${SYSTEM_FACTIONS}" in "${SYSTEM_DEBIAN}") [ -f $File_DebianSourceList ] && sed -i '1,$d' $File_DebianSourceList ;; "${SYSTEM_REDHAT}") if [ -d $Dir_RedHatRepos ]; then # Fedora Linux 特殊,只删除以 fedora 开头的文件 case "${SYSTEM_JUDGMENT}" in "${SYSTEM_FEDORA}") rm -rf $Dir_RedHatRepos/fedora* ;; *) if [[ "${ONLY_EPEL}" == "false" ]]; then if [ -f $Dir_RedHatRepos/epel.repo ]; then ls $Dir_RedHatRepos/ | egrep -v epel | xargs rm -rf else rm -rf $Dir_RedHatRepos/* fi fi ;; esac fi ;; "${SYSTEM_OPENEULER}") [ -d $Dir_openEulerRepos ] && rm -rf $Dir_openEulerRepos/* ;; "${SYSTEM_OPENSUSE}") [ -d $Dir_openSUSERepos ] && rm -rf $Dir_openSUSERepos/repo-* ;; "${SYSTEM_ARCH}") [ -f $File_ArchMirrorList ] && sed -i '1,$d' $File_ArchMirrorList ;; esac } ## 换源 function ChangeMirrors() { ## 打印修改前后差异 function PrintDiff() { ## Debian/Arch 比较模式 function DiffMode1() { local backup_file=$1 local origin_file=$2 if [[ -s $backup_file && -s $origin_file ]]; then if [[ "$(cat $backup_file)" != "$(cat $origin_file)" ]]; then echo -e "\n${BLUE}${backup_file}${PLAIN} -> ${BLUE}${origin_file}${PLAIN}" diff $backup_file $origin_file -d --color=always -I -B -E fi fi } ## RedHat/openEuler/openSUSE 比较模式 function DiffMode2() { local backup_dir=$1 local origin_dir=$2 local backup_file origin_file for item in $(ls $backup_dir | xargs); do backup_file="$backup_dir/$item" origin_file="$origin_dir/$item" if [[ "$(cat $backup_file)" != "$(cat $origin_file)" ]]; then echo -e "\n${BLUE}${backup_file}${PLAIN} -> ${BLUE}${origin_file}${PLAIN}" diff $backup_file $origin_file -d --color=always -I -B -E fi done } if [[ "${PRINT_DIFF}" == "true" ]]; then if [[ -x /usr/bin/diff && "${BACKUPED}" == "true" ]]; then case "${SYSTEM_FACTIONS}" in "${SYSTEM_DEBIAN}") DiffMode1 $File_DebianSourceListBackup $File_DebianSourceList ;; "${SYSTEM_REDHAT}") DiffMode2 $Dir_RedHatReposBackup $Dir_RedHatRepos ;; "${SYSTEM_OPENEULER}") DiffMode2 $Dir_openEulerReposBackup $Dir_openEulerRepos ;; "${SYSTEM_OPENSUSE}") DiffMode2 $Dir_openSUSEReposBackup $Dir_openSUSERepos ;; "${SYSTEM_ARCH}") DiffMode1 $File_ArchMirrorListBackup $File_ArchMirrorList ;; esac fi fi } case "${SYSTEM_FACTIONS}" in "${SYSTEM_DEBIAN}") DebianMirrors ;; "${SYSTEM_REDHAT}") RedHatMirrors ;; "${SYSTEM_OPENEULER}") openEulerMirrors ;; "${SYSTEM_OPENSUSE}") openSUSEMirrors ;; "${SYSTEM_ARCH}") ArchMirrors ;; esac PrintDiff echo -e "\n${WORKING} 开始${SYNC_TXT}软件源...\n" case "${SYSTEM_FACTIONS}" in "${SYSTEM_DEBIAN}") apt-get update ;; "${SYSTEM_REDHAT}" | "${SYSTEM_OPENEULER}") yum makecache ;; "${SYSTEM_OPENSUSE}") zypper ref ;; "${SYSTEM_ARCH}") pacman -Sy ;; esac if [ $? -eq 0 ]; then echo -e "\n$COMPLETE 软件源更换完毕" else echo -e "\n$ERROR 软件源${SYNC_TXT}失败\n" echo -e "请再次执行脚本并更换相同软件源后进行尝试,若仍然${SYNC_TXT}失败那么可能由以下原因导致" echo -e "1. 网络问题:例如连接异常、网络间歇式中断、由地区影响的网络因素等" echo -e "2. 软件源问题:例如正在维护,或者出现罕见的文件同步出错导致软件源${SYNC_TXT}命令执行后返回错误状态,请前往镜像站对应路径验证" echo -e "\n软件源地址:"${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}"\n" exit 1 fi } ## 更新软件包 function UpdateSoftware() { function Main() { echo -e '' case "${SYSTEM_FACTIONS}" in "${SYSTEM_DEBIAN}") apt-get upgrade -y ;; "${SYSTEM_REDHAT}" | "${SYSTEM_OPENEULER}") yum update -y --skip-broken ;; "${SYSTEM_OPENSUSE}") zypper update -y ;; esac } function CleanCache() { case "${SYSTEM_FACTIONS}" in "${SYSTEM_DEBIAN}") apt-get autoremove -y >/dev/null 2>&1 apt-get clean >/dev/null 2>&1 ;; "${SYSTEM_REDHAT}" | "${SYSTEM_OPENEULER}") yum autoremove -y >/dev/null 2>&1 yum clean packages -y >/dev/null 2>&1 ;; "${SYSTEM_OPENSUSE}") zypper clean >/dev/null 2>&1 ;; esac echo -e "\n$COMPLETE 清理完毕" } function MainInteraction() { local CHOICE=$(echo -e "\n${BOLD}└─ 是否跳过更新软件包? [Y/n] ${PLAIN}") read -p "${CHOICE}" INPUT [[ -z "${INPUT}" ]] && INPUT=Y case "${INPUT}" in [Yy] | [Yy][Ee][Ss]) ;; [Nn] | [Nn][Oo]) Main if [[ "${CLEAN_CACHE}" == "true" ]]; then CleanCache elif [[ -z "${CLEAN_CACHE}" ]]; then CleanCacheInteraction fi ;; *) echo -e "\n$WARN 输入错误,默认不更新!" ;; esac } function CleanCacheInteraction() { local CHOICE=$(echo -e "\n${BOLD}└─ 是否清理已下载的软件包缓存? [Y/n] ${PLAIN}") read -p "${CHOICE}" INPUT [[ -z "${INPUT}" ]] && INPUT=Y case "${INPUT}" in [Yy] | [Yy][Ee][Ss]) CleanCache ;; [Nn] | [Nn][Oo]) ;; *) echo -e "\n$WARN 输入错误,默认不清理!" ;; esac } case "${SYSTEM_FACTIONS}" in "${SYSTEM_DEBIAN}" | "${SYSTEM_REDHAT}" | "${SYSTEM_OPENEULER}" | "${SYSTEM_OPENSUSE}") if [[ "${SYSTEM_JUDGMENT}" != "${SYSTEM_RHEL}" ]]; then if [[ "${UPDATA_SOFTWARE}" == "true" ]]; then Main if [[ "${CLEAN_CACHE}" == "true" ]]; then CleanCache elif [[ -z "${CLEAN_CACHE}" ]]; then CleanCacheInteraction fi elif [[ -z "${UPDATA_SOFTWARE}" ]]; then MainInteraction fi fi ;; esac } ## 运行结束 function RunEnd() { echo -e "\n$COMPLETE 脚本执行结束 [\033[1;34m官网\033[0m] ${WEBSITE}\n" } ############################################################################## ## 更换基于 Debian 系 Linux 发行版的软件源 function DebianMirrors() { local source_suffix local TIPS="## 默认禁用源码镜像以提高速度,如需启用请自行取消注释" local basic_url="${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}" case "${SYSTEM_JUDGMENT}" in "${SYSTEM_DEBIAN}") case "${SYSTEM_VERSION_NUMBER}" in 12) source_suffix="main contrib non-free non-free-firmware" ;; *) source_suffix="main contrib non-free" ;; esac echo "${TIPS} deb ${basic_url} ${SYSTEM_VERSION_CODENAME} ${source_suffix} # deb-src ${basic_url} ${SYSTEM_VERSION_CODENAME} ${source_suffix} deb ${basic_url} ${SYSTEM_VERSION_CODENAME}-updates ${source_suffix} # deb-src ${basic_url} ${SYSTEM_VERSION_CODENAME}-updates ${source_suffix} deb ${basic_url} ${SYSTEM_VERSION_CODENAME}-backports ${source_suffix} # deb-src ${basic_url} ${SYSTEM_VERSION_CODENAME}-backports ${source_suffix}" >>$File_DebianSourceList ## 处理 debian-security 仓库 local security_url="${SOURCE_SECURITY:-"${SOURCE}"}" if [[ -z "${SOURCE_SECURITY}" ]]; then if [[ "${USE_ABROAD_SOURCE}" == "true" ]]; then local security_url="https://security.debian.org/${SOURCE_BRANCH_SECURITY:-"${SOURCE_BRANCH}-security"}" else local security_url="${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH_SECURITY:-"${SOURCE_BRANCH}-security"}" fi else local security_url="${WEB_PROTOCOL}://${SOURCE_SECURITY}/${SOURCE_BRANCH_SECURITY:-"${SOURCE_BRANCH}-security"}" fi echo "deb ${security_url} ${SYSTEM_VERSION_CODENAME}-security ${source_suffix} # deb-src ${security_url} ${SYSTEM_VERSION_CODENAME}-security ${source_suffix}" >>$File_DebianSourceList ;; "${SYSTEM_UBUNTU}") source_suffix="main restricted universe multiverse" echo "${TIPS} deb ${basic_url} ${SYSTEM_VERSION_CODENAME} ${source_suffix} # deb-src ${basic_url} ${SYSTEM_VERSION_CODENAME} ${source_suffix} deb ${basic_url} ${SYSTEM_VERSION_CODENAME}-updates ${source_suffix} # deb-src ${basic_url} ${SYSTEM_VERSION_CODENAME}-updates ${source_suffix} deb ${basic_url} ${SYSTEM_VERSION_CODENAME}-backports ${source_suffix} # deb-src ${basic_url} ${SYSTEM_VERSION_CODENAME}-backports ${source_suffix} deb ${basic_url} ${SYSTEM_VERSION_CODENAME}-security ${source_suffix} # deb-src ${basic_url} ${SYSTEM_VERSION_CODENAME}-security ${source_suffix} ## 预发布软件源(不建议启用) # deb ${basic_url} ${SYSTEM_VERSION_CODENAME}-proposed ${source_suffix} # deb-src ${basic_url} ${SYSTEM_VERSION_CODENAME}-proposed ${source_suffix}" >>$File_DebianSourceList ;; "${SYSTEM_KALI}") source_suffix="main non-free contrib" echo "${TIPS} deb ${basic_url} ${SYSTEM_VERSION_CODENAME} ${source_suffix} # deb-src ${basic_url} ${SYSTEM_VERSION_CODENAME} ${source_suffix}" >>$File_DebianSourceList ;; esac } ## 更换基于 RedHat 系 Linux 发行版软件源 function RedHatMirrors() { ## 安装/更换 EPEL (Extra Packages for Enterprise Linux) 附加软件包软件源 function EPELMirrors() { ## 安装 EPEL 软件包 if [ ${VERIFICATION_EPEL} -ne 0 ]; then echo -e "\n${WORKING} 安装 epel-release 软件包...\n" yum install -y https://mirrors.cloud.tencent.com/epel/epel-release-latest-${SYSTEM_VERSION_NUMBER:0:1}.noarch.rpm fi ## 删除原有 repo 源文件 [ ${VERIFICATION_EPELFILES} -eq 0 ] && rm -rf $Dir_RedHatRepos/epel* [ ${VERIFICATION_EPELBACKUPFILES} -eq 0 ] && rm -rf $Dir_RedHatReposBackup/epel* ## 生成 repo 源文件 GenRepoFiles_EPEL # 更换 WEB 协议(HTTP/HTTPS) case ${SYSTEM_VERSION_NUMBER:0:1} in 9 | 8) sed -i "s|^#baseurl=https|baseurl=${WEB_PROTOCOL}|g" $Dir_RedHatRepos/epel* ;; 7) sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" $Dir_RedHatRepos/epel* ;; esac # 修改源 sed -i 's|^metalink=|#metalink=|g' $Dir_RedHatRepos/epel* case ${SYSTEM_VERSION_NUMBER:0:1} in 9) sed -i "s|download.example/pub|${SOURCE}|g" $Dir_RedHatRepos/epel* ;; 8 | 7) sed -i "s|download.fedoraproject.org/pub|${SOURCE}|g" $Dir_RedHatRepos/epel* ;; esac } ## 仅 EPEL 模式 if [[ "${ONLY_EPEL}" == "true" ]]; then EPELMirrors return fi ## 生成基于 RedHat 发行版和及其衍生发行版的官方 repo 源文件 case "${SYSTEM_JUDGMENT}" in "${SYSTEM_RHEL}") case ${SYSTEM_VERSION_NUMBER:0:1} in 9) GenRepoFiles_RockyLinux ${SYSTEM_VERSION_NUMBER:0:1} ;; *) GenRepoFiles_CentOS ${SYSTEM_VERSION_NUMBER:0:1} ;; esac ;; "${SYSTEM_CENTOS}") GenRepoFiles_CentOS ${SYSTEM_VERSION_NUMBER:0:1} ;; "${SYSTEM_CENTOS_STREAM}") GenRepoFiles_CentOSStream ${SYSTEM_VERSION_NUMBER:0:1} ;; "${SYSTEM_ROCKY}") GenRepoFiles_RockyLinux ${SYSTEM_VERSION_NUMBER:0:1} ;; "${SYSTEM_ALMA}") GenRepoFiles_AlmaLinux ${SYSTEM_VERSION_NUMBER:0:1} ;; "${SYSTEM_FEDORA}") GenRepoFiles_Fedora ;; esac ## 修改源 cd $Dir_RedHatRepos case "${SYSTEM_JUDGMENT}" in "${SYSTEM_RHEL}") case ${SYSTEM_VERSION_NUMBER:0:1} in 9) # wget "${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}/RPM-GPG-KEY-rockyofficial" -P /etc/pki/rpm-gpg # wget "${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}/RPM-GPG-KEY-Rocky-9" -P /etc/pki/rpm-gpg sed -e "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" \ -e "s|^mirrorlist=|#mirrorlist=|g" \ -e "s|^gpgcheck=1|gpgcheck=0|g" \ -e "s|^gpgkey=|#gpgkey=|g" \ -e "s|dl.rockylinux.org/\$contentdir|${SOURCE}/${SOURCE_BRANCH}|g" \ -i \ rocky.repo \ rocky-addons.repo \ rocky-devel.repo \ rocky-extras.repo ;; *) sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" CentOS-* sed -i 's|^mirrorlist=|#mirrorlist=|g' CentOS-* case ${SYSTEM_VERSION_NUMBER:0:1} in 8) sed -i 's|mirror.centos.org/$contentdir|mirror.centos.org/centos-vault|g' CentOS-* sed -i "s/\$releasever/8.5.2111/g" CentOS-* # 单独处理 CentOS-Linux-Sources.repo sed -i "s|vault.centos.org/\$contentdir|${SOURCE_VAULT:-"mirror.centos.org"}/${SOURCE_BRANCH_VAULT:-"centos-vault"}|g" CentOS-Linux-Sources.repo ;; 7) sed -i "s|mirror.centos.org/\$contentdir|mirror.centos.org/${SOURCE_BRANCH}|g" CentOS-* sed -i "s/\$releasever/7/g" CentOS-* # 单独处理 CentOS-Sources.repo sed -i "s|vault.centos.org/centos|${SOURCE_VAULT:-"mirror.centos.org"}/${SOURCE_BRANCH_VAULT:-"centos"}|g" CentOS-Sources.repo ;; esac sed -i "s|mirror.centos.org|${SOURCE}|g" CentOS-* ;; esac ;; "${SYSTEM_CENTOS}") sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" CentOS-* sed -i 's|^mirrorlist=|#mirrorlist=|g' CentOS-* case ${SYSTEM_VERSION_NUMBER:0:1} in 8) ## CentOS 8 操作系统版本结束了生命周期(EOL),Linux 社区已不再维护该操作系统版本,最终版本为 8.5.2011 # 原 centos 镜像中的 CentOS 8 相关内容已被官方移动,从 2022-02 开始切换至 centos-vault 源 sed -i 's|mirror.centos.org/$contentdir|mirror.centos.org/centos-vault|g' CentOS-* sed -i "s/\$releasever/8.5.2111/g" CentOS-* # 单独处理 CentOS-Linux-Sources.repo sed -i "s|vault.centos.org/\$contentdir|${SOURCE_VAULT:-"mirror.centos.org"}/${SOURCE_BRANCH_VAULT:-"centos-vault"}|g" CentOS-Linux-Sources.repo ;; 7) sed -i "s|mirror.centos.org/\$contentdir|mirror.centos.org/${SOURCE_BRANCH}|g" CentOS-* sed -i "s|vault.centos.org/centos|${SOURCE_VAULT:-"mirror.centos.org"}/${SOURCE_BRANCH_VAULT:-"centos"}|g" CentOS-Sources.repo # 单独处理 CentOS-Sources.repo ;; esac sed -i "s|mirror.centos.org|${SOURCE}|g" CentOS-* ;; "${SYSTEM_CENTOS_STREAM}") # CentOS Stream 9 使用的是 centos-stream 镜像,而 CentOS Stream 8 使用的是 centos 镜像 case ${SYSTEM_VERSION_NUMBER:0:1} in 9) sed -e "s|^#baseurl=https|baseurl=${WEB_PROTOCOL}|g" \ -e "s|^metalink=|#metalink=|g" \ -e "s|mirror.stream.centos.org|${SOURCE}/${SOURCE_BRANCH}|g" \ -i \ centos.repo \ centos-addons.repo ;; 8) sed -i "s|vault.centos.org/\$contentdir|${SOURCE_VAULT:-"mirror.centos.org"}/${SOURCE_BRANCH_VAULT:-"centos"}|g" CentOS-Stream-Sources.repo # 单独处理 CentOS-Stream-Sources.repo sed -e "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" \ -e "s|^mirrorlist=|#mirrorlist=|g" \ -e "s|mirror.centos.org/\$contentdir|${SOURCE}/${SOURCE_BRANCH}|g" \ -i \ CentOS-Stream-* ;; esac ;; "${SYSTEM_ROCKY}") case ${SYSTEM_VERSION_NUMBER:0:1} in 9) sed -e "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" \ -e "s|^mirrorlist=|#mirrorlist=|g" \ -e "s|dl.rockylinux.org/\$contentdir|${SOURCE}/${SOURCE_BRANCH}|g" \ -i \ rocky.repo \ rocky-addons.repo \ rocky-devel.repo \ rocky-extras.repo ;; 8) sed -e "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" \ -e "s|^mirrorlist=|#mirrorlist=|g" \ -e "s|dl.rockylinux.org/\$contentdir|${SOURCE}/${SOURCE_BRANCH}|g" \ -i \ Rocky-* ;; esac ;; "${SYSTEM_ALMA}") case ${SYSTEM_VERSION_NUMBER:0:1} in 9) sed -e "s|^# baseurl=http|baseurl=${WEB_PROTOCOL}|g" \ -e "s|^mirrorlist=|#mirrorlist=|g" \ -e "s|repo.almalinux.org/almalinux|${SOURCE}/${SOURCE_BRANCH}|g" \ -e "s|repo.almalinux.org/vault|${SOURCE}/${SOURCE_BRANCH}-vault|g" \ -i \ almalinux-* ;; 8) sed -e "s|^mirrorlist=|#mirrorlist=|g" \ -e "s|^# baseurl=http|baseurl=${WEB_PROTOCOL}|g" \ -e "s|repo.almalinux.org/almalinux|${SOURCE}/${SOURCE_BRANCH}|g" \ -e "s|repo.almalinux.org/vault|${SOURCE}/${SOURCE_BRANCH}-vault|g" \ -i \ almalinux-ha.repo \ almalinux-nfv.repo \ almalinux-plus.repo \ almalinux-powertools.repo \ almalinux-resilientstorage.repo \ almalinux-rt.repo \ almalinux-sap.repo \ almalinux-saphana.repo \ almalinux.repo ;; esac ;; "${SYSTEM_FEDORA}") sed -e "s|^metalink=|#metalink=|g" \ -e "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" \ -e "s|download.example/pub/fedora/linux|${SOURCE}/${SOURCE_BRANCH}|g" \ -i \ fedora.repo \ fedora-updates.repo \ fedora-modular.repo \ fedora-updates-modular.repo \ fedora-updates-testing.repo \ fedora-updates-testing-modular.repo ;; esac ## EPEL 附加软件包(安装/换源) case "${SYSTEM_JUDGMENT}" in "${SYSTEM_RHEL}" | "${SYSTEM_CENTOS}" | "${SYSTEM_CENTOS_STREAM}" | "${SYSTEM_ROCKY}" | "${SYSTEM_ALMA}") [[ "${INSTALL_EPEL}" == "True" ]] && EPELMirrors ;; esac } ## 更换基于 openEuler 发行版的软件源 function openEulerMirrors() { GenRepoFiles_openEuler cd $Dir_openEulerRepos sed -e "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" \ -e "s|repo.openeuler.org|${SOURCE}/${SOURCE_BRANCH}|g" \ -i \ openEuler.repo } ## 更换基于 openSUSE 发行版的软件源 function openSUSEMirrors() { case "${SYSTEM_ID}" in "opensuse-leap") GenRepoFiles_openSUSE "leap" "${SYSTEM_VERSION_NUMBER}" ;; "opensuse-tumbleweed") GenRepoFiles_openSUSE "tumbleweed" ;; esac cd $Dir_openSUSERepos # 更换 WEB 协议(HTTP/HTTPS) sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" repo-* # 更换软件源 case "${SYSTEM_ID}" in opensuse-leap) case "${SYSTEM_VERSION_NUMBER}" in 15.[0-2]) sed -i "s|download.opensuse.org|${SOURCE}/${SOURCE_BRANCH}|g" \ repo-debug-non-oss.repo \ repo-debug.repo \ repo-debug-update-non-oss.repo \ repo-debug-update.repo \ repo-non-oss.repo \ repo-oss.repo \ repo-source-non-oss.repo \ repo-source.repo \ repo-update-non-oss.repo \ repo-update.repo ;; *) sed -i "s|download.opensuse.org|${SOURCE}/${SOURCE_BRANCH}|g" \ repo-backports-debug-update.repo \ repo-backports-update.repo \ repo-debug-non-oss.repo \ repo-debug.repo \ repo-debug-update-non-oss.repo \ repo-debug-update.repo \ repo-non-oss.repo \ repo-oss.repo \ repo-sle-debug-update.repo \ repo-sle-update.repo \ repo-source.repo \ repo-update-non-oss.repo \ repo-update.repo ;; esac ;; opensuse-tumbleweed) sed -i "s|download.opensuse.org|${SOURCE}/${SOURCE_BRANCH}|g" \ repo-debug.repo \ repo-non-oss.repo \ repo-openh264.repo \ repo-oss.repo \ repo-source.repo \ repo-update.repo ;; esac } ## 更换基于 Arch Linux 发行版的软件源 function ArchMirrors() { case "${SOURCE_BRANCH}" in "archlinuxarm") echo "Server = ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}/\$arch/\$repo" >>$File_ArchMirrorList ;; "archlinuxcn") echo "Server = ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}/\$arch" >>$File_ArchMirrorList ;; *) echo "Server = ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}/\$repo/os/\$arch" >>$File_ArchMirrorList ;; esac } ## 生成 CentOS 官方 repo 源文件 function GenRepoFiles_CentOS() { case $1 in 8) cat >$Dir_RedHatRepos/CentOS-Linux-AppStream.repo <<\EOF # CentOS-Linux-AppStream.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for CentOS updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [appstream] name=CentOS Linux $releasever - AppStream mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=AppStream&infra=$infra #baseurl=http://mirror.centos.org/$contentdir/$releasever/AppStream/$basearch/os/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial EOF cat >$Dir_RedHatRepos/CentOS-Linux-BaseOS.repo <<\EOF # CentOS-Linux-BaseOS.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for CentOS updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [baseos] name=CentOS Linux $releasever - BaseOS mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=BaseOS&infra=$infra #baseurl=http://mirror.centos.org/$contentdir/$releasever/BaseOS/$basearch/os/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial EOF cat >$Dir_RedHatRepos/CentOS-Linux-ContinuousRelease.repo <<\EOF # CentOS-Linux-ContinuousRelease.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for CentOS updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. # # The Continuous Release (CR) repository contains packages for the next minor # release of CentOS Linux. This repository only has content in the time period # between an upstream release and the official CentOS Linux release. These # packages have not been fully tested yet and should be considered beta # quality. They are made available for people willing to test and provide # feedback for the next release. [cr] name=CentOS Linux $releasever - ContinuousRelease mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=cr&infra=$infra #baseurl=http://mirror.centos.org/$contentdir/$releasever/cr/$basearch/os/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial EOF cat >$Dir_RedHatRepos/CentOS-Linux-Debuginfo.repo <<\EOF # CentOS-Linux-Debuginfo.repo # # All debug packages are merged into a single repo, split by basearch, and are # not signed. [debuginfo] name=CentOS Linux $releasever - Debuginfo baseurl=http://debuginfo.centos.org/$releasever/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial EOF cat >$Dir_RedHatRepos/CentOS-Linux-Devel.repo <<\EOF # CentOS-Linux-Devel.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for CentOS updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [devel] name=CentOS Linux $releasever - Devel WARNING! FOR BUILDROOT USE ONLY! mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=Devel&infra=$infra #baseurl=http://mirror.centos.org/$contentdir/$releasever/Devel/$basearch/os/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial EOF cat >$Dir_RedHatRepos/CentOS-Linux-Extras.repo <<\EOF # CentOS-Linux-Extras.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for CentOS updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [extras] name=CentOS Linux $releasever - Extras mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra #baseurl=http://mirror.centos.org/$contentdir/$releasever/extras/$basearch/os/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial EOF cat >$Dir_RedHatRepos/CentOS-Linux-FastTrack.repo <<\EOF # CentOS-Linux-FastTrack.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for CentOS updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [fasttrack] name=CentOS Linux $releasever - FastTrack mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=fasttrack&infra=$infra #baseurl=http://mirror.centos.org/$contentdir/$releasever/fasttrack/$basearch/os/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial EOF cat >$Dir_RedHatRepos/CentOS-Linux-HighAvailability.repo <<\EOF # CentOS-Linux-HighAvailability.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for CentOS updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [ha] name=CentOS Linux $releasever - HighAvailability mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=HighAvailability&infra=$infra #baseurl=http://mirror.centos.org/$contentdir/$releasever/HighAvailability/$basearch/os/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial EOF cat >$Dir_RedHatRepos/CentOS-Linux-Media.repo <<\EOF # CentOS-Linux-Media.repo # # You can use this repo to install items directly off the installation media. # Verify your mount point matches one of the below file:// paths. [media-baseos] name=CentOS Linux $releasever - Media - BaseOS baseurl=file:///media/CentOS/BaseOS file:///media/cdrom/BaseOS file:///media/cdrecorder/BaseOS gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial [media-appstream] name=CentOS Linux $releasever - Media - AppStream baseurl=file:///media/CentOS/AppStream file:///media/cdrom/AppStream file:///media/cdrecorder/AppStream gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial EOF cat >$Dir_RedHatRepos/CentOS-Linux-Plus.repo <<\EOF # CentOS-Linux-Plus.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for CentOS updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [plus] name=CentOS Linux $releasever - Plus mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra #baseurl=http://mirror.centos.org/$contentdir/$releasever/centosplus/$basearch/os/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial EOF cat >$Dir_RedHatRepos/CentOS-Linux-PowerTools.repo <<\EOF # CentOS-Linux-PowerTools.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for CentOS updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [powertools] name=CentOS Linux $releasever - PowerTools mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=PowerTools&infra=$infra #baseurl=http://mirror.centos.org/$contentdir/$releasever/PowerTools/$basearch/os/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial EOF cat >$Dir_RedHatRepos/CentOS-Linux-Sources.repo <<\EOF # CentOS-Linux-Sources.repo [baseos-source] name=CentOS Linux $releasever - BaseOS - Source baseurl=http://vault.centos.org/$contentdir/$releasever/BaseOS/Source/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial [appstream-source] name=CentOS Linux $releasever - AppStream - Source baseurl=http://vault.centos.org/$contentdir/$releasever/AppStream/Source/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial [extras-source] name=CentOS Linux $releasever - Extras - Source baseurl=http://vault.centos.org/$contentdir/$releasever/extras/Source/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial [plus-source] name=CentOS Linux $releasever - Plus - Source baseurl=http://vault.centos.org/$contentdir/$releasever/centosplus/Source/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial EOF ;; 7) cat >$Dir_RedHatRepos/CentOS-Base.repo <<\EOF # CentOS-Base.repo # # The mirror system uses the connecting IP address of the client and the # update status of each mirror to pick mirrors that are updated to and # geographically close to the client. You should use this for CentOS updates # unless you are manually picking other mirrors. # # If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead. # # [base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #released updates [updates] name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 EOF cat >$Dir_RedHatRepos/CentOS-CR.repo <<\EOF # CentOS-CR.repo # # The Continuous Release ( CR ) repository contains rpms that are due in the next # release for a specific CentOS Version ( eg. next release in CentOS-7 ); these rpms # are far less tested, with no integration checking or update path testing having # taken place. They are still built from the upstream sources, but might not map # to an exact upstream distro release. # # These packages are made available soon after they are built, for people willing # to test their environments, provide feedback on content for the next release, and # for people looking for early-access to next release content. # # The CR repo is shipped in a disabled state by default; its important that users # understand the implications of turning this on. # # NOTE: We do not use a mirrorlist for the CR repos, to ensure content is available # to everyone as soon as possible, and not need to wait for the external # mirror network to seed first. However, many local mirrors will carry CR repos # and if desired you can use one of these local mirrors by editing the baseurl # line in the repo config below. # [cr] name=CentOS-$releasever - cr baseurl=http://mirror.centos.org/centos/$releasever/cr/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 enabled=0 EOF cat >$Dir_RedHatRepos/CentOS-Debuginfo.repo <<\EOF # CentOS-Debug.repo # # The mirror system uses the connecting IP address of the client and the # update status of each mirror to pick mirrors that are updated to and # geographically close to the client. You should use this for CentOS updates # unless you are manually picking other mirrors. # # All debug packages from all the various CentOS-7 releases # are merged into a single repo, split by BaseArch # # Note: packages in the debuginfo repo are currently not signed # [base-debuginfo] name=CentOS-7 - Debuginfo baseurl=http://debuginfo.centos.org/7/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-Debug-7 enabled=0 # EOF cat >$Dir_RedHatRepos/CentOS-fasttrack.repo <<\EOF [fasttrack] name=CentOS-7 - fasttrack mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=fasttrack&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/fasttrack/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 EOF cat >$Dir_RedHatRepos/CentOS-Media.repo <<\EOF # CentOS-Media.repo # # This repo can be used with mounted DVD media, verify the mount point for # CentOS-7. You can use this repo and yum to install items directly off the # DVD ISO that we release. # # To use this repo, put in your DVD and use it with the other repos too: # yum --enablerepo=c7-media [command] # # or for ONLY the media repo, do this: # # yum --disablerepo=\* --enablerepo=c7-media [command] [c7-media] name=CentOS-$releasever - Media baseurl=file:///media/CentOS/ file:///media/cdrom/ file:///media/cdrecorder/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 EOF cat >$Dir_RedHatRepos/CentOS-Sources.repo <<\EOF # CentOS-Sources.repo # # The mirror system uses the connecting IP address of the client and the # update status of each mirror to pick mirrors that are updated to and # geographically close to the client. You should use this for CentOS updates # unless you are manually picking other mirrors. # # If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead. # # [base-source] name=CentOS-$releasever - Base Sources baseurl=http://vault.centos.org/centos/$releasever/os/Source/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #released updates [updates-source] name=CentOS-$releasever - Updates Sources baseurl=http://vault.centos.org/centos/$releasever/updates/Source/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras-source] name=CentOS-$releasever - Extras Sources baseurl=http://vault.centos.org/centos/$releasever/extras/Source/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus-source] name=CentOS-$releasever - Plus Sources baseurl=http://vault.centos.org/centos/$releasever/centosplus/Source/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 EOF ;; esac } ## 生成 CentOS Stream 官方 repo 源文件 function GenRepoFiles_CentOSStream() { case $1 in 9) cat >$Dir_RedHatRepos/centos.repo <<\EOF [baseos] name=CentOS Stream $releasever - BaseOS #baseurl=https://mirror.stream.centos.org/$releasever-stream/BaseOS/$basearch/os/ metalink=https://mirrors.centos.org/metalink?repo=centos-baseos-$stream&arch=$basearch&protocol=https,http gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h countme=1 enabled=1 [baseos-debug] name=CentOS Stream $releasever - BaseOS - Debug metalink=https://mirrors.centos.org/metalink?repo=centos-baseos-debug-$stream&arch=$basearch&protocol=https,http gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h enabled=0 [baseos-source] name=CentOS Stream $releasever - BaseOS - Source metalink=https://mirrors.centos.org/metalink?repo=centos-baseos-source-$stream&arch=source&protocol=https,http gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h enabled=0 [appstream] name=CentOS Stream $releasever - AppStream #baseurl=https://mirror.stream.centos.org/$releasever-stream/AppStream/$basearch/os/ metalink=https://mirrors.centos.org/metalink?repo=centos-appstream-$stream&arch=$basearch&protocol=https,http gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h countme=1 enabled=1 [appstream-debug] name=CentOS Stream $releasever - AppStream - Debug metalink=https://mirrors.centos.org/metalink?repo=centos-appstream-debug-$stream&arch=$basearch&protocol=https,http gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h enabled=0 [appstream-source] name=CentOS Stream $releasever - AppStream - Source metalink=https://mirrors.centos.org/metalink?repo=centos-appstream-source-$stream&arch=source&protocol=https,http gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h enabled=0 [crb] name=CentOS Stream $releasever - CRB #baseurl=https://mirror.stream.centos.org/$releasever-stream/CRB/$basearch/os/ metalink=https://mirrors.centos.org/metalink?repo=centos-crb-$stream&arch=$basearch&protocol=https,http gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h countme=1 enabled=0 [crb-debug] name=CentOS Stream $releasever - CRB - Debug metalink=https://mirrors.centos.org/metalink?repo=centos-crb-debug-$stream&arch=$basearch&protocol=https,http gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h enabled=0 [crb-source] name=CentOS Stream $releasever - CRB - Source metalink=https://mirrors.centos.org/metalink?repo=centos-crb-source-$stream&arch=source&protocol=https,http gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h enabled=0 EOF cat >$Dir_RedHatRepos/centos-addons.repo <<\EOF [highavailability] name=CentOS Stream $releasever - HighAvailability #baseurl=https://mirror.stream.centos.org/$releasever-stream/HighAvailability/$basearch/os/ metalink=https://mirrors.centos.org/metalink?repo=centos-highavailability-$stream&arch=$basearch&protocol=https,http gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h countme=1 enabled=0 [highavailability-debug] name=CentOS Stream $releasever - HighAvailability - Debug metalink=https://mirrors.centos.org/metalink?repo=centos-highavailability-debug-$stream&arch=$basearch&protocol=https,http gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h enabled=0 [highavailability-source] name=CentOS Stream $releasever - HighAvailability - Source metalink=https://mirrors.centos.org/metalink?repo=centos-highavailability-source-$stream&arch=source&protocol=https,http gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h enabled=0 [nfv] name=CentOS Stream $releasever - NFV #baseurl=https://mirror.stream.centos.org/$releasever-stream/NFV/$basearch/os/ metalink=https://mirrors.centos.org/metalink?repo=centos-nfv-$stream&arch=$basearch&protocol=https,http gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h countme=1 enabled=0 [nfv-debug] name=CentOS Stream $releasever - NFV - Debug metalink=https://mirrors.centos.org/metalink?repo=centos-nfv-debug-$stream&arch=$basearch&protocol=https,http gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h enabled=0 [nfv-source] name=CentOS Stream $releasever - NFV - Source metalink=https://mirrors.centos.org/metalink?repo=centos-nfv-source-$stream&arch=source&protocol=https,http gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h enabled=0 [rt] name=CentOS Stream $releasever - RT #baseurl=https://mirror.stream.centos.org/$releasever-stream/RT/$basearch/os/ metalink=https://mirrors.centos.org/metalink?repo=centos-rt-$stream&arch=$basearch&protocol=https,http gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h countme=1 enabled=0 [rt-debug] name=CentOS Stream $releasever - RT - Debug metalink=https://mirrors.centos.org/metalink?repo=centos-rt-debug-$stream&arch=$basearch&protocol=https,http gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h enabled=0 [rt-source] name=CentOS Stream $releasever - RT - Source metalink=https://mirrors.centos.org/metalink?repo=centos-rt-source-$stream&arch=source&protocol=https,http gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h enabled=0 [resilientstorage] name=CentOS Stream $releasever - ResilientStorage #baseurl=https://mirror.stream.centos.org/$releasever-stream/ResilientStorage/$basearch/os/ metalink=https://mirrors.centos.org/metalink?repo=centos-resilientstorage-$stream&arch=$basearch&protocol=https,http gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h countme=1 enabled=0 [resilientstorage-debug] name=CentOS Stream $releasever - ResilientStorage - Debug metalink=https://mirrors.centos.org/metalink?repo=centos-resilientstorage-debug-$stream&arch=$basearch&protocol=https,http gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h enabled=0 [resilientstorage-source] name=CentOS Stream $releasever - ResilientStorage - Source metalink=https://mirrors.centos.org/metalink?repo=centos-resilientstorage-source-$stream&arch=source&protocol=https,http gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h enabled=0 [extras-common] name=CentOS Stream $releasever - Extras packages #baseurl=https://mirror.stream.centos.org/SIGs/$releasever-stream/extras/$basearch/extras-common/ metalink=https://mirrors.centos.org/metalink?repo=centos-extras-sig-extras-common-$stream&arch=$basearch&protocol=https,http gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Extras-SHA512 gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h countme=1 enabled=1 [extras-common-source] name=CentOS Stream $releasever - Extras packages - Source metalink=https://mirrors.centos.org/metalink?repo=centos-extras-sig-extras-common-source-$stream&arch=source&protocol=https,http gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Extras-SHA512 gpgcheck=1 repo_gpgcheck=0 metadata_expire=6h enabled=0 EOF ;; 8) cat >$Dir_RedHatRepos/CentOS-Stream-AppStream.repo <<\EOF # CentOS-Stream-AppStream.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for CentOS updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [appstream] name=CentOS Stream $releasever - AppStream mirrorlist=http://mirrorlist.centos.org/?release=$stream&arch=$basearch&repo=AppStream&infra=$infra #baseurl=http://mirror.centos.org/$contentdir/$stream/AppStream/$basearch/os/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial EOF cat >$Dir_RedHatRepos/CentOS-Stream-BaseOS.repo <<\EOF # CentOS-Stream-BaseOS.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for CentOS updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [baseos] name=CentOS Stream $releasever - BaseOS mirrorlist=http://mirrorlist.centos.org/?release=$stream&arch=$basearch&repo=BaseOS&infra=$infra #baseurl=http://mirror.centos.org/$contentdir/$stream/BaseOS/$basearch/os/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial EOF cat >$Dir_RedHatRepos/CentOS-Stream-Debuginfo.repo <<\EOF # CentOS-Stream-Debuginfo.repo # # All debug packages are merged into a single repo, split by basearch, and are # not signed. [debuginfo] name=CentOS Stream $releasever - Debuginfo baseurl=http://debuginfo.centos.org/$stream/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial EOF cat >$Dir_RedHatRepos/CentOS-Stream-Extras-common.repo <<\EOF # CentOS-Stream-Extras-common.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for CentOS updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [extras-common] name=CentOS Stream $releasever - Extras common packages mirrorlist=http://mirrorlist.centos.org/?release=$stream&arch=$basearch&repo=extras-extras-common #baseurl=http://mirror.centos.org/$contentdir/$stream/extras/$basearch/extras-common/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Extras EOF cat >$Dir_RedHatRepos/CentOS-Stream-Extras.repo <<\EOF # CentOS-Stream-Extras.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for CentOS updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [extras] name=CentOS Stream $releasever - Extras mirrorlist=http://mirrorlist.centos.org/?release=$stream&arch=$basearch&repo=extras&infra=$infra #baseurl=http://mirror.centos.org/$contentdir/$stream/extras/$basearch/os/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial EOF cat >$Dir_RedHatRepos/CentOS-Stream-HighAvailability.repo <<\EOF # CentOS-Stream-HighAvailability.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for CentOS updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [ha] name=CentOS Stream $releasever - HighAvailability mirrorlist=http://mirrorlist.centos.org/?release=$stream&arch=$basearch&repo=HighAvailability&infra=$infra #baseurl=http://mirror.centos.org/$contentdir/$stream/HighAvailability/$basearch/os/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial EOF cat >$Dir_RedHatRepos/CentOS-Stream-Media.repo <<\EOF # CentOS-Stream-Media.repo # # You can use this repo to install items directly off the installation media. # Verify your mount point matches one of the below file:// paths. [media-baseos] name=CentOS Stream $releasever - Media - BaseOS baseurl=file:///media/CentOS/BaseOS file:///media/cdrom/BaseOS file:///media/cdrecorder/BaseOS gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial [media-appstream] name=CentOS Stream $releasever - Media - AppStream baseurl=file:///media/CentOS/AppStream file:///media/cdrom/AppStream file:///media/cdrecorder/AppStream gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial EOF cat >$Dir_RedHatRepos/CentOS-Stream-NFV.repo <<\EOF # CentOS-Stream-NFV.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for CentOS updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [nfv] name=CentOS Stream $releasever - NFV mirrorlist=http://mirrorlist.centos.org/?release=$stream&arch=$basearch&repo=NFV&infra=$infra #baseurl=http://mirror.centos.org/$contentdir/$stream/NFV/$basearch/os/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial EOF cat >$Dir_RedHatRepos/CentOS-Stream-PowerTools.repo <<\EOF # CentOS-Stream-PowerTools.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for CentOS updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [powertools] name=CentOS Stream $releasever - PowerTools mirrorlist=http://mirrorlist.centos.org/?release=$stream&arch=$basearch&repo=PowerTools&infra=$infra #baseurl=http://mirror.centos.org/$contentdir/$stream/PowerTools/$basearch/os/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial EOF cat >$Dir_RedHatRepos/CentOS-Stream-RealTime.repo <<\EOF # CentOS-Stream-RealTime.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for CentOS updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [rt] name=CentOS Stream $releasever - RealTime mirrorlist=http://mirrorlist.centos.org/?release=$stream&arch=$basearch&repo=RT&infra=$infra #baseurl=http://mirror.centos.org/$contentdir/$stream/RT/$basearch/os/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial EOF cat >$Dir_RedHatRepos/CentOS-Stream-ResilientStorage.repo <<\EOF # CentOS-Stream-ResilientStorage.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for CentOS updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [resilientstorage] name=CentOS Stream $releasever - ResilientStorage mirrorlist=http://mirrorlist.centos.org/?release=$stream&arch=$basearch&repo=ResilientStorage&infra=$infra #baseurl=http://mirror.centos.org/$contentdir/$stream/ResilientStorage/$basearch/os/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial EOF cat >$Dir_RedHatRepos/CentOS-Stream-Sources.repo <<\EOF # CentOS-Stream-Sources.repo [baseos-source] name=CentOS Stream $releasever - BaseOS - Source baseurl=http://vault.centos.org/$contentdir/$stream/BaseOS/Source/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial [appstream-source] name=CentOS Stream $releasever - AppStream - Source baseurl=http://vault.centos.org/$contentdir/$stream/AppStream/Source/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial [powertools-source] name=CentOS Stream $releasever - PowerTools - Source baseurl=http://vault.centos.org/$contentdir/$stream/PowerTools/Source/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial [extras-source] name=CentOS Stream $releasever - Extras - Source baseurl=http://vault.centos.org/$contentdir/$stream/extras/Source/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial [ha-source] name=CentOS Stream $releasever - HighAvailability - Source baseurl=http://vault.centos.org/$contentdir/$stream/HighAvailability/Source/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial [rt-source] name=CentOS Stream $releasever - RT - Source baseurl=http://vault.centos.org/$contentdir/$stream/RT/Source/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial [resilientstorage-source] name=CentOS Stream $releasever - ResilientStorage - Source baseurl=http://vault.centos.org/$contentdir/$stream/ResilientStorage/Source/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial [nfv-source] name=CentOS Stream $releasever - NFV - Source baseurl=http://vault.centos.org/$contentdir/$stream/NFV/Source/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial EOF ;; esac } ## 生成 Rocky Linux 官方 repo 源文件 function GenRepoFiles_RockyLinux() { case $1 in 9) cat >$Dir_RedHatRepos/rocky.repo <<\EOF # rocky.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for Rocky updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [baseos] name=Rocky Linux $releasever - BaseOS mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=BaseOS-$releasever$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/BaseOS/$basearch/os/ gpgcheck=1 enabled=1 countme=1 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [baseos-debug] name=Rocky Linux $releasever - BaseOS - Debug mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=BaseOS-$releasever-debug$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/BaseOS/$basearch/debug/tree/ gpgcheck=1 enabled=0 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [baseos-source] name=Rocky Linux $releasever - BaseOS - Source mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=source&repo=BaseOS-$releasever-source$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/BaseOS/source/tree/ gpgcheck=1 enabled=0 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [appstream] name=Rocky Linux $releasever - AppStream mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=AppStream-$releasever$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/AppStream/$basearch/os/ gpgcheck=1 enabled=1 countme=1 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [appstream-debug] name=Rocky Linux $releasever - AppStream - Debug mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=AppStream-$releasever-debug$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/AppStream/$basearch/debug/tree/ gpgcheck=1 enabled=0 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [appstream-source] name=Rocky Linux $releasever - AppStream - Source mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=source&repo=AppStream-$releasever-source$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/AppStream/source/tree/ gpgcheck=1 enabled=0 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [crb] name=Rocky Linux $releasever - CRB mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=CRB-$releasever$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/CRB/$basearch/os/ gpgcheck=1 enabled=0 countme=1 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [crb-debug] name=Rocky Linux $releasever - CRB - Debug mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=CRB-$releasever-debug$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/CRB/$basearch/debug/tree/ gpgcheck=1 enabled=0 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [crb-source] name=Rocky Linux $releasever - CRB - Source mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=source&repo=CRB-$releasever-source$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/CRB/source/tree/ gpgcheck=1 enabled=0 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 EOF cat >$Dir_RedHatRepos/rocky-addons.repo <<\EOF # rocky-addons.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for Rocky updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [highavailability] name=Rocky Linux $releasever - High Availability mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=HighAvailability-$releasever$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/HighAvailability/$basearch/os/ gpgcheck=1 enabled=0 countme=1 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [highavailability-debug] name=Rocky Linux $releasever - High Availability - Debug mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=HighAvailability-$releasever-debug$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/HighAvailability/$basearch/debug/tree/ gpgcheck=1 enabled=0 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [highavailability-source] name=Rocky Linux $releasever - High Availability - Source mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=source&repo=HighAvailability-$releasever-source$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/HighAvailability/source/tree/ gpgcheck=1 enabled=0 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [resilientstorage] name=Rocky Linux $releasever - Resilient Storage mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=ResilientStorage-$releasever$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/ResilientStorage/$basearch/os/ gpgcheck=1 enabled=0 countme=1 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [resilientstorage-debug] name=Rocky Linux $releasever - Resilient Storage - Debug mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=ResilientStorage-$releasever-debug$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/ResilientStorage/$basearch/debug/tree/ gpgcheck=1 enabled=0 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [resilientstorage-source] name=Rocky Linux $releasever - Resilient Storage - Source mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=source&repo=ResilientStorage-$releasever-source$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/ResilientStorage/source/tree/ gpgcheck=1 enabled=0 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [nfv] name=Rocky Linux $releasever - NFV mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=NFV-$releasever$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/NFV/$basearch/os/ gpgcheck=1 enabled=0 countme=1 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [nfv-debug] name=Rocky Linux $releasever - NFV Debug mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=RT-$releasever-debug$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/NFV/$basearch/debug/tree/ gpgcheck=1 enabled=0 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [nfv-source] name=Rocky Linux $releasever - NFV Source mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=RT-$releasever-source$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/NFV/source/tree/ gpgcheck=1 enabled=0 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [rt] name=Rocky Linux $releasever - Realtime mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=RT-$releasever$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/RT/$basearch/os/ gpgcheck=1 enabled=0 countme=1 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [rt-debug] name=Rocky Linux $releasever - Realtime Debug mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=RT-$releasever-debug$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/RT/$basearch/debug/tree/ gpgcheck=1 enabled=0 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [rt-source] name=Rocky Linux $releasever - Realtime Source mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=RT-$releasever-source$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/RT/source/tree/ gpgcheck=1 enabled=0 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [sap] name=Rocky Linux $releasever - SAP mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=SAP-$releasever$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/SAP/$basearch/os/ gpgcheck=1 enabled=0 countme=1 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [sap-debug] name=Rocky Linux $releasever - SAP Debug mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=SAP-$releasever-debug$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/SAP/$basearch/debug/tree/ gpgcheck=1 enabled=0 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [sap-source] name=Rocky Linux $releasever - SAP Source mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=SAP-$releasever-source$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/SAP/source/tree/ gpgcheck=1 enabled=0 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [saphana] name=Rocky Linux $releasever - SAPHANA mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=SAPHANA-$releasever$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/SAPHANA/$basearch/os/ gpgcheck=1 enabled=0 countme=1 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [saphana-debug] name=Rocky Linux $releasever - SAPHANA Debug mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=SAPHANA-$releasever-debug$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/SAPHANA/$basearch/debug/tree/ gpgcheck=1 enabled=0 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [saphana-source] name=Rocky Linux $releasever - SAPHANA Source mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=SAPHANA-$releasever-source$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/SAPHANA/source/tree/ gpgcheck=1 enabled=0 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 EOF cat >$Dir_RedHatRepos/rocky-devel.repo <<\EOF # rocky-devel.repo # # devel and no-package-left-behind [devel] name=Rocky Linux $releasever - Devel WARNING! FOR BUILDROOT ONLY DO NOT LEAVE ENABLED mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=devel-$releasever$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/devel/$basearch/os/ gpgcheck=1 enabled=0 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 EOF cat >$Dir_RedHatRepos/rocky-extras.repo <<\EOF # rocky-extras.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for Rocky updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [extras] name=Rocky Linux $releasever - Extras mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=extras-$releasever$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/extras/$basearch/os/ gpgcheck=1 enabled=1 countme=1 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [extras-debug] name=Rocky Linux $releasever - Extras Debug mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=extras-$releasever-debug$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/extras/$basearch/debug/tree/ gpgcheck=1 enabled=0 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [extras-source] name=Rocky Linux $releasever - Extras Source mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=extras-$releasever-source$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/extras/source/tree/ gpgcheck=1 enabled=0 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [plus] name=Rocky Linux $releasever - Plus mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=plus-$releasever$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/plus/$basearch/os/ gpgcheck=1 enabled=0 countme=1 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [plus-debug] name=Rocky Linux $releasever - Plus - Debug mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=plus-$releasever-debug$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/plus/$basearch/debug/tree/ gpgcheck=1 enabled=0 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 [plus-source] name=Rocky Linux $releasever - Plus - Source mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=source&repo=plus-$releasever-source$rltype #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/plus/source/tree/ gpgcheck=1 enabled=0 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 EOF ;; 8) cat >$Dir_RedHatRepos/Rocky-AppStream.repo <<\EOF # Rocky-AppStream.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for Rocky updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [appstream] name=Rocky Linux $releasever - AppStream mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=AppStream-$releasever #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/AppStream/$basearch/os/ gpgcheck=1 enabled=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial EOF cat >$Dir_RedHatRepos/Rocky-BaseOS.repo <<\EOF # Rocky-BaseOS.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for Rocky updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [baseos] name=Rocky Linux $releasever - BaseOS mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=BaseOS-$releasever #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/BaseOS/$basearch/os/ gpgcheck=1 enabled=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial EOF cat >$Dir_RedHatRepos/Rocky-Debuginfo.repo <<\EOF # Rocky-Debuginfo.repo # [baseos-debug] name=Rocky Linux $releasever - BaseOS - Source mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=BaseOS-$releasever-debug #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/BaseOS/$basearch/debug/tree/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial [appstream-debug] name=Rocky Linux $releasever - AppStream - Source mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=AppStream-$releasever-debug #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/AppStream/$basearch/debug/tree/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial [ha-debug] name=Rocky Linux $releasever - High Availability - Source mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=HighAvailability-$releasever-debug #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/HighAvailability/$basearch/debug/tree/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial [powertools-debug] name=Rocky Linux $releasever - PowerTools - Source mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=PowerTools-$releasever-debug #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/PowerTools/$basearch/debug/tree/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial [resilient-storage-debug] name=Rocky Linux $releasever - Resilient Storage - Source mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=ResilientStorage-$releasever-debug #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/ResilientStorage/$basearch/debug/tree/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial EOF cat >$Dir_RedHatRepos/Rocky-Devel.repo <<\EOF # Rocky-Devel.repo # [devel] name=Rocky Linux $releasever - Devel WARNING! FOR BUILDROOT AND KOJI USE mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=Devel-$releasever #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/Devel/$basearch/os/ gpgcheck=1 enabled=0 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial EOF cat >$Dir_RedHatRepos/Rocky-Extras.repo <<\EOF # Rocky-Extras.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for Rocky updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [extras] name=Rocky Linux $releasever - Extras mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=extras-$releasever #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/extras/$basearch/os/ gpgcheck=1 enabled=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial EOF cat >$Dir_RedHatRepos/Rocky-HighAvailability.repo <<\EOF # Rocky-HighAvailability.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for Rocky updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [ha] name=Rocky Linux $releasever - HighAvailability mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=HighAvailability-$releasever #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/HighAvailability/$basearch/os/ gpgcheck=1 enabled=0 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial EOF cat >$Dir_RedHatRepos/Rocky-Media.repo <<\EOF # Rocky-Media.repo # # You can use this repo to install items directly off the installation media. # Verify your mount point matches one of the below file:// paths. [media-baseos] name=Rocky Linux $releasever - Media - BaseOS baseurl=file:///media/Rocky/BaseOS file:///media/cdrom/BaseOS file:///media/cdrecorder/BaseOS gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial [media-appstream] name=Rocky Linux $releasever - Media - AppStream baseurl=file:///media/Rocky/AppStream file:///media/cdrom/AppStream file:///media/cdrecorder/AppStream gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial EOF cat >$Dir_RedHatRepos/Rocky-NFV.repo <<\EOF # Rocky-NFV.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for Rocky updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [nfv] name=Rocky Linux $releasever - NFV mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=NFV-$releasever #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/nfv/$basearch/os/ gpgcheck=1 enabled=0 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial EOF cat >$Dir_RedHatRepos/Rocky-Plus.repo <<\EOF # Rocky-Plus.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for Rocky updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [plus] name=Rocky Linux $releasever - Plus mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=rockyplus-$releasever #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/plus/$basearch/os/ gpgcheck=1 enabled=0 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial EOF cat >$Dir_RedHatRepos/Rocky-PowerTools.repo <<\EOF # Rocky-PowerTools.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for Rocky updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [powertools] name=Rocky Linux $releasever - PowerTools mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=PowerTools-$releasever #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/PowerTools/$basearch/os/ gpgcheck=1 enabled=0 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial EOF cat >$Dir_RedHatRepos/Rocky-ResilientStorage.repo <<\EOF # Rocky-ResilientStorage.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for Rocky updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [resilient-storage] name=Rocky Linux $releasever - ResilientStorage mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=ResilientStorage-$releasever #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/ResilientStorage/$basearch/os/ gpgcheck=1 enabled=0 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial EOF cat >$Dir_RedHatRepos/Rocky-RT.repo <<\EOF # Rocky-RT.repo # # The mirrorlist system uses the connecting IP address of the client and the # update status of each mirror to pick current mirrors that are geographically # close to the client. You should use this for Rocky updates unless you are # manually picking other mirrors. # # If the mirrorlist does not work for you, you can try the commented out # baseurl line instead. [rt] name=Rocky Linux $releasever - Realtime mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=RT-$releasever #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/RT/$basearch/os/ gpgcheck=1 enabled=0 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial EOF cat >$Dir_RedHatRepos/Rocky-Sources.repo <<\EOF # Rocky-Sources.repo [baseos-source] name=Rocky Linux $releasever - BaseOS - Source mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=source&repo=BaseOS-$releasever-source #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/BaseOS/source/tree/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial [appstream-source] name=Rocky Linux $releasever - AppStream - Source mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=source&repo=AppStream-$releasever-source #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/AppStream/source/tree/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial #[extras-source] #name=Rocky Linux $releasever - Extras - Source #mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=source&repo=extras-$releasever-source #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/extras/source/tree/ #gpgcheck=1 #enabled=0 #gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial #[plus-source] #name=Rocky Linux $releasever - Plus - Source #mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=source&repo=plus-$releasever-source #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/Plus/source/tree/ #gpgcheck=1 #enabled=0 #gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial [ha-source] name=Rocky Linux $releasever - High Availability - Source mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=source&repo=HighAvailability-$releasever-source #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/HighAvailability/source/tree/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial [powertools-source] name=Rocky Linux $releasever - PowerTools - Source mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=source&repo=PowerTools-$releasever-source #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/PowerTools/source/tree/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial [resilient-storage-source] name=Rocky Linux $releasever - Resilient Storage - Source mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=source&repo=ResilientStorage-$releasever-source #baseurl=http://dl.rockylinux.org/$contentdir/$releasever/ResilientStorage/source/tree/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial EOF ;; esac } ## 生成 AlmaLinux 官方 repo 源文件 function GenRepoFiles_AlmaLinux() { case $1 in 9) cat >$Dir_RedHatRepos/almalinux-appstream.repo <<\EOF [appstream] name=AlmaLinux $releasever - AppStream mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/appstream # baseurl=https://repo.almalinux.org/almalinux/$releasever/AppStream/$basearch/os/ enabled=1 gpgcheck=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=1 [appstream-debug] name=AlmaLinux $releasever - AppStream - Debug mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/appstream-debug # baseurl=https://repo.almalinux.org/vault/$releasever/AppStream/debug/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 [appstream-source] name=AlmaLinux $releasever - AppStream - Source mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/appstream-source # baseurl=https://repo.almalinux.org/vault/$releasever/AppStream/Source/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 EOF cat >$Dir_RedHatRepos/almalinux-baseos.repo <<\EOF [baseos] name=AlmaLinux $releasever - BaseOS mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/baseos # baseurl=https://repo.almalinux.org/almalinux/$releasever/BaseOS/$basearch/os/ enabled=1 gpgcheck=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=1 [baseos-debug] name=AlmaLinux $releasever - BaseOS - Debug mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/baseos-debug # baseurl=https://repo.almalinux.org/vault/$releasever/BaseOS/debug/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 [baseos-source] name=AlmaLinux $releasever - BaseOS - Source mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/baseos-source # baseurl=https://repo.almalinux.org/vault/$releasever/BaseOS/Source/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 EOF cat >$Dir_RedHatRepos/almalinux-crb.repo <<\EOF [crb] name=AlmaLinux $releasever - CRB mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/crb # baseurl=https://repo.almalinux.org/almalinux/$releasever/CRB/$basearch/os/ enabled=0 gpgcheck=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 [crb-debug] name=AlmaLinux $releasever - CRB - Debug mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/crb-debug # baseurl=https://repo.almalinux.org/vault/$releasever/CRB/debug/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 [crb-source] name=AlmaLinux $releasever - CRB - Source mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/crb-source # baseurl=https://repo.almalinux.org/vault/$releasever/CRB/Source/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 EOF cat >$Dir_RedHatRepos/almalinux-extras.repo <<\EOF [extras] name=AlmaLinux $releasever - Extras mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/extras # baseurl=https://repo.almalinux.org/almalinux/$releasever/extras/$basearch/os/ enabled=1 gpgcheck=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 [extras-debug] name=AlmaLinux $releasever - Extras - Debug mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/extras-debug # baseurl=https://repo.almalinux.org/vault/$releasever/extras/debug/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 [extras-source] name=AlmaLinux $releasever - Extras - Source mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/extras-source # baseurl=https://repo.almalinux.org/vault/$releasever/extras/Source/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 EOF cat >$Dir_RedHatRepos/almalinux-highavailability.repo <<\EOF [highavailability] name=AlmaLinux $releasever - HighAvailability mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/highavailability # baseurl=https://repo.almalinux.org/almalinux/$releasever/HighAvailability/$basearch/os/ enabled=0 gpgcheck=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 [highavailability-debug] name=AlmaLinux $releasever - HighAvailability - Debug mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/highavailability-debug # baseurl=https://repo.almalinux.org/vault/$releasever/HighAvailability/debug/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 [highavailability-source] name=AlmaLinux $releasever - HighAvailability - Source mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/highavailability-source # baseurl=https://repo.almalinux.org/vault/$releasever/HighAvailability/Source/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 EOF cat >$Dir_RedHatRepos/almalinux-nfv.repo <<\EOF [nfv] name=AlmaLinux $releasever - NFV mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/nfv # baseurl=https://repo.almalinux.org/almalinux/$releasever/NFV/$basearch/os/ enabled=0 gpgcheck=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 [nfv-debug] name=AlmaLinux $releasever - NFV - Debug mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/nfv-debug # baseurl=https://repo.almalinux.org/vault/$releasever/NFV/debug/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 [nfv-source] name=AlmaLinux $releasever - NFV - Source mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/nfv-source # baseurl=https://repo.almalinux.org/vault/$releasever/NFV/Source/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 EOF cat >$Dir_RedHatRepos/almalinux-plus.repo <<\EOF [plus] name=AlmaLinux $releasever - Plus mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/plus # baseurl=https://repo.almalinux.org/almalinux/$releasever/plus/$basearch/os/ enabled=0 gpgcheck=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 [plus-debug] name=AlmaLinux $releasever - Plus - Debug mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/plus-debug # baseurl=https://repo.almalinux.org/vault/$releasever/plus/debug/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 [plus-source] name=AlmaLinux $releasever - Plus - Source mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/plus-source # baseurl=https://repo.almalinux.org/vault/$releasever/plus/Source/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 EOF cat >$Dir_RedHatRepos/almalinux-resilientstorage.repo <<\EOF [resilientstorage] name=AlmaLinux $releasever - ResilientStorage mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/resilientstorage # baseurl=https://repo.almalinux.org/almalinux/$releasever/ResilientStorage/$basearch/os/ enabled=0 gpgcheck=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 [resilientstorage-debug] name=AlmaLinux $releasever - ResilientStorage - Debug mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/resilientstorage-debug # baseurl=https://repo.almalinux.org/vault/$releasever/ResilientStorage/debug/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 [resilientstorage-source] name=AlmaLinux $releasever - ResilientStorage - Source mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/resilientstorage-source # baseurl=https://repo.almalinux.org/vault/$releasever/ResilientStorage/Source/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 EOF cat >$Dir_RedHatRepos/almalinux-rt.repo <<\EOF [rt] name=AlmaLinux $releasever - RT mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/rt # baseurl=https://repo.almalinux.org/almalinux/$releasever/RT/$basearch/os/ enabled=0 gpgcheck=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 [rt-debug] name=AlmaLinux $releasever - RT - Debug mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/rt-debug # baseurl=https://repo.almalinux.org/vault/$releasever/RT/debug/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 [rt-source] name=AlmaLinux $releasever - RT - Source mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/rt-source # baseurl=https://repo.almalinux.org/vault/$releasever/RT/Source/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 EOF cat >$Dir_RedHatRepos/almalinux-sap.repo <<\EOF [sap] name=AlmaLinux $releasever - SAP mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/sap # baseurl=https://repo.almalinux.org/almalinux/$releasever/SAP/$basearch/os/ enabled=0 gpgcheck=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 [sap-debug] name=AlmaLinux $releasever - SAP - Debug mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/sap-debug # baseurl=https://repo.almalinux.org/vault/$releasever/SAP/debug/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 [sap-source] name=AlmaLinux $releasever - SAP - Source mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/sap-source # baseurl=https://repo.almalinux.org/vault/$releasever/SAP/Source/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 EOF cat >$Dir_RedHatRepos/almalinux-saphana.repo <<\EOF [saphana] name=AlmaLinux $releasever - SAPHANA mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/saphana # baseurl=https://repo.almalinux.org/almalinux/$releasever/SAPHANA/$basearch/os/ enabled=0 gpgcheck=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 [saphana-debug] name=AlmaLinux $releasever - SAPHANA - Debug mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/saphana-debug # baseurl=https://repo.almalinux.org/vault/$releasever/SAPHANA/debug/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 [saphana-source] name=AlmaLinux $releasever - SAPHANA - Source mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/saphana-source # baseurl=https://repo.almalinux.org/vault/$releasever/SAPHANA/Source/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9 metadata_expire=86400 enabled_metadata=0 EOF ;; 8) cat >$Dir_RedHatRepos/almalinux-ha.repo <<\EOF # almalinux-ha.repo [ha] name=AlmaLinux $releasever - HighAvailability mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/ha # baseurl=https://repo.almalinux.org/almalinux/$releasever/HighAvailability/$basearch/os/ enabled=0 gpgcheck=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux ## Sources [ha-source] name=AlmaLinux $releasever - HighAvailability Source mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/ha-source # baseurl=https://repo.almalinux.org/vault/$releasever/HighAvailability/Source/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux ## Debuginfo [ha-debuginfo] name=AlmaLinux $releasever - HighAvailability debuginfo mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/ha-debuginfo # baseurl=https://repo.almalinux.org/vault/$releasever/HighAvailability/debug/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux EOF cat >$Dir_RedHatRepos/almalinux-nfv.repo <<\EOF # almalinux-nfv.repo [nfv] name=AlmaLinux $releasever - Real Time for NFV mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/nfv # baseurl=https://repo.almalinux.org/almalinux/$releasever/NFV/$basearch/os/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux ## Sources [nfv-source] name=AlmaLinux $releasever - Real Time for NFV Sources mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/nfv-source # baseurl=https://repo.almalinux.org/vault/$releasever/NFV/Source/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux ## Debuginfo [nfv-debuginfo] name=AlmaLinux $releasever - Real Time for NFV Debuginfo mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/nfv-debuginfo # baseurl=https://repo.almalinux.org/vault/$releasever/NFV/debug/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux EOF cat >$Dir_RedHatRepos/almalinux-plus.repo <<\EOF # almalinux-plus.repo [plus] name=AlmaLinux $releasever - Plus mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/plus # baseurl=https://repo.almalinux.org/almalinux/$releasever/plus/$basearch/os/ enabled=0 gpgcheck=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux ## Sources [plus-source] name=AlmaLinux $releasever - Plus Source mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/plus-source # baseurl=https://repo.almalinux.org/vault/$releasever/plus/Source/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux ## Debuginfo [plus-debuginfo] name=AlmaLinux $releasever - Plus debuginfo mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/plus-debuginfo # baseurl=https://repo.almalinux.org/vault/$releasever/plus/debug/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux EOF cat >$Dir_RedHatRepos/almalinux-powertools.repo <<\EOF # almalinux-powertools.repo [powertools] name=AlmaLinux $releasever - PowerTools mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/powertools # baseurl=https://repo.almalinux.org/almalinux/$releasever/PowerTools/$basearch/os/ enabled=0 gpgcheck=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux ## Sources [powertools-source] name=AlmaLinux $releasever - PowerTools Source mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/powertools-source # baseurl=https://repo.almalinux.org/vault/$releasever/PowerTools/Source/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux ## Debuginfo [powertools-debuginfo] name=AlmaLinux $releasever - PowerTools debuginfo mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/powertools-debuginfo # baseurl=https://repo.almalinux.org/vault/$releasever/PowerTools/debug/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux EOF cat >$Dir_RedHatRepos/almalinux-resilientstorage.repo <<\EOF # almalinux-resilientstorage.repo [resilientstorage] name=AlmaLinux $releasever - ResilientStorage mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/resilientstorage # baseurl=https://repo.almalinux.org/almalinux/$releasever/ResilientStorage/$basearch/os/ enabled=0 gpgcheck=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux ## Sources [resilientstorage-source] name=AlmaLinux $releasever - ResilientStorage Source mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/resilientstorage-source # baseurl=https://repo.almalinux.org/vault/$releasever/ResilientStorage/Source/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux ## Debuginfo [resilientstorage-debuginfo] name=AlmaLinux $releasever - ResilientStorage debuginfo mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/resilientstorage-debuginfo # baseurl=https://repo.almalinux.org/vault/$releasever/ResilientStorage/debug/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux EOF cat >$Dir_RedHatRepos/almalinux-rt.repo <<\EOF # almalinux-rt.repo [rt] name=AlmaLinux $releasever - Real Time mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/rt # baseurl=https://repo.almalinux.org/almalinux/$releasever/RT/$basearch/os/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux ## Sources [rt-source] name=AlmaLinux $releasever - Real Time Sources mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/rt-source # baseurl=https://repo.almalinux.org/vault/$releasever/RT/Source/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux ## Debuginfo [rt-debuginfo] name=AlmaLinux $releasever - Real Time Debuginfo mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/rt-debuginfo # baseurl=https://repo.almalinux.org/vault/$releasever/RT/debug/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux EOF cat >$Dir_RedHatRepos/almalinux-sap.repo <<\EOF # almalinux-sap.repo [sap] name=AlmaLinux $releasever - SAP mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/sap # baseurl=https://repo.almalinux.org/almalinux/$releasever/SAP/$basearch/os/ enabled=0 gpgcheck=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux ## Sources [sap-source] name=AlmaLinux $releasever - SAP Sources mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/sap-source # baseurl=https://repo.almalinux.org/vault/$releasever/SAP/Source/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux ## Debuginfo [sap-debuginfo] name=AlmaLinux $releasever - SAP Debuginfo mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/sap-debuginfo # baseurl=https://repo.almalinux.org/vault/$releasever/SAP/debug/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux EOF cat >$Dir_RedHatRepos/almalinux-saphana.repo <<\EOF # almalinux-saphana.repo [saphana] name=AlmaLinux $releasever - SAP HANA mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/saphana # baseurl=https://repo.almalinux.org/almalinux/$releasever/SAPHANA/$basearch/os/ enabled=0 gpgcheck=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux ## Sources [saphana-source] name=AlmaLinux $releasever - SAP HANA Sources mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/saphana-source # baseurl=https://repo.almalinux.org/vault/$releasever/SAPHANA/Source/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux ## Debuginfo [saphana-debuginfo] name=AlmaLinux $releasever - SAP HANA Debuginfo mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/saphana-debuginfo # baseurl=https://repo.almalinux.org/vault/$releasever/SAPHANA/debug/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux EOF cat >$Dir_RedHatRepos/almalinux.repo <<\EOF # almalinux.repo [baseos] name=AlmaLinux $releasever - BaseOS mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/baseos # baseurl=https://repo.almalinux.org/almalinux/$releasever/BaseOS/$basearch/os/ enabled=1 gpgcheck=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux [appstream] name=AlmaLinux $releasever - AppStream mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/appstream # baseurl=https://repo.almalinux.org/almalinux/$releasever/AppStream/$basearch/os/ enabled=1 gpgcheck=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux [extras] name=AlmaLinux $releasever - Extras mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/extras # baseurl=https://repo.almalinux.org/almalinux/$releasever/extras/$basearch/os/ enabled=1 gpgcheck=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux ## Sources [baseos-source] name=AlmaLinux $releasever - BaseOS Source mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/baseos-source # baseurl=https://repo.almalinux.org/vault/$releasever/BaseOS/Source/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux [appstream-source] name=AlmaLinux $releasever - AppStream Source mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/appstream-source # baseurl=https://repo.almalinux.org/vault/$releasever/AppStream/Source/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux [extras-source] name=AlmaLinux $releasever - Extras Source mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/extras-source # baseurl=https://repo.almalinux.org/vault/$releasever/extras/Source/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux ## Debuginfo [baseos-debuginfo] name=AlmaLinux $releasever - BaseOS debuginfo mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/baseos-debuginfo # baseurl=https://repo.almalinux.org/vault/$releasever/BaseOS/debug/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux [appstream-debuginfo] name=AlmaLinux $releasever - AppStream debuginfo mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/appstream-debuginfo # baseurl=https://repo.almalinux.org/vault/$releasever/AppStream/debug/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux [extras-debuginfo] name=AlmaLinux $releasever - Extras debuginfo mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/extras-debuginfo # baseurl=https://repo.almalinux.org/vault/$releasever/extras/debug/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux EOF ;; esac } ## 生成 Fedora 官方 repo 源文件 function GenRepoFiles_Fedora() { cat >$Dir_RedHatRepos/fedora-cisco-openh264.repo <<\EOF [fedora-cisco-openh264] name=Fedora $releasever openh264 (From Cisco) - $basearch metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-cisco-openh264-$releasever&arch=$basearch type=rpm enabled=1 metadata_expire=14d repo_gpgcheck=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch skip_if_unavailable=True [fedora-cisco-openh264-debuginfo] name=Fedora $releasever openh264 (From Cisco) - $basearch - Debug metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-cisco-openh264-debug-$releasever&arch=$basearch type=rpm enabled=0 metadata_expire=14d repo_gpgcheck=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch skip_if_unavailable=True EOF cat >$Dir_RedHatRepos/fedora.repo <<\EOF [fedora] name=Fedora $releasever - $basearch #baseurl=http://download.example/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/ metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch enabled=1 countme=1 metadata_expire=7d repo_gpgcheck=0 type=rpm gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch skip_if_unavailable=False [fedora-debuginfo] name=Fedora $releasever - $basearch - Debug #baseurl=http://download.example/pub/fedora/linux/releases/$releasever/Everything/$basearch/debug/tree/ metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-debug-$releasever&arch=$basearch enabled=0 metadata_expire=7d repo_gpgcheck=0 type=rpm gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch skip_if_unavailable=False [fedora-source] name=Fedora $releasever - Source #baseurl=http://download.example/pub/fedora/linux/releases/$releasever/Everything/source/tree/ metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-source-$releasever&arch=$basearch enabled=0 metadata_expire=7d repo_gpgcheck=0 type=rpm gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch skip_if_unavailable=False EOF cat >$Dir_RedHatRepos/fedora-updates.repo <<\EOF [updates] name=Fedora $releasever - $basearch - Updates #baseurl=http://download.example/pub/fedora/linux/updates/$releasever/Everything/$basearch/ metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch enabled=1 countme=1 repo_gpgcheck=0 type=rpm gpgcheck=1 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch skip_if_unavailable=False [updates-debuginfo] name=Fedora $releasever - $basearch - Updates - Debug #baseurl=http://download.example/pub/fedora/linux/updates/$releasever/Everything/$basearch/debug/ metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-debug-f$releasever&arch=$basearch enabled=0 repo_gpgcheck=0 type=rpm gpgcheck=1 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch skip_if_unavailable=False [updates-source] name=Fedora $releasever - Updates Source #baseurl=http://download.example/pub/fedora/linux/updates/$releasever/Everything/SRPMS/ metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-source-f$releasever&arch=$basearch enabled=0 repo_gpgcheck=0 type=rpm gpgcheck=1 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch skip_if_unavailable=False EOF cat >$Dir_RedHatRepos/fedora-modular.repo <<\EOF [fedora-modular] name=Fedora Modular $releasever - $basearch #baseurl=http://download.example/pub/fedora/linux/releases/$releasever/Modular/$basearch/os/ metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-modular-$releasever&arch=$basearch enabled=1 countme=1 #metadata_expire=7d repo_gpgcheck=0 type=rpm gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch skip_if_unavailable=False [fedora-modular-debuginfo] name=Fedora Modular $releasever - $basearch - Debug #baseurl=http://download.example/pub/fedora/linux/releases/$releasever/Modular/$basearch/debug/tree/ metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-modular-debug-$releasever&arch=$basearch enabled=0 metadata_expire=7d repo_gpgcheck=0 type=rpm gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch skip_if_unavailable=False [fedora-modular-source] name=Fedora Modular $releasever - Source #baseurl=http://download.example/pub/fedora/linux/releases/$releasever/Modular/source/tree/ metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-modular-source-$releasever&arch=$basearch enabled=0 metadata_expire=7d repo_gpgcheck=0 type=rpm gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch skip_if_unavailable=False EOF cat >$Dir_RedHatRepos/fedora-updates-modular.repo <<\EOF [updates-modular] name=Fedora Modular $releasever - $basearch - Updates #baseurl=http://download.example/pub/fedora/linux/updates/$releasever/Modular/$basearch/ metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-modular-f$releasever&arch=$basearch enabled=1 countme=1 repo_gpgcheck=0 type=rpm gpgcheck=1 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch skip_if_unavailable=False [updates-modular-debuginfo] name=Fedora Modular $releasever - $basearch - Updates - Debug #baseurl=http://download.example/pub/fedora/linux/updates/$releasever/Modular/$basearch/debug/ metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-modular-debug-f$releasever&arch=$basearch enabled=0 repo_gpgcheck=0 type=rpm gpgcheck=1 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch skip_if_unavailable=False [updates-modular-source] name=Fedora Modular $releasever - Updates Source #baseurl=http://download.example/pub/fedora/linux/updates/$releasever/Modular/SRPMS/ metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-modular-source-f$releasever&arch=$basearch enabled=0 repo_gpgcheck=0 type=rpm gpgcheck=1 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch skip_if_unavailable=False EOF cat >$Dir_RedHatRepos/fedora-updates-testing.repo <<\EOF [updates-testing] name=Fedora $releasever - $basearch - Test Updates #baseurl=http://download.example/pub/fedora/linux/updates/testing/$releasever/Everything/$basearch/ metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-testing-f$releasever&arch=$basearch enabled=0 countme=1 repo_gpgcheck=0 type=rpm gpgcheck=1 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch skip_if_unavailable=False [updates-testing-debuginfo] name=Fedora $releasever - $basearch - Test Updates Debug #baseurl=http://download.example/pub/fedora/linux/updates/testing/$releasever/Everything/$basearch/debug/ metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-testing-debug-f$releasever&arch=$basearch enabled=0 repo_gpgcheck=0 type=rpm gpgcheck=1 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch skip_if_unavailable=False [updates-testing-source] name=Fedora $releasever - Test Updates Source #baseurl=http://download.example/pub/fedora/linux/updates/testing/$releasever/Everything/SRPMS/ metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-testing-source-f$releasever&arch=$basearch enabled=0 repo_gpgcheck=0 type=rpm gpgcheck=1 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch skip_if_unavailable=False EOF cat >$Dir_RedHatRepos/fedora-updates-testing-modular.repo <<\EOF [updates-testing-modular] name=Fedora Modular $releasever - $basearch - Test Updates #baseurl=http://download.example/pub/fedora/linux/updates/testing/$releasever/Modular/$basearch/ metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-testing-modular-f$releasever&arch=$basearch enabled=0 countme=1 repo_gpgcheck=0 type=rpm gpgcheck=1 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch skip_if_unavailable=False [updates-testing-modular-debuginfo] name=Fedora Modular $releasever - $basearch - Test Updates Debug #baseurl=http://download.example/pub/fedora/linux/updates/$releasever/Modular/$basearch/debug/ metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-testing-modular-debug-f$releasever&arch=$basearch enabled=0 repo_gpgcheck=0 type=rpm gpgcheck=1 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch skip_if_unavailable=False [updates-testing-modular-source] name=Fedora Modular $releasever - Test Updates Source #baseurl=http://download.example/pub/fedora/linux/updates/$releasever/Modular/SRPMS/ metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-testing-modular-source-f$releasever&arch=$basearch enabled=0 repo_gpgcheck=0 type=rpm gpgcheck=1 metadata_expire=6h gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch skip_if_unavailable=False EOF } ## 生成 openSUSE 官方 repo 源文件 function GenRepoFiles_openSUSE() { case $1 in "leap") case $2 in 15.[0-2]) cat >$Dir_openSUSERepos/repo-debug-non-oss.repo <<\EOF [repo-debug-non-oss] name=Debug Repository (Non-OSS) enabled=0 autorefresh=1 baseurl=http://download.opensuse.org/debug/distribution/leap/$releasever/repo/non-oss/ type=NONE keeppackages=0 EOF cat >$Dir_openSUSERepos/repo-debug.repo <<\EOF [repo-debug] name=Debug Repository enabled=0 autorefresh=1 baseurl=http://download.opensuse.org/debug/distribution/leap/$releasever/repo/oss/ type=NONE keeppackages=0 EOF cat >$Dir_openSUSERepos/repo-debug-update-non-oss.repo <<\EOF [repo-debug-update-non-oss] name=Update Repository (Debug, Non-OSS) enabled=0 autorefresh=1 baseurl=http://download.opensuse.org/debug/update/leap/$releasever/non-oss/ type=NONE keeppackages=0 EOF cat >$Dir_openSUSERepos/repo-debug-update.repo <<\EOF [repo-debug-update] name=Update Repository (Debug) enabled=0 autorefresh=1 baseurl=http://download.opensuse.org/debug/update/leap/$releasever/oss/ type=NONE keeppackages=0 EOF cat >$Dir_openSUSERepos/repo-non-oss.repo <<\EOF [repo-non-oss] name=Non-OSS Repository enabled=1 autorefresh=1 baseurl=http://download.opensuse.org/distribution/leap/$releasever/repo/non-oss/ type=rpm-md keeppackages=0 EOF cat >$Dir_openSUSERepos/repo-oss.repo <<\EOF [repo-oss] name=Main Repository enabled=1 autorefresh=1 baseurl=http://download.opensuse.org/distribution/leap/$releasever/repo/oss/ type=rpm-md keeppackages=0 EOF cat >$Dir_openSUSERepos/repo-source-non-oss.repo <<\EOF [repo-source-non-oss] name=Source Repository (Non-OSS) enabled=0 autorefresh=1 baseurl=http://download.opensuse.org/source/distribution/leap/$releasever/repo/non-oss/ type=NONE keeppackages=0 EOF cat >$Dir_openSUSERepos/repo-source.repo <<\EOF [repo-source] name=Source Repository enabled=0 autorefresh=1 baseurl=http://download.opensuse.org/source/distribution/leap/$releasever/repo/oss/ type=NONE keeppackages=0 EOF cat >$Dir_openSUSERepos/repo-update-non-oss.repo <<\EOF [repo-update-non-oss] name=Update Repository (Non-Oss) enabled=1 autorefresh=1 baseurl=http://download.opensuse.org/update/leap/$releasever/non-oss/ type=rpm-md keeppackages=0 EOF cat >$Dir_openSUSERepos/repo-update.repo <<\EOF [repo-update] name=Main Update Repository enabled=1 autorefresh=1 baseurl=http://download.opensuse.org/update/leap/$releasever/oss/ type=rpm-md keeppackages=0 EOF ;; *) cat >$Dir_openSUSERepos/repo-backports-debug-update.repo <<\EOF [repo-backports-debug-update] name=Update repository with updates for openSUSE Leap debuginfo packages from openSUSE Backports enabled=0 autorefresh=1 baseurl=http://download.opensuse.org/update/leap/$releasever/backports_debug/ type=NONE keeppackages=0 EOF cat >$Dir_openSUSERepos/repo-backports-update.repo <<\EOF [repo-backports-update] name=Update repository of openSUSE Backports enabled=1 autorefresh=1 baseurl=http://download.opensuse.org/update/leap/$releasever/backports/ path=/ type=rpm-md keeppackages=0 EOF cat >$Dir_openSUSERepos/repo-debug-non-oss.repo <<\EOF [repo-debug-non-oss] name=Debug Repository (Non-OSS) enabled=0 autorefresh=1 baseurl=http://download.opensuse.org/debug/distribution/leap/$releasever/repo/non-oss/ keeppackages=0 EOF cat >$Dir_openSUSERepos/repo-debug.repo <<\EOF [repo-debug] name=Debug Repository enabled=0 autorefresh=1 baseurl=http://download.opensuse.org/debug/distribution/leap/$releasever/repo/oss/ keeppackages=0 EOF cat >$Dir_openSUSERepos/repo-debug-update-non-oss.repo <<\EOF [repo-debug-update-non-oss] name=Update Repository (Debug, Non-OSS) enabled=0 autorefresh=1 baseurl=http://download.opensuse.org/debug/update/leap/$releasever/non-oss/ keeppackages=0 EOF cat >$Dir_openSUSERepos/repo-debug-update.repo <<\EOF [repo-debug-update] name=Update Repository (Debug) enabled=0 autorefresh=1 baseurl=http://download.opensuse.org/debug/update/leap/$releasever/oss/ keeppackages=0 EOF cat >$Dir_openSUSERepos/repo-non-oss.repo <<\EOF [repo-non-oss] name=Non-OSS Repository enabled=1 autorefresh=1 baseurl=http://download.opensuse.org/distribution/leap/$releasever/repo/non-oss/ type=rpm-md keeppackages=0 EOF cat >$Dir_openSUSERepos/repo-oss.repo <<\EOF [repo-oss] name=Main Repository enabled=1 autorefresh=1 baseurl=http://download.opensuse.org/distribution/leap/$releasever/repo/oss/ type=rpm-md keeppackages=0 EOF cat >$Dir_openSUSERepos/repo-sle-debug-update.repo <<\EOF [repo-sle-debug-update] name=Update repository with debuginfo for updates from SUSE Linux Enterprise 15 enabled=0 autorefresh=1 baseurl=http://download.opensuse.org/debug/update/leap/$releasever/sle/ path=/ type=rpm-md keeppackages=0 EOF cat >$Dir_openSUSERepos/repo-sle-update.repo <<\EOF [repo-sle-update] name=Update repository with updates from SUSE Linux Enterprise 15 enabled=1 autorefresh=1 baseurl=http://download.opensuse.org/update/leap/$releasever/sle/ path=/ type=rpm-md keeppackages=0 EOF cat >$Dir_openSUSERepos/repo-source.repo <<\EOF [repo-source] name=Source Repository enabled=0 autorefresh=1 baseurl=http://download.opensuse.org/source/distribution/leap/$releasever/repo/oss/ keeppackages=0 EOF cat >$Dir_openSUSERepos/repo-update-non-oss.repo <<\EOF [repo-update-non-oss] name=Update Repository (Non-Oss) enabled=1 autorefresh=1 baseurl=http://download.opensuse.org/update/leap/$releasever/non-oss/ type=rpm-md keeppackages=0 EOF cat >$Dir_openSUSERepos/repo-update.repo <<\EOF [repo-update] name=Main Update Repository enabled=1 autorefresh=1 baseurl=http://download.opensuse.org/update/leap/$releasever/oss/ type=rpm-md keeppackages=0 EOF ;; esac ;; "tumbleweed") cat >$Dir_openSUSERepos/repo-debug.repo <<\EOF [repo-debug] name=openSUSE-Tumbleweed-Debug enabled=0 autorefresh=1 baseurl=http://download.opensuse.org/debug/tumbleweed/repo/oss/ path=/ keeppackages=0 EOF cat >$Dir_openSUSERepos/repo-non-oss.repo <<\EOF [repo-non-oss] name=openSUSE-Tumbleweed-Non-Oss enabled=1 autorefresh=1 baseurl=http://download.opensuse.org/tumbleweed/repo/non-oss/ path=/ type=rpm-md keeppackages=0 EOF cat >$Dir_openSUSERepos/repo-openh264.repo <<\EOF [repo-openh264] name=Open H.264 Codec (openSUSE Tumbleweed) enabled=1 autorefresh=1 baseurl=http://codecs.opensuse.org/openh264/openSUSE_Tumbleweed path=/ type=rpm-md keeppackages=0 EOF cat >$Dir_openSUSERepos/repo-oss.repo <<\EOF [repo-oss] name=openSUSE-Tumbleweed-Oss enabled=1 autorefresh=1 baseurl=http://download.opensuse.org/tumbleweed/repo/oss/ path=/ type=rpm-md keeppackages=0 EOF cat >$Dir_openSUSERepos/repo-source.repo <<\EOF [repo-source] name=openSUSE-Tumbleweed-Source enabled=0 autorefresh=1 baseurl=http://download.opensuse.org/source/tumbleweed/repo/oss/ path=/ keeppackages=0 EOF cat >$Dir_openSUSERepos/repo-update.repo <<\EOF [repo-update] name=openSUSE-Tumbleweed-Update enabled=1 autorefresh=1 baseurl=http://download.opensuse.org/update/tumbleweed/ path=/ type=rpm-md keeppackages=0 EOF ;; esac } ## 生成 EPEL 附加软件包官方 repo 源文件 function GenRepoFiles_EPEL() { case ${SYSTEM_VERSION_NUMBER:0:1} in 9) cat >$Dir_RedHatRepos/epel.repo <<\EOF [epel] name=Extra Packages for Enterprise Linux $releasever - $basearch # It is much more secure to use the metalink, but if you wish to use a local mirror # place its address here. #baseurl=https://download.example/pub/epel/$releasever/Everything/$basearch/ metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-$releasever&arch=$basearch&infra=$infra&content=$contentdir enabled=1 gpgcheck=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever [epel-debuginfo] name=Extra Packages for Enterprise Linux $releasever - $basearch - Debug # It is much more secure to use the metalink, but if you wish to use a local mirror # place its address here. #baseurl=https://download.example/pub/epel/$releasever/Everything/$basearch/debug/ metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-$releasever&arch=$basearch&infra=$infra&content=$contentdir enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever gpgcheck=1 [epel-source] name=Extra Packages for Enterprise Linux $releasever - $basearch - Source # It is much more secure to use the metalink, but if you wish to use a local mirror # place its address here. #baseurl=https://download.example/pub/epel/$releasever/Everything/source/tree/ metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-$releasever&arch=$basearch&infra=$infra&content=$contentdir enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever gpgcheck=1 EOF cat >$Dir_RedHatRepos/epel-testing.repo <<\EOF [epel-testing] name=Extra Packages for Enterprise Linux $releasever - Testing - $basearch # It is much more secure to use the metalink, but if you wish to use a local mirror # place its address here. #baseurl=https://download.example/pub/epel/testing/$releasever/Everything/$basearch/ metalink=https://mirrors.fedoraproject.org/metalink?repo=testing-epel$releasever&arch=$basearch&infra=$infra&content=$contentdir enabled=0 gpgcheck=1 countme=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever [epel-testing-debuginfo] name=Extra Packages for Enterprise Linux $releasever - Testing - $basearch - Debug # It is much more secure to use the metalink, but if you wish to use a local mirror # place its address here. #baseurl=https://download.example/pub/epel/testing/$releasever/Everything/$basearch/debug/ metalink=https://mirrors.fedoraproject.org/metalink?repo=testing-debug-epel$releasever&arch=$basearch&infra=$infra&content=$contentdir enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever gpgcheck=1 [epel-testing-source] name=Extra Packages for Enterprise Linux $releasever - Testing - $basearch - Source # It is much more secure to use the metalink, but if you wish to use a local mirror # place its address here. #baseurl=https://download.example/pub/epel/testing/$releasever/Everything/source/tree/ metalink=https://mirrors.fedoraproject.org/metalink?repo=testing-source-epel$releasever&arch=$basearch&infra=$infra&content=$contentdir enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever gpgcheck=1 EOF ;; 8) cat >$Dir_RedHatRepos/epel.repo <<\EOF [epel] name=Extra Packages for Enterprise Linux $releasever - $basearch #baseurl=https://download.fedoraproject.org/pub/epel/8/Everything/$basearch metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-$releasever&arch=$basearch&infra=$infra&content=$contentdir enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 [epel-debuginfo] name=Extra Packages for Enterprise Linux $releasever - $basearch - Debug #baseurl=https://download.fedoraproject.org/pub/epel/8/Everything/$basearch/debug metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-$releasever&arch=$basearch&infra=$infra&content=$contentdir enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 gpgcheck=1 [epel-source] name=Extra Packages for Enterprise Linux $releasever - $basearch - Source #baseurl=https://download.fedoraproject.org/pub/epel/8/Everything/SRPMS metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-$releasever&arch=$basearch&infra=$infra&content=$contentdir enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 gpgcheck=1 EOF cat >$Dir_RedHatRepos/epel-modular.repo <<\EOF [epel-modular] name=Extra Packages for Enterprise Linux Modular $releasever - $basearch #baseurl=https://download.fedoraproject.org/pub/epel/8/Modular/$basearch metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-modular-$releasever&arch=$basearch&infra=$infra&content=$contentdir enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 [epel-modular-debuginfo] name=Extra Packages for Enterprise Linux Modular $releasever - $basearch - Debug #baseurl=https://download.fedoraproject.org/pub/epel/8/Modular/$basearch/debug metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-modular-debug-$releasever&arch=$basearch&infra=$infra&content=$contentdir enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 gpgcheck=1 [epel-modular-source] name=Extra Packages for Enterprise Linux Modular $releasever - $basearch - Source #baseurl=https://download.fedoraproject.org/pub/epel/8/Modular/SRPMS metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-modular-source-$releasever&arch=$basearch&infra=$infra&content=$contentdir enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 gpgcheck=1 EOF cat >$Dir_RedHatRepos/epel-playground.repo <<\EOF [epel-playground] name=Extra Packages for Enterprise Linux $releasever - Playground - $basearch #baseurl=https://download.fedoraproject.org/pub/epel/playground/$releasever/Everything/$basearch/os metalink=https://mirrors.fedoraproject.org/metalink?repo=playground-epel$releasever&arch=$basearch&infra=$infra&content=$contentdir enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 [epel-playground-debuginfo] name=Extra Packages for Enterprise Linux $releasever - Playground - $basearch - Debug #baseurl=https://download.fedoraproject.org/pub/epel/playground/$releasever/Everything/$basearch/debug metalink=https://mirrors.fedoraproject.org/metalink?repo=playground-debug-epel$releasever&arch=$basearch&infra=$infra&content=$contentdir enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 gpgcheck=1 [epel-playground-source] name=Extra Packages for Enterprise Linux $releasever - Playground - $basearch - Source #baseurl=https://download.fedoraproject.org/pub/epel/playground/$releasever/Everything/source/tree/ metalink=https://mirrors.fedoraproject.org/metalink?repo=playground-source-epel$releasever&arch=$basearch&infra=$infra&content=$contentdir enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 gpgcheck=1 EOF cat >$Dir_RedHatRepos/epel-testing.repo <<\EOF [epel-testing] name=Extra Packages for Enterprise Linux $releasever - Testing - $basearch #baseurl=https://download.fedoraproject.org/pub/epel/testing/$releasever/Everything/$basearch metalink=https://mirrors.fedoraproject.org/metalink?repo=testing-epel$releasever&arch=$basearch&infra=$infra&content=$contentdir enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 [epel-testing-debuginfo] name=Extra Packages for Enterprise Linux $releasever - Testing - $basearch - Debug #baseurl=https://download.fedoraproject.org/pub/epel/testing/$releasever/Everything/$basearch/debug metalink=https://mirrors.fedoraproject.org/metalink?repo=testing-debug-epel$releasever&arch=$basearch&infra=$infra&content=$contentdir enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 gpgcheck=1 [epel-testing-source] name=Extra Packages for Enterprise Linux $releasever - Testing - $basearch - Source #baseurl=https://download.fedoraproject.org/pub/epel/testing/$releasever/Everything/SRPMS metalink=https://mirrors.fedoraproject.org/metalink?repo=testing-source-epel$releasever&arch=$basearch&infra=$infra&content=$contentdir enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 gpgcheck=1 EOF cat >$Dir_RedHatRepos/epel-testing-modular.repo <<\EOF [epel-testing-modular] name=Extra Packages for Enterprise Linux Modular $releasever - Testing - $basearch #baseurl=https://download.fedoraproject.org/pub/epel/testing/$releasever/Modular/$basearch metalink=https://mirrors.fedoraproject.org/metalink?repo=testing-modular-epel$releasever&arch=$basearch&infra=$infra&content=$contentdir enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 [epel-testing-modular-debuginfo] name=Extra Packages for Enterprise Linux Modular $releasever - Testing - $basearch - Debug #baseurl=https://download.fedoraproject.org/pub/epel/testing/$releasever/Modular/$basearch/debug metalink=https://mirrors.fedoraproject.org/metalink?repo=testing-modular-debug-epel$releasever&arch=$basearch&infra=$infra&content=$contentdir enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 gpgcheck=1 [epel-testing-modular-source] name=Extra Packages for Enterprise Linux Modular $releasever - Testing - $basearch - Source #baseurl=https://download.fedoraproject.org/pub/epel/testing/$releasever/Modular/SRPMS metalink=https://mirrors.fedoraproject.org/metalink?repo=testing-modular-source-epel$releasever&arch=$basearch&infra=$infra&content=$contentdir enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 gpgcheck=1 EOF ;; 7) cat >$Dir_RedHatRepos/epel.repo <<\EOF [epel] name=Extra Packages for Enterprise Linux 7 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 [epel-debuginfo] name=Extra Packages for Enterprise Linux 7 - $basearch - Debug #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch/debug metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 gpgcheck=1 [epel-source] name=Extra Packages for Enterprise Linux 7 - $basearch - Source #baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 gpgcheck=1 EOF cat >$Dir_RedHatRepos/epel-testing.repo <<\EOF [epel-testing] name=Extra Packages for Enterprise Linux 7 - Testing - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/testing/7/$basearch metalink=https://mirrors.fedoraproject.org/metalink?repo=testing-epel7&arch=$basearch failovermethod=priority enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 [epel-testing-debuginfo] name=Extra Packages for Enterprise Linux 7 - Testing - $basearch - Debug #baseurl=http://download.fedoraproject.org/pub/epel/testing/7/$basearch/debug metalink=https://mirrors.fedoraproject.org/metalink?repo=testing-debug-epel7&arch=$basearch failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 gpgcheck=1 [epel-testing-source] name=Extra Packages for Enterprise Linux 7 - Testing - $basearch - Source #baseurl=http://download.fedoraproject.org/pub/epel/testing/7/SRPMS metalink=https://mirrors.fedoraproject.org/metalink?repo=testing-source-epel7&arch=$basearch failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 gpgcheck=1 EOF ;; esac } ## 处理命令选项 function CommandOptions() { ## 命令帮助 function Output_Help_Info() { echo -e " 选项命令(参数名/含义/参数值): --source 指定软件源地址 地址 --source-security 指定 debian-security 软件源地址 地址 --source-vault 指定 centos-vault 软件源地址 地址 --branch 指定软件源分支(路径) 分支名 --branch-security 指定 debian-security 软件源分支(路径) 分支名 --branch-vault 指定 centos-vault 软件源分支(路径) 分支名 --abroad 使用海外软件源 无 --web-protocol 指定 WEB 协议 http 或 https --intranet 优先使用内网地址 true 或 false --install-epel 安装 EPEL 附加软件包 true 或 false --only-epel 仅更换 EPEL 软件源模式 无 --close-firewall 关闭防火墙 true 或 false --backup 备份原有软件源 true 或 false --ignore-backup-tips 忽略覆盖备份提示 无 --updata-software 更新软件包 true 或 false --clean-cache 清理下载缓存 true 或 false --print-diff 打印源文件修改前后差异 无 问题报告 https://github.com/SuperManito/LinuxMirrors/issues " } ## 判断参数 while [ $# -gt 0 ]; do case $1 in ## 海外模式 --abroad) USE_ABROAD_SOURCE="true" ;; ## 指定软件源地址 --source) if [ $2 ]; then echo "$2" | grep -Eq "\-|\(|\)|\[|\]|\{|\}" if [ $? -eq 0 ]; then Output_Error "检测到无效参数值 ${BLUE}$2${PLAIN} ,请输入有效的地址!" else SOURCE="$2" shift fi else Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!" fi ;; --source-security) if [ $2 ]; then echo "$2" | grep -Eq "\-|\(|\)|\[|\]|\{|\}" if [ $? -eq 0 ]; then Output_Error "检测到无效参数值 ${BLUE}$2${PLAIN} ,请输入有效的地址!" else SOURCE_SECURITY="$2" shift fi else Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!" fi ;; --source-vault) if [ $2 ]; then echo "$2" | grep -Eq "\-|\(|\)|\[|\]|\{|\}" if [ $? -eq 0 ]; then Output_Error "检测到无效参数值 ${BLUE}$2${PLAIN} ,请输入有效的地址!" else SOURCE_VAULT="$2" shift fi else Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!" fi ;; ## 指定软件源分支 --branch) if [ $2 ]; then SOURCE_BRANCH="$2" shift else Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!" fi ;; --branch-security) if [ $2 ]; then SOURCE_BRANCH_SECURITY="$2" shift else Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!" fi ;; --branch-vault) if [ $2 ]; then SOURCE_BRANCH_VAULT="$2" shift else Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定软件源地址!" fi ;; ## 优先使用内网地址 --intranet) if [ $2 ]; then case $2 in [Tt]rue | [Ff]alse) USE_INTRANET_SOURCE="${2,,}" shift ;; *) Output_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!" ;; esac else Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!" fi ;; ## WEB 协议(HTTP/HTTPS) --web-protocol) if [ $2 ]; then case $2 in http | https | HTTP | HTTPS) WEB_PROTOCOL="$2" shift ;; *) Output_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 http 或 https 作为参数值!" ;; esac else Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 WEB 协议(HTTP/HTTPS)!" fi ;; ## 安装 EPEL 附加软件包 --install-epel) if [ $2 ]; then case $2 in [Tt]rue | [Ff]alse) INSTALL_EPEL="${2,,}" shift ;; *) Output_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!" ;; esac else Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!" fi ;; --only-epel) ONLY_EPEL="true" INSTALL_EPEL="true" ;; ## 关闭防火墙 --close-firewall) if [ $2 ]; then case $2 in [Tt]rue | [Ff]alse) CLOSE_FIREWALL="${2,,}" shift ;; *) Output_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!" ;; esac else Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!" fi ;; ## 备份原有软件源 --backup) if [ $2 ]; then case $2 in [Tt]rue | [Ff]alse) BACKUP="${2,,}" shift ;; *) Output_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!" ;; esac else Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!" fi ;; ## 忽略覆盖备份提示 --ignore-backup-tips) IGNORE_BACKUP_TIPS="true" ;; ## 更新软件包 --updata-software) if [ $2 ]; then case $2 in [Tt]rue | [Ff]alse) UPDATA_SOFTWARE="${2,,}" shift ;; *) Output_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!" ;; esac else Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!" fi ;; ## 清理下载缓存 --clean-cache) if [ $2 ]; then case $2 in [Tt]rue | [Ff]alse) CLEAN_CACHE="${2,,}" shift ;; *) Output_Error "检测到 ${BLUE}$2${PLAIN} 为无效参数值,请在该参数后指定 true 或 false 作为参数值!" ;; esac else Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请在该参数后指定 true 或 false 作为参数值!" fi ;; ## 打印源文件修改前后差异 --print-diff) PRINT_DIFF="true" ;; --help) Output_Help_Info exit ;; *) Output_Error "检测到 ${BLUE}$1${PLAIN} 为无效参数,请确认后重新输入!" ;; esac shift done ## 赋予部分命令参数默认值 ONLY_EPEL="${ONLY_EPEL:-"false"}" BACKUP="${BACKUP:-"true"}" IGNORE_BACKUP_TIPS="${IGNORE_BACKUP_TIPS:-"false"}" PRINT_DIFF="${PRINT_DIFF:-"false"}" } ## 组合函数 function Combin_Function() { PermissionJudgment EnvJudgment CheckCommandOptions StartTitle ChooseMirrors ChooseWebProtocol ChooseInstallEPEL CloseFirewall BackupOriginMirrors RemoveOriginMirrors ChangeMirrors UpdateSoftware RunEnd } CommandOptions "$@" Combin_Function