mirror of
https://gitee.com/SuperManito/LinuxMirrors
synced 2025-11-02 15:30:26 +08:00
1507 lines
62 KiB
Bash
1507 lines
62 KiB
Bash
#!/bin/bash
|
||
## Author: SuperManito
|
||
## Modified: 2021-12-15
|
||
## License: GPL-2.0
|
||
## Github Repository: https://github.com/SuperManito/LinuxMirrors
|
||
## Gitee Repository: https://gitee.com/SuperManito/LinuxMirrors
|
||
|
||
function AuthorSignature() {
|
||
echo -e "\n${GREEN} ------------ 脚本执行结束 ------------ ${PLAIN}\n"
|
||
echo -e '\033[0;1;35;95m┌─\033[0;1;31;91m──\033[0;1;33;93m──\033[0;1;32;92m──\033[0;1;36;96m──\033[0;1;34;94m──\033[0;1;35;95m──\033[0;1;31;91m──\033[0;1;33;93m──\033[0;1;32;92m──\033[0;1;36;96m──\033[0;1;34;94m──\033[0;1;35;95m──\033[0;1;31;91m──\033[0;1;33;93m──\033[0;1;32;92m──\033[0;1;36;96m──\033[0;1;34;94m──\033[0;1;35;95m──\033[0;1;31;91m──\033[0;1;33;93m──\033[0;1;32;92m──\033[0;1;36;96m──\033[0;1;34;94m──\033[0;1;35;95m──\033[0;1;31;91m──\033[0;1;33;93m──\033[0;1;32;92m──\033[0;1;36;96m──\033[0;1;34;94m──\033[0;1;35;95m─┐\033[0m'
|
||
echo -e '\033[0;1;31;91m│\033[0m \033[0;1;32;92m__\033[0;1;36;96m__\033[0;1;34;94m_\033[0m \033[0;1;34;94m__\033[0m \033[0;1;31;91m__\033[0;1;33;93m_\033[0m \033[0;1;33;93m_\033[0m \033[0;1;32;92m_\033[0;1;36;96m_\033[0m \033[0;1;31;91m│\033[0m'
|
||
echo -e '\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[0;1;35;95m/_\033[0;1;31;91m_\033[0m \033[0;1;33;93m_\033[0;1;32;92m__\033[0;1;36;96m__\033[0;1;34;94m_\033[0m \033[0;1;35;95m_\033[0;1;31;91m__\033[0m \033[0;1;32;92m__\033[0;1;36;96m__\033[0;1;34;94m_/\033[0m \033[0;1;31;91m|/\033[0m \033[0;1;32;92m/_\033[0;1;36;96m__\033[0m \033[0;1;34;94m_\033[0;1;35;95m__\033[0;1;31;91m__\033[0m \033[0;1;32;92m(_\033[0;1;36;96m)\033[0m \033[0;1;34;94m/_\033[0;1;35;95m__\033[0;1;31;91m__\033[0m \033[0;1;33;93m│\033[0m'
|
||
echo -e '\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[0;1;31;91m/\033[0m \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[0m \033[0;1;35;95m\\\033[0;1;31;91m/\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[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[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[0;1;33;93m_\033[0m \033[0;1;32;92m\│\033[0m'
|
||
echo -e '\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[0;1;35;95m_/\033[0m \033[0;1;31;91m/\033[0m \033[0;1;32;92m__\033[0;1;36;96m/\033[0m \033[0;1;34;94m/\033[0m \033[0;1;35;95m/\033[0m \033[0;1;31;91m/\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[0m \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[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;34;94m│/\033[0;1;35;95m__\033[0;1;31;91m__\033[0;1;33;93m/\\\033[0;1;32;92m__\033[0;1;36;96m,_\033[0;1;34;94m/\033[0m \033[0;1;35;95m._\033[0;1;31;91m__\033[0;1;33;93m/\\\033[0;1;32;92m__\033[0;1;36;96m_/\033[0;1;34;94m_/\033[0m \033[0;1;31;91m/_\033[0;1;33;93m/\033[0m \033[0;1;32;92m/\033[0;1;36;96m_/\033[0;1;34;94m\_\033[0;1;35;95m_,\033[0;1;31;91m_/\033[0;1;33;93m_/\033[0m \033[0;1;32;92m/\033[0;1;36;96m_/\033[0;1;34;94m_/\033[0;1;35;95m\_\033[0;1;31;91m_/\033[0;1;33;93m\_\033[0;1;32;92m__\033[0;1;36;96m_/\033[0m \033[0;1;34;94m│\033[0m'
|
||
echo -e '\033[0;1;35;95m│\033[0m \033[0;1;34;94m/\033[0;1;35;95m_/\033[0m \033[0;1;35;95m│\033[0m'
|
||
echo -e '\033[0;1;31;91m└─\033[0;1;33;93m──\033[0;1;32;92m──\033[0;1;36;96m──\033[0;1;34;94m──\033[0;1;35;95m──\033[0;1;31;91m──\033[0;1;33;93m──\033[0;1;32;92m──\033[0;1;36;96m──\033[0;1;34;94m──\033[0;1;35;95m──\033[0;1;31;91m──\033[0;1;33;93m──\033[0;1;32;92m──\033[0;1;36;96m──\033[0;1;34;94m──\033[0;1;35;95m──\033[0;1;31;91m──\033[0;1;33;93m──\033[0;1;32;92m──\033[0;1;36;96m──\033[0;1;34;94m──\033[0;1;35;95m──\033[0;1;31;91m──\033[0;1;33;93m──\033[0;1;32;92m──\033[0;1;36;96m──\033[0;1;34;94m──\033[0;1;35;95m──\033[0;1;31;91m─┘\033[0m\n'
|
||
|
||
echo -e " \033[1;34mGithub\033[0m - https://github.com/SuperManito/LinuxMirrors"
|
||
echo -e " \033[1;34mGitee\033[0m - https://gitee.com/SuperManito/LinuxMirrors\n"
|
||
}
|
||
|
||
## 定义系统判定变量
|
||
DebianRelease="lsb_release"
|
||
ARCH=$(uname -m)
|
||
SYSTEM_DEBIAN="Debian"
|
||
SYSTEM_UBUNTU="Ubuntu"
|
||
SYSTEM_KALI="Kali"
|
||
SYSTEM_REDHAT="RedHat"
|
||
SYSTEM_RHEL="RedHat"
|
||
SYSTEM_CENTOS="CentOS"
|
||
SYSTEM_FEDORA="Fedora"
|
||
|
||
## 定义目录和文件
|
||
LinuxRelease=/etc/os-release
|
||
RedHatRelease=/etc/redhat-release
|
||
DebianVersion=/etc/debian_version
|
||
DebianSourceList=/etc/apt/sources.list
|
||
DebianSourceListBackup=/etc/apt/sources.list.bak
|
||
DebianExtendListDir=/etc/apt/sources.list.d
|
||
DebianExtendListDirBackup=/etc/apt/sources.list.d.bak
|
||
RedHatReposDir=/etc/yum.repos.d
|
||
RedHatReposDirBackup=/etc/yum.repos.d.bak
|
||
SelinuxConfig=/etc/selinux/config
|
||
|
||
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]'
|
||
|
||
## 组合函数
|
||
function Combin_Function() {
|
||
PermissionJudgment
|
||
EnvJudgment
|
||
ChooseMirrors
|
||
BackupMirrors
|
||
RemoveOldMirrorsFiles
|
||
ChangeMirrors
|
||
UpgradeSoftware
|
||
AuthorSignature
|
||
}
|
||
|
||
## 系统判定变量
|
||
function EnvJudgment() {
|
||
## 判定当前系统基于 Debian or RedHat
|
||
if [ -f $RedHatRelease ]; then
|
||
SYSTEM_FACTIONS=${SYSTEM_REDHAT}
|
||
elif [ -f $DebianVersion ]; then
|
||
SYSTEM_FACTIONS=${SYSTEM_DEBIAN}
|
||
else
|
||
echo -e "\n${RED} ------------ 无法判断当前运行环境,请先确认脚本是否已适配当前系统! ------------ ${PLAIN}\n"
|
||
exit
|
||
fi
|
||
## 定义系统名称
|
||
SYSTEM_NAME=$(cat $LinuxRelease | grep -E "^NAME=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")
|
||
## 定义系统版本号
|
||
SYSTEM_VERSION_NUMBER=$(cat $LinuxRelease | grep -E "VERSION_ID=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")
|
||
## 判定系统名称、版本、版本号
|
||
case ${SYSTEM_FACTIONS} in
|
||
Debian)
|
||
if [ ! -x /usr/bin/lsb_release ]; then
|
||
apt-get install -y lsb-release
|
||
if [ $? -eq 0 ]; then
|
||
clear
|
||
else
|
||
echo -e "\n${ERROR} lsb-release 软件包安装失败"
|
||
echo -e "\n本脚本需要通过 lsb_release 指令判断系统类型,当前可能为精简安装的系统一般系统自带,请自行安装后重新执行脚本!\n"
|
||
exit
|
||
fi
|
||
fi
|
||
SYSTEM_JUDGMENT=$(${DebianRelease} -is)
|
||
SYSTEM_VERSION=$(${DebianRelease} -cs)
|
||
;;
|
||
RedHat)
|
||
SYSTEM_JUDGMENT=$(cat $RedHatRelease | sed 's/ //g' | cut -c1-6)
|
||
if [[ ${SYSTEM_JUDGMENT} = ${SYSTEM_CENTOS} || ${SYSTEM_JUDGMENT} = ${SYSTEM_RHEL} ]]; then
|
||
CENTOS_VERSION=$(echo ${SYSTEM_VERSION_NUMBER} | cut -c1)
|
||
else
|
||
CENTOS_VERSION=""
|
||
fi
|
||
;;
|
||
esac
|
||
## 判定系统处理器架构
|
||
case ${ARCH} in
|
||
x86_64)
|
||
SYSTEM_ARCH="x86_64"
|
||
;;
|
||
aarch64)
|
||
SYSTEM_ARCH="ARM64"
|
||
;;
|
||
armv7l)
|
||
SYSTEM_ARCH="ARMv7"
|
||
;;
|
||
armv6l)
|
||
SYSTEM_ARCH="ARMv6"
|
||
;;
|
||
i686)
|
||
SYSTEM_ARCH="x86_32"
|
||
;;
|
||
*)
|
||
SYSTEM_ARCH=${ARCH}
|
||
;;
|
||
esac
|
||
## 定义软件源分支名称
|
||
if [ ${SYSTEM_JUDGMENT} = ${SYSTEM_UBUNTU} ]; then
|
||
if [ ${ARCH} = "x86_64" ] || [ ${ARCH} = "*i?86*" ]; then
|
||
SOURCE_BRANCH=${SYSTEM_JUDGMENT,,}
|
||
else
|
||
SOURCE_BRANCH=ubuntu-ports
|
||
fi
|
||
elif [ ${SYSTEM_JUDGMENT} = ${SYSTEM_RHEL} ]; then
|
||
SOURCE_BRANCH="centos"
|
||
else
|
||
SOURCE_BRANCH=${SYSTEM_JUDGMENT,,}
|
||
fi
|
||
## 定义软件源同步/更新文字
|
||
case ${SYSTEM_FACTIONS} in
|
||
Debian)
|
||
SYNC_TXT="更新"
|
||
;;
|
||
RedHat)
|
||
SYNC_TXT="同步"
|
||
;;
|
||
esac
|
||
}
|
||
|
||
## 环境判定:
|
||
function PermissionJudgment() {
|
||
## 权限判定:
|
||
if [ $UID -ne 0 ]; then
|
||
echo -e "\n${ERROR} Permission no enough, please use user ROOT! \n"
|
||
exit
|
||
fi
|
||
}
|
||
|
||
## 关闭 防火墙 和 SELINUX
|
||
function TurnOffFirewall() {
|
||
systemctl status firewalld | grep running -q
|
||
if [ $? -eq 0 ]; then
|
||
CHOICE_C=$(echo -e "\n${BOLD}└ 是否关闭防火墙和 SELINUX [ Y/n ]:${PLAIN}")
|
||
read -p "${CHOICE_C}" INPUT
|
||
[ -z ${INPUT} ] && INPUT=Y
|
||
case $INPUT in
|
||
[Yy] | [Yy][Ee][Ss])
|
||
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
|
||
;;
|
||
[Nn] | [Nn][Oo]) ;;
|
||
*)
|
||
echo -e "\n${WARN} 输入错误,默认不关闭!"
|
||
;;
|
||
esac
|
||
fi
|
||
}
|
||
|
||
## 备份原有源
|
||
function BackupMirrors() {
|
||
if [ ${SYSTEM_FACTIONS} = ${SYSTEM_DEBIAN} ]; then
|
||
## 判断 /etc/apt/sources.list.d 目录下是否存在文件
|
||
[ -d $DebianExtendListDir ] && ls $DebianExtendListDir | grep *.list -q
|
||
VERIFICATION_FILES=$?
|
||
## 判断 /etc/apt/sources.list.d.bak 目录下是否存在文件
|
||
[ -d $DebianExtendListDirBackup ] && ls $DebianExtendListDirBackup | grep *.list -q
|
||
VERIFICATION_BACKUPFILES=$?
|
||
elif [ ${SYSTEM_FACTIONS} = ${SYSTEM_REDHAT} ]; then
|
||
## 判断 /etc/yum.repos.d 目录下是否存在文件
|
||
[ -d $RedHatReposDir ] && ls $RedHatReposDir | grep repo -q
|
||
VERIFICATION_FILES=$?
|
||
## 判断 /etc/yum.repos.d.bak 目录下是否存在文件
|
||
[ -d $RedHatReposDirBackup ] && ls $RedHatReposDirBackup | grep repo -q
|
||
VERIFICATION_BACKUPFILES=$?
|
||
fi
|
||
|
||
if [ ${SYSTEM_FACTIONS} = ${SYSTEM_DEBIAN} ]; then
|
||
## /etc/apt/sources.list
|
||
if [ -s $DebianSourceList ]; then
|
||
if [ -s $DebianSourceListBackup ]; then
|
||
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])
|
||
cp -rf $DebianSourceList $DebianSourceListBackup >/dev/null 2>&1
|
||
;;
|
||
[Nn] | [Nn][Oo]) ;;
|
||
*)
|
||
echo -e "\n${WARN} 输入错误,默认不覆盖!"
|
||
;;
|
||
esac
|
||
else
|
||
cp -rf $DebianSourceList $DebianSourceListBackup >/dev/null 2>&1
|
||
echo -e "\n${COMPLETE} 已备份原有 list 源文件至 $DebianSourceListBackup"
|
||
sleep 1s
|
||
fi
|
||
else
|
||
[ -f $DebianSourceList ] || touch $DebianSourceList
|
||
echo -e ''
|
||
fi
|
||
|
||
## /etc/apt/sources.list.d
|
||
if [ -d $DebianExtendListDir ] && [ ${VERIFICATION_FILES} -eq 0 ]; then
|
||
if [ -d $DebianExtendListDirBackup ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then
|
||
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])
|
||
cp -rf $DebianExtendListDir/* $DebianExtendListDirBackup >/dev/null 2>&1
|
||
;;
|
||
[Nn] | [Nn][Oo]) ;;
|
||
*)
|
||
echo -e "\n${WARN} 输入错误,默认不覆盖!"
|
||
;;
|
||
esac
|
||
else
|
||
[ -d $DebianExtendListDirBackup ] || mkdir -p $DebianExtendListDirBackup
|
||
cp -rf $DebianExtendListDir/* $DebianExtendListDirBackup >/dev/null 2>&1
|
||
echo -e "${COMPLETE} 已备份原有 list 第三方源文件至 $DebianExtendListDirBackup 目录"
|
||
sleep 1s
|
||
fi
|
||
fi
|
||
elif [ ${SYSTEM_FACTIONS} = ${SYSTEM_REDHAT} ]; then
|
||
## /etc/yum.repos.d
|
||
if [ ${VERIFICATION_FILES} -eq 0 ]; then
|
||
if [ -d $RedHatReposDirBackup ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then
|
||
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])
|
||
cp -rf $RedHatReposDir/* $RedHatReposDirBackup >/dev/null 2>&1
|
||
;;
|
||
[Nn] | [Nn][Oo]) ;;
|
||
*)
|
||
echo -e "\n${WARN} 输入错误,默认不覆盖!"
|
||
;;
|
||
esac
|
||
else
|
||
[ -d $RedHatReposDirBackup ] || mkdir -p $RedHatReposDirBackup
|
||
cp -rf $RedHatReposDir/* $RedHatReposDirBackup >/dev/null 2>&1
|
||
echo -e "\n${COMPLETE} 已备份原有 repo 源文件至 $RedHatReposDirBackup 目录"
|
||
sleep 1s
|
||
fi
|
||
else
|
||
[ -d $RedHatReposDir ] || mkdir -p $RedHatReposDir
|
||
fi
|
||
fi
|
||
}
|
||
|
||
## 删除原有源
|
||
function RemoveOldMirrorsFiles() {
|
||
if [ ${SYSTEM_FACTIONS} = ${SYSTEM_DEBIAN} ]; then
|
||
[ -f $DebianSourceList ] && sed -i '1,$d' $DebianSourceList
|
||
elif [ ${SYSTEM_FACTIONS} = ${SYSTEM_REDHAT} ]; then
|
||
if [ -d $RedHatReposDir ]; then
|
||
if [ -f $RedHatReposDir/epel.repo ]; then
|
||
ls $RedHatReposDir/ | egrep -v epel | xargs rm -rf
|
||
else
|
||
rm -rf $RedHatReposDir/*
|
||
fi
|
||
fi
|
||
fi
|
||
}
|
||
|
||
## 更换国内源
|
||
function ChangeMirrors() {
|
||
if [ ${SYSTEM_FACTIONS} = ${SYSTEM_DEBIAN} ]; then
|
||
DebianMirrors
|
||
elif [ ${SYSTEM_FACTIONS} = ${SYSTEM_REDHAT} ]; then
|
||
RedHatMirrors
|
||
yum clean all >/dev/null 2>&1
|
||
fi
|
||
echo -e "\n${WORKING} 开始${SYNC_TXT}软件源...\n"
|
||
case ${SYSTEM_FACTIONS} in
|
||
Debian)
|
||
apt-get update
|
||
;;
|
||
RedHat)
|
||
yum makecache
|
||
;;
|
||
esac
|
||
VERIFICATION_SOURCESYNC=$?
|
||
if [ ${VERIFICATION_SOURCESYNC} -eq 0 ]; then
|
||
echo -e "\n${SUCCESS} 软件源更换完毕"
|
||
else
|
||
echo -e "\n${ERROR} 软件源${SYNC_TXT}失败\n"
|
||
echo -e "请再次执行脚本并更换软件源后进行尝试,如果仍然${SYNC_TXT}失败那么可能由以下原因导致"
|
||
echo -e "1. 网络问题:例如网络异常、网络间歇式中断、由地区影响的网络因素等"
|
||
echo -e "2. 软件源问题:所选镜像站正在维护,或者出现罕见的少数文件同步出错导致软件源${SYNC_TXT}命令执行后返回错误状态"
|
||
echo ''
|
||
exit
|
||
fi
|
||
}
|
||
|
||
## 更新软件包
|
||
function UpgradeSoftware() {
|
||
CHOICE_B=$(echo -e "\n${BOLD}└ 是否更新软件包 [ Y/n ]:${PLAIN}")
|
||
read -p "${CHOICE_B}" INPUT
|
||
[ -z ${INPUT} ] && INPUT=Y
|
||
case $INPUT in
|
||
[Yy] | [Yy][Ee][Ss])
|
||
echo -e ''
|
||
case ${SYSTEM_FACTIONS} in
|
||
Debian)
|
||
apt-get upgrade -y
|
||
;;
|
||
RedHat)
|
||
yum update -y
|
||
;;
|
||
esac
|
||
CHOICE_C=$(echo -e "\n${BOLD}└ 是否清理已下载的软件包缓存 [ Y/n ]:${PLAIN}")
|
||
read -p "${CHOICE_C}" INPUT
|
||
[ -z ${INPUT} ] && INPUT=Y
|
||
case $INPUT in
|
||
[Yy] | [Yy][Ee][Ss])
|
||
if [ ${SYSTEM_FACTIONS} = ${SYSTEM_DEBIAN} ]; then
|
||
apt-get autoremove -y >/dev/null 2>&1
|
||
apt-get clean >/dev/null 2>&1
|
||
elif [ ${SYSTEM_FACTIONS} = ${SYSTEM_REDHAT} ]; then
|
||
yum autoremove -y >/dev/null 2>&1
|
||
yum clean packages -y >/dev/null 2>&1
|
||
fi
|
||
|
||
echo -e "\n${COMPLETE} 清理完毕"
|
||
;;
|
||
[Nn] | [Nn][Oo]) ;;
|
||
*)
|
||
echo -e "\n${WARN} 输入错误,默认不清理!"
|
||
;;
|
||
esac
|
||
;;
|
||
[Nn] | [Nn][Oo]) ;;
|
||
*)
|
||
echo -e "\n${WARN} 输入错误,默认不更新!"
|
||
;;
|
||
esac
|
||
}
|
||
|
||
## 更换基于 Debian 系 Linux 发行版的国内源
|
||
function DebianMirrors() {
|
||
## 修改国内源
|
||
case ${SYSTEM_JUDGMENT} in
|
||
Ubuntu)
|
||
echo "## 默认禁用源码镜像以提高速度,如需启用请自行取消注释
|
||
deb ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION} main restricted universe multiverse
|
||
# deb-src ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION} main restricted universe multiverse
|
||
deb ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION}-security main restricted universe multiverse
|
||
# deb-src ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION}-security main restricted universe multiverse
|
||
deb ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION}-updates main restricted universe multiverse
|
||
# deb-src ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION}-updates main restricted universe multiverse
|
||
deb ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION}-backports main restricted universe multiverse
|
||
# deb-src ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION}-backports main restricted universe multiverse
|
||
|
||
## 预发布软件源(不建议启用)
|
||
# deb ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION}-proposed main restricted universe multiverse
|
||
# deb-src ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION}-proposed main restricted universe multiverse" >>$DebianSourceList
|
||
;;
|
||
Debian)
|
||
echo "## 默认禁用源码镜像以提高速度,如需启用请自行取消注释
|
||
deb ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION} main contrib non-free
|
||
# deb-src ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION} main contrib non-free
|
||
deb ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION}-updates main contrib non-free
|
||
# deb-src ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION}-updates main contrib non-free
|
||
deb ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION}-backports main contrib non-free
|
||
# deb-src ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION}-backports main contrib non-free
|
||
|
||
## 预发布软件源(不建议启用)
|
||
# deb ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}-security ${SYSTEM_VERSION}/updates main contrib non-free
|
||
# deb-src ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}-security ${SYSTEM_VERSION}/updates main contrib non-free" >>$DebianSourceList
|
||
;;
|
||
Kali)
|
||
echo "deb ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION} main non-free contrib
|
||
deb-src ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION} main non-free contrib" >>$DebianSourceList
|
||
;;
|
||
esac
|
||
}
|
||
|
||
## 更换基于 RedHat 系 Linux 发行版的国内源
|
||
function RedHatMirrors() {
|
||
## 生成基于 RedHat 发行版和及其衍生发行版的官方 repo 源文件
|
||
cd $RedHatReposDir
|
||
case ${SYSTEM_JUDGMENT} in
|
||
RedHat | CentOS)
|
||
CreateCentOSRepoFiles
|
||
;;
|
||
Fedora)
|
||
CreateReposRepoFiles
|
||
;;
|
||
esac
|
||
## 修改源
|
||
if [ ${SYSTEM_JUDGMENT} = ${SYSTEM_CENTOS} -o ${SYSTEM_JUDGMENT} = ${SYSTEM_RHEL} ]; then
|
||
sed -i 's|^mirrorlist=|#mirrorlist=|g' $RedHatReposDir/${SYSTEM_CENTOS}-*
|
||
[ ${CENTOS_VERSION} -eq "8" ] && sed -i 's|^#baseurl=http://mirror.centos.org/$contentdir|baseurl=http://mirror.centos.org/centos|g' $RedHatReposDir/${SYSTEM_CENTOS}-*
|
||
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" $RedHatReposDir/${SYSTEM_CENTOS}-*
|
||
sed -i "s|mirror.centos.org|${SOURCE}|g" $RedHatReposDir/${SYSTEM_CENTOS}-*
|
||
## Red Hat Enterprise Linux 修改版本号
|
||
[ ${SYSTEM_JUDGMENT} = ${SYSTEM_RHEL} ] && sed -i "s/\$releasever/${CENTOS_VERSION}/g" ${SYSTEM_CENTOS}-*
|
||
## 安装/更换基于 CentOS 的 EPEL 扩展国内源
|
||
[ ${EPEL_INSTALL} = "True" ] && EPELMirrors
|
||
elif [ ${SYSTEM_JUDGMENT} = ${SYSTEM_FEDORA} ]; then
|
||
sed -i 's|^metalink=|#metalink=|g' \
|
||
$RedHatReposDir/${SOURCE_BRANCH}.repo \
|
||
$RedHatReposDir/${SOURCE_BRANCH}-updates.repo \
|
||
$RedHatReposDir/${SOURCE_BRANCH}-modular.repo \
|
||
$RedHatReposDir/${SOURCE_BRANCH}-updates-modular.repo \
|
||
$RedHatReposDir/${SOURCE_BRANCH}-updates-testing.repo \
|
||
$RedHatReposDir/${SOURCE_BRANCH}-updates-testing-modular.repo
|
||
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" $RedHatReposDir/fedora*
|
||
sed -i "s|download.example/pub/fedora/linux|${SOURCE}/fedora|g" \
|
||
$RedHatReposDir/fedora.repo \
|
||
$RedHatReposDir/${SOURCE_BRANCH}-updates.repo \
|
||
$RedHatReposDir/${SOURCE_BRANCH}-modular.repo \
|
||
$RedHatReposDir/${SOURCE_BRANCH}-updates-modular.repo \
|
||
$RedHatReposDir/${SOURCE_BRANCH}-updates-testing.repo \
|
||
$RedHatReposDir/${SOURCE_BRANCH}-updates-testing-modular.repo
|
||
fi
|
||
}
|
||
|
||
## 安装/更换基于 RHEL/CentOS 的 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.aliyun.com/epel/epel-release-latest-${CENTOS_VERSION}.noarch.rpm
|
||
fi
|
||
## 删除原有 EPEL 扩展 repo 源文件
|
||
[ ${VERIFICATION_EPELFILES} -eq 0 ] && rm -rf $RedHatReposDir/epel*
|
||
[ ${VERIFICATION_EPELBACKUPFILES} -eq 0 ] && rm -rf $RedHatReposDirBackup/epel*
|
||
## 生成官方 EPEL 扩展 repo 源文件
|
||
EPELReposCreate
|
||
## 更换国内源
|
||
sed -i 's|^metalink=|#metalink=|g' $RedHatReposDir/epel*
|
||
case ${CENTOS_VERSION} in
|
||
8)
|
||
sed -i "s|^#baseurl=https|baseurl=${WEB_PROTOCOL}|g" $RedHatReposDir/epel*
|
||
;;
|
||
7)
|
||
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" $RedHatReposDir/epel*
|
||
;;
|
||
esac
|
||
sed -i "s|download.fedoraproject.org/pub|${SOURCE}|g" $RedHatReposDir/epel*
|
||
rm -rf $RedHatReposDir/epel*rpmnew
|
||
}
|
||
|
||
## 选择国内源
|
||
function ChooseMirrors() {
|
||
clear
|
||
echo -e '+---------------------------------------------------+'
|
||
echo -e '| |'
|
||
echo -e '| ============================================= |'
|
||
echo -e '| |'
|
||
echo -e '| 欢迎使用 Linux 一键更换国内软件源脚本 |'
|
||
echo -e '| |'
|
||
echo -e '| ============================================= |'
|
||
echo -e '| |'
|
||
echo -e '+---------------------------------------------------+'
|
||
echo -e ''
|
||
echo -e '#####################################################'
|
||
echo -e ''
|
||
echo -e ' 提供以下国内软件源可供选择:'
|
||
echo -e ''
|
||
echo -e '#####################################################'
|
||
echo -e ''
|
||
echo -e ' ❖ 阿里云 1)'
|
||
echo -e ' ❖ 腾讯云 2)'
|
||
echo -e ' ❖ 华为云 3)'
|
||
echo -e ' ❖ 网易 4)'
|
||
echo -e ' ❖ 搜狐 5)'
|
||
echo -e ' ❖ 清华大学 6)'
|
||
echo -e ' ❖ 浙江大学 7)'
|
||
echo -e ' ❖ 南京大学 8)'
|
||
echo -e ' ❖ 重庆大学 9)'
|
||
echo -e ' ❖ 兰州大学 10)'
|
||
echo -e ' ❖ 上海交通大学 11)'
|
||
echo -e ' ❖ 哈尔滨工业大学 12)'
|
||
echo -e ' ❖ 中国科学技术大学 13)'
|
||
echo -e ''
|
||
echo -e '#####################################################'
|
||
echo -e ''
|
||
echo -e " 运行环境 ${BLUE}${SYSTEM_NAME} ${SYSTEM_VERSION_NUMBER} ${SYSTEM_ARCH}${PLAIN}"
|
||
echo -e " 系统时间 ${BLUE}$(date "+%Y-%m-%d %H:%M:%S")${PLAIN}"
|
||
echo -e ''
|
||
echo -e '#####################################################'
|
||
CHOICE_A=$(echo -e "\n${BOLD}└ 请选择并输入你想使用的软件源 [ 1-13 ]:${PLAIN}")
|
||
read -p "${CHOICE_A}" INPUT
|
||
case $INPUT in
|
||
1)
|
||
SOURCE="mirrors.aliyun.com"
|
||
;;
|
||
2)
|
||
SOURCE="mirrors.cloud.tencent.com"
|
||
;;
|
||
3)
|
||
SOURCE="repo.huaweicloud.com"
|
||
;;
|
||
4)
|
||
SOURCE="mirrors.163.com"
|
||
;;
|
||
5)
|
||
SOURCE="mirrors.sohu.com"
|
||
;;
|
||
6)
|
||
SOURCE="mirrors.tuna.tsinghua.edu.cn"
|
||
;;
|
||
7)
|
||
SOURCE="mirrors.zju.edu.cn"
|
||
;;
|
||
8)
|
||
SOURCE="mirrors.nju.edu.cn"
|
||
;;
|
||
9)
|
||
SOURCE="mirrors.cqu.edu.cn"
|
||
;;
|
||
10)
|
||
SOURCE="mirror.lzu.edu.cn"
|
||
;;
|
||
11)
|
||
SOURCE="mirror.sjtu.edu.cn"
|
||
;;
|
||
12)
|
||
SOURCE="mirrors.hit.edu.cn"
|
||
;;
|
||
13)
|
||
SOURCE="mirrors.ustc.edu.cn"
|
||
;;
|
||
*)
|
||
SOURCE="mirrors.aliyun.com"
|
||
echo -e "\n${WARN} 输入错误,将默认使用 ${BLUE}阿里云${PLAIN} 作为国内源!"
|
||
sleep 2s
|
||
;;
|
||
esac
|
||
|
||
## 更换基于 RHEL/CentOS 的 EPEL (Extra Packages for Enterprise Linux) 扩展国内源
|
||
if [ ${SYSTEM_JUDGMENT} = ${SYSTEM_CENTOS} -o ${SYSTEM_JUDGMENT} = ${SYSTEM_RHEL} ]; then
|
||
## 判断是否已安装 EPEL 软件包
|
||
rpm -qa | grep epel-release -q
|
||
VERIFICATION_EPEL=$?
|
||
## 判断 /etc/yum.repos.d 目录下是否存在 epel 扩展 repo 源文件
|
||
[ -d $RedHatReposDir ] && ls $RedHatReposDir | grep epel -q
|
||
VERIFICATION_EPELFILES=$?
|
||
## 判断 /etc/yum.repos.d.bak 目录下是否存在 epel 扩展 repo 源文件
|
||
[ -d $RedHatReposDirBackup ] && ls $RedHatReposDirBackup | grep epel -q
|
||
VERIFICATION_EPELBACKUPFILES=$?
|
||
|
||
if [ ${VERIFICATION_EPEL} -eq 0 ]; then
|
||
CHOICE_D=$(echo -e "\n${BOLD}└ 检测到系统已安装 EPEL 扩展源,是否替换/覆盖为国内源 [ Y/n ]:${PLAIN}")
|
||
else
|
||
CHOICE_D=$(echo -e "\n${BOLD}└ 是否安装 EPEL 扩展源 [ Y/n ]:${PLAIN}")
|
||
fi
|
||
read -p "${CHOICE_D}" INPUT
|
||
[ -z ${INPUT} ] && INPUT=Y
|
||
case $INPUT in
|
||
[Yy] | [Yy][Ee][Ss])
|
||
EPEL_INSTALL="True"
|
||
;;
|
||
[Nn] | [Nn][Oo])
|
||
EPEL_INSTALL="False"
|
||
;;
|
||
*)
|
||
echo -e "\n${WARN} 输入错误,默认不更换!"
|
||
EPEL_INSTALL="False"
|
||
;;
|
||
esac
|
||
fi
|
||
|
||
## 选择同步软件源所使用的 WEB 协议( HTTP:80 端口,HTTPS:443 端口)
|
||
CHOICE_E=$(echo -e "\n${BOLD}└ 软件源是否使用 HTTP 协议 [ Y/n ]:${PLAIN}")
|
||
read -p "${CHOICE_E}" 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
|
||
|
||
## 关闭 防火墙 和 SELINUX
|
||
[ ${SYSTEM_FACTIONS} = ${SYSTEM_REDHAT} ] && TurnOffFirewall
|
||
}
|
||
|
||
## 生成 CentOS 官方 repo 源文件
|
||
function CreateCentOSRepoFiles() {
|
||
if [ ${CENTOS_VERSION} -eq "8" ]; then
|
||
CentOS8_RepoFiles='CentOS-Linux-AppStream.repo CentOS-Linux-BaseOS.repo CentOS-Linux-ContinuousRelease.repo CentOS-Linux-Debuginfo.repo CentOS-Linux-Devel.repo CentOS-Linux-Extras.repo CentOS-Linux-FastTrack.repo CentOS-Linux-HighAvailability.repo CentOS-Linux-Media.repo CentOS-Linux-Plus.repo CentOS-Linux-PowerTools.repo CentOS-Linux-Sources.repo'
|
||
for REPOS in $CentOS8_RepoFiles; do
|
||
touch $REPOS
|
||
done
|
||
cat >$RedHatReposDir/${SYSTEM_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 >$RedHatReposDir/${SYSTEM_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 >$RedHatReposDir/${SYSTEM_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 >$RedHatReposDir/${SYSTEM_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 >$RedHatReposDir/${SYSTEM_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 >$RedHatReposDir/${SYSTEM_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 >$RedHatReposDir/${SYSTEM_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 >$RedHatReposDir/${SYSTEM_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 >$RedHatReposDir/${SYSTEM_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 >$RedHatReposDir/${SYSTEM_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 >$RedHatReposDir/${SYSTEM_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 >$RedHatReposDir/${SYSTEM_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
|
||
elif [ ${CENTOS_VERSION} -eq "7" ]; then
|
||
CentOS7_RepoFiles='CentOS-Base.repo CentOS-CR.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Sources.repo CentOS-Vault.repo'
|
||
for REPOS in $CentOS7_RepoFiles; do
|
||
touch $REPOS
|
||
done
|
||
cat >$RedHatReposDir/${SYSTEM_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 >$RedHatReposDir/${SYSTEM_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 >$RedHatReposDir/${SYSTEM_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 >$RedHatReposDir/${SYSTEM_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 >$RedHatReposDir/${SYSTEM_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 >$RedHatReposDir/${SYSTEM_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
|
||
fi
|
||
}
|
||
|
||
## 生成 Fedora 官方 repo 源文件
|
||
function CreateReposRepoFiles() {
|
||
Fedora_RepoFiles='fedora-cisco-openh264.repo fedora.repo fedora-updates.repo fedora-modular.repo fedora-updates-modular.repo fedora-updates-testing.repo fedora-updates-testing-modular.repo'
|
||
for REPOS in $Fedora_RepoFiles; do
|
||
touch $REPOS
|
||
done
|
||
cat >$RedHatReposDir/${SOURCE_BRANCH}-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 >$RedHatReposDir/${SOURCE_BRANCH}.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 >$RedHatReposDir/${SOURCE_BRANCH}-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 >$RedHatReposDir/${SOURCE_BRANCH}-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 >$RedHatReposDir/${SOURCE_BRANCH}-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 >$RedHatReposDir/${SOURCE_BRANCH}-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 >$RedHatReposDir/${SOURCE_BRANCH}-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
|
||
}
|
||
|
||
## 生成 EPEL 扩展 repo 官方源文件
|
||
function EPELReposCreate() {
|
||
cd $RedHatReposDir
|
||
if [ ${CENTOS_VERSION} -eq "8" ]; then
|
||
EPEL8_RepoFiles='epel.repo epel-modular.repo epel-playground.repo epel-testing.repo epel-testing-modular.repo'
|
||
for REPOS in $EPEL8_RepoFiles; do
|
||
touch $REPOS
|
||
done
|
||
cat >$RedHatReposDir/epel.repo <<\EOF
|
||
[epel]
|
||
name=Extra Packages for Enterprise Linux $releasever - $basearch
|
||
#baseurl=https://download.fedoraproject.org/pub/epel/$releasever/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/$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-8
|
||
gpgcheck=1
|
||
|
||
[epel-source]
|
||
name=Extra Packages for Enterprise Linux $releasever - $basearch - Source
|
||
#baseurl=https://download.fedoraproject.org/pub/epel/$releasever/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 >$RedHatReposDir/epel-modular.repo <<\EOF
|
||
[epel-modular]
|
||
name=Extra Packages for Enterprise Linux Modular $releasever - $basearch
|
||
#baseurl=https://download.fedoraproject.org/pub/epel/$releasever/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/$releasever/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/$releasever/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 >$RedHatReposDir/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 >$RedHatReposDir/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 >$RedHatReposDir/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
|
||
elif [ ${CENTOS_VERSION} -eq "7" ]; then
|
||
EPEL7_RepoFiles='epel.repo epel-testing.repo'
|
||
for REPOS in $EPEL7_RepoFiles; do
|
||
touch $REPOS
|
||
done
|
||
cat >$RedHatReposDir/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 >$RedHatReposDir/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
|
||
fi
|
||
}
|
||
|
||
Combin_Function
|