From d5549cac0766ccd49273e0c878fd3383b0c3e205 Mon Sep 17 00:00:00 2001 From: Super Manito <68613938+SuperManito@users.noreply.github.com> Date: Fri, 8 Oct 2021 00:03:44 +0800 Subject: [PATCH] Update --- .gitee/issue_template.md | 45 + .github/ISSUE_TEMPLATE/bug_report.md | 54 + .github/ISSUE_TEMPLATE/config.yml | 1 + .github/ISSUE_TEMPLATE/feature_request.md | 10 + .github/workflows/auto-sync.yml | 29 + ChangeMirrors.sh | 1483 +++++++++++++++++++++ DockerInstallation.sh | 678 ++++++++++ DockerInstallation.x | Bin 0 -> 40000 bytes LICENSE | 339 +++++ README.md | 144 ++ icon/centos.svg | 1 + icon/csdn.png | Bin 0 -> 5106 bytes icon/debian.svg | 1 + icon/fedora.ico | Bin 0 -> 4286 bytes icon/gitee.svg | 17 + icon/github-1.svg | 1 + icon/github-2.svg | 1 + icon/kali.svg | 1 + icon/linux.svg | 1 + icon/redhat.svg | 1 + icon/thanks.jpg | Bin 0 -> 192259 bytes icon/ubuntu.svg | 1 + 22 files changed, 2808 insertions(+) create mode 100644 .gitee/issue_template.md create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/workflows/auto-sync.yml create mode 100644 ChangeMirrors.sh create mode 100644 DockerInstallation.sh create mode 100644 DockerInstallation.x create mode 100644 LICENSE create mode 100644 README.md create mode 100644 icon/centos.svg create mode 100644 icon/csdn.png create mode 100644 icon/debian.svg create mode 100644 icon/fedora.ico create mode 100644 icon/gitee.svg create mode 100644 icon/github-1.svg create mode 100644 icon/github-2.svg create mode 100644 icon/kali.svg create mode 100644 icon/linux.svg create mode 100644 icon/redhat.svg create mode 100644 icon/thanks.jpg create mode 100644 icon/ubuntu.svg diff --git a/.gitee/issue_template.md b/.gitee/issue_template.md new file mode 100644 index 0000000..635ecd6 --- /dev/null +++ b/.gitee/issue_template.md @@ -0,0 +1,45 @@ + + + + +## 1. 处理器架构 + +- [ ] `x86_64` `x86_32` +- [ ] `arm64` `arm/v8` `arm/v7` `arm/v6` +- [ ] `ppc64le` `s390x` +- [ ] `Other` + +## 2. 使用环境 + +- [ ] `Debian` +- [ ] `Ubuntu` +- [ ] `Kali Linux` +- [ ] `Red Hat Enterprise Linux` +- [ ] `CentOS` +- [ ] `Fedora` + +## 3. 使用环境版本 + +A: + +## 4. 详细叙述您的问题 +### (1) 具体问题 +A: + + +### (2) 详细的系统日志 + +A: diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..ca480e1 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,54 @@ +--- +name: Bug report +about: 错误提交 +title: '' +labels: '' +assignees: '' + +--- + + + + + +## 1. 处理器架构 + +- [ ] `x86_64` `x86_32` +- [ ] `arm64` `arm/v8` `arm/v7` `arm/v6` +- [ ] `ppc64le` `s390x` +- [ ] `Other` + +## 2. 使用环境 + +- [ ] `Debian` +- [ ] `Ubuntu` +- [ ] `Kali Linux` +- [ ] `Red Hat Enterprise Linux` +- [ ] `CentOS` +- [ ] `Fedora` + +## 3. 使用环境版本 + +A: + +## 4. 详细叙述您的问题 +### (1) 具体问题 +A: + + +### (2) 详细的系统日志 + +A: diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..ec4bb38 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: false \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..a090227 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,10 @@ +--- +name: Feature request +about: 意见与建议 +title: '' +labels: '' +assignees: '' + +--- + + diff --git a/.github/workflows/auto-sync.yml b/.github/workflows/auto-sync.yml new file mode 100644 index 0000000..7b75d46 --- /dev/null +++ b/.github/workflows/auto-sync.yml @@ -0,0 +1,29 @@ +# 通过 Github actions, 在 Github 仓库的每一次 commit 后自动同步到 Gitee 上 +name: Github > Gitee +on: + push: + branches: + - main +jobs: + repo-sync: + env: + dst_key: ${{ secrets.GITEE_PRIVATE_KEY }} + dst_token: ${{ secrets.GITEE_TOKEN }} + gitee_user: ${{ secrets.GITEE_USER }} + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + persist-credentials: false + + - name: sync github -> gitee + uses: Yikun/hub-mirror-action@master + if: env.dst_key && env.dst_token && env.gitee_user + with: + + src: github/SuperManito + dst: gitee/SuperManito + dst_key: ${{ secrets.GITEE_PRIVATE_KEY }} + dst_token: ${{ secrets.GITEE_TOKEN }} + static_list: "LinuxMirrors" + force_update: true diff --git a/ChangeMirrors.sh b/ChangeMirrors.sh new file mode 100644 index 0000000..a0fc281 --- /dev/null +++ b/ChangeMirrors.sh @@ -0,0 +1,1483 @@ +#!/bin/env bash +## Author: SuperManito +## Modified: 2021-09-21 +## License: GPL-2.0 +## https://github.com/SuperManito/LinuxMirrors +## https://gitee.com/SuperManito/LinuxMirrors + +function AuthorSignature() { + if [ ${SYSTEM_FACTIONS} = ${SYSTEM_DEBIAN} ]; then + apt-get install -y figlet toilet >/dev/null 2>&1 + elif [ ${SYSTEM_FACTIONS} = ${SYSTEM_REDHAT} ]; then + yum install -y figlet toilet >/dev/null 2>&1 + fi + if [ $? -eq 0 ]; then + echo -e "\n$(toilet -f slant -F border --gay SuperManito)\n" + else + echo -e '\n\033[35m _____ __ ___ _ __ \033[0m' + echo -e '\033[31m / ___/__ ______ ___ _____/ |/ /___ _____ (_) /_____ \033[0m' + echo -e '\033[33m \__ \/ / / / __ \/ _ \/ ___/ /|_/ / __ `/ __ \/ / __/ __ \ \033[0m' + echo -e '\033[32m ___/ / /_/ / /_/ / __/ / / / / / /_/ / / / / / /_/ /_/ / \033[0m' + echo -e '\033[36m /____/\__,_/ .___/\___/_/ /_/ /_/\__,_/_/ /_/_/\__/\____/ \033[0m' + echo -e '\033[34m /_/ \033[0m\n' + fi +} + +## 定义系统判定变量 +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 +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 + +## 组合函数 +function Combin_Function() { + PermissionJudgment && clear + EnvJudgment + ChooseMirrors + BackupMirrors + RemoveOldMirrorsFiles + ChangeMirrors + UpgradeSoftware + AuthorSignature +} + +## 系统判定变量 +function EnvJudgment() { + ## 判定当前系统基于 Debian or RedHat + if [ -f $RedHatRelease ]; then + SYSTEM_FACTIONS=${SYSTEM_REDHAT} + else + SYSTEM_FACTIONS=${SYSTEM_DEBIAN} + fi + ## 定义系统名称 + SYSTEM_NAME=$(cat $LinuxRelease | grep -E "^NAME" | awk -F '\"' '{print$2}') + ## 定义系统版本号 + SYSTEM_VERSION_NUMBER=$(cat $LinuxRelease | grep -E "VERSION_ID" | awk -F '\"' '{print$2}') + ## 判定系统名称、版本、版本号 + case ${SYSTEM_FACTIONS} in + Debian) + 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 '\033[31m -------- Permission no enough, please use user ROOT! ------------ \033[0m' + exit + fi +} + +## 关闭 防火墙 和 SELINUX +function TurnOffFirewall() { + systemctl status firewalld | grep running -q + if [ $? -eq 0 ]; then + CHOICE_C=$(echo -e '\n\033[37m└ 是否关闭防火墙和 SELINUX [ Y/n ]:\033[0m') + read -p "${CHOICE_C}" INPUT + [ -z ${INPUT} ] && INPUT=Y + case $INPUT in + [Yy]*) + 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]*) ;; + *) + echo -e '\n\033[33m------------ 输入错误,默认不关闭 ------------\033[0m' + ;; + 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\033[37m└ 检测到系统存在已备份的 list 源文件,是否覆盖备份 [ Y/n ]:\033[0m") + read -p "${CHOICE_BACKUP1}" INPUT + [ -z ${INPUT} ] && INPUT=Y + case $INPUT in + [Yy]*) + echo -e '' + cp -rf $DebianSourceList $DebianSourceListBackup >/dev/null 2>&1 + ;; + [Nn]*) + echo -e '' + ;; + *) + echo -e '\n\033[33m------------ 输入错误,默认不覆盖 ------------\033[0m\n' + ;; + esac + else + cp -rf $DebianSourceList $DebianSourceListBackup >/dev/null 2>&1 + echo -e "\n\033[37m└ 已备份原有 list 源文件至 $DebianSourceListBackup ... \033[0m\n" + 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\033[37m└ 检测到系统存在已备份的 list 第三方源文件,是否覆盖备份 [ Y/n ]:\033[0m") + read -p "${CHOICE_BACKUP2}" INPUT + [ -z ${INPUT} ] && INPUT=Y + case $INPUT in + [Yy]*) + cp -rf $DebianExtendListDir/* $DebianExtendListDirBackup >/dev/null 2>&1 + ;; + [Nn]*) + echo '' + ;; + *) + echo -e '\n\033[33m------------ 输入错误,默认不覆盖 ------------\033[0m\n' + ;; + esac + else + [ -d $DebianExtendListDirBackup ] || mkdir -p $DebianExtendListDirBackup + cp -rf $DebianExtendListDir/* $DebianExtendListDirBackup >/dev/null 2>&1 + echo -e "\033[37m└ 已备份原有 list 第三方源文件至 $DebianExtendListDirBackup 目录... \033[0m\n" + 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\033[37m└ 检测到系统存在已备份的 repo 源文件,是否覆盖备份 [ Y/n ]:\033[0m") + read -p "${CHOICE_BACKUP3}" INPUT + [ -z ${INPUT} ] && INPUT=Y + case $INPUT in + [Yy]*) + cp -rf $RedHatReposDir/* $RedHatReposDirBackup >/dev/null 2>&1 + echo -e '' + ;; + [Nn]*) ;; + *) + echo -e '\n\033[33m------------ 输入错误,默认不覆盖 ------------\033[0m\n' + ;; + esac + else + [ -d $RedHatReposDirBackup ] || mkdir -p $RedHatReposDirBackup + cp -rf $RedHatReposDir/* $RedHatReposDirBackup >/dev/null 2>&1 + echo -e "\n\033[37m└ 已备份原有 repo 源文件至 $RedHatReposDirBackup 目录... \033[0m\n" + 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 "\033[32m------------ 开始${SYNC_TXT}软件源 ------------\033[0m\n" + case ${SYSTEM_FACTIONS} in + Debian) + apt-get update + ;; + RedHat) + yum makecache + ;; + esac + VERIFICATION_SOURCESYNC=$? + if [ ${VERIFICATION_SOURCESYNC} -eq 0 ]; then + echo -e "\n\033[32m------------ ${SYNC_TXT}软件源结束 ------------\033[0m" + else + echo -e "\n\033[31m------------ 软件源${SYNC_TXT}失败,请重新执行脚本 ------------\033[0m\n\n如果仍然${SYNC_TXT}失败那么可能由以下原因导致\n1. 网络问题:例如网络异常、网络间歇式中断、由地区影响的网络因素等\n2. 软件源问题:所选镜像站正在维护或者不支持你的操作系统\n" + exit + fi +} + +## 更新软件包 +function UpgradeSoftware() { + CHOICE_B=$(echo -e '\n\033[37m└ 是否更新软件包 [ Y/n ]:\033[0m') + read -p "${CHOICE_B}" INPUT + [ -z ${INPUT} ] && INPUT=Y + case $INPUT in + [Yy]*) + echo -e '' + case ${SYSTEM_FACTIONS} in + Debian) + apt-get upgrade -y + ;; + RedHat) + yum update -y + ;; + esac + CHOICE_C=$(echo -e '\n\033[37m└ 是否清理已下载的软件包缓存 [ Y/n ]:\033[0m') + read -p "${CHOICE_C}" INPUT + [ -z ${INPUT} ] && INPUT=Y + case $INPUT in + [Yy]*) + 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[OK] 清理完毕' + ;; + [Nn]*) ;; + *) + echo -e '\n\033[33m------------ 输入错误,默认不清理 ------------\033[0m' + ;; + esac + ;; + [Nn]*) ;; + *) + echo -e '\n\033[33m------------ 输入错误,默认不更新 ------------\033[0m' + ;; + esac + echo -e '\n\033[32m------------ 软件源更换完毕 ------------\033[0m' +} + +## 更换基于 Debian 系 Linux 发行版的国内源 +function DebianMirrors() { + ## 修改国内源 + if [ ${SYSTEM_JUDGMENT} = ${SYSTEM_UBUNTU} ]; then + echo "## 默认注释了源码仓库,如有需要可自行取消注释" >>$DebianSourceList + echo "deb ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION} main restricted universe multiverse" >>$DebianSourceList + echo "# deb-src ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION} main restricted universe multiverse" >>$DebianSourceList + echo "deb ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION}-security main restricted universe multiverse" >>$DebianSourceList + echo "# deb-src ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION}-security main restricted universe multiverse" >>$DebianSourceList + echo "deb ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION}-updates main restricted universe multiverse" >>$DebianSourceList + echo "# deb-src ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION}-updates main restricted universe multiverse" >>$DebianSourceList + echo "deb ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION}-backports main restricted universe multiverse" >>$DebianSourceList + echo "# deb-src ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION}-backports main restricted universe multiverse" >>$DebianSourceList + echo '' >>$DebianSourceList + echo "## 预发布软件源,不建议启用" >>$DebianSourceList + echo "# deb ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION}-proposed main restricted universe multiverse" >>$DebianSourceList + echo "# deb-src ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION}-proposed main restricted universe multiverse" >>$DebianSourceList + elif [ ${SYSTEM_JUDGMENT} = ${SYSTEM_DEBIAN} ]; then + echo "## 默认注释了源码仓库,如有需要可自行取消注释" >>$DebianSourceList + echo "deb ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION} main contrib non-free" >>$DebianSourceList + echo "# deb-src ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION} main contrib non-free" >>$DebianSourceList + echo "deb ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION}-updates main contrib non-free" >>$DebianSourceList + echo "# deb-src ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION}-updates main contrib non-free" >>$DebianSourceList + echo "deb ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION}-backports main contrib non-free" >>$DebianSourceList + echo "# deb-src ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION}-backports main contrib non-free" >>$DebianSourceList + echo '' >>$DebianSourceList + echo "## 预发布软件源,不建议启用" >>$DebianSourceList + echo "# deb ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}-security ${SYSTEM_VERSION}/updates main contrib non-free" >>$DebianSourceList + echo "# deb-src ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}-security ${SYSTEM_VERSION}/updates main contrib non-free" >>$DebianSourceList + elif [ ${SYSTEM_JUDGMENT} = ${SYSTEM_KALI} ]; then + echo "deb ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION} main non-free contrib" >>$DebianSourceList + echo "deb-src ${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH} ${SYSTEM_VERSION} main non-free contrib" >>$DebianSourceList + fi +} + +## 更换基于 RedHat 系 Linux 发行版的国内源 +function RedHatMirrors() { + ## 生成基于 RedHat 发行版和及其衍生发行版的官方 repo 源文件 + ## 由于 RedHat 系 Linux 源文件各不相同且不易判断,故通过在删除原有源后重新创建官方源的方式更换国内源 + cd $RedHatReposDir + case ${SYSTEM_JUDGMENT} in + RedHat | CentOS) + CentOSReposCreate + ;; + Fedora) + FedoraReposCreate + ;; + 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 '\033[32m------------ 安装 epel-release 软件包 ------------\033[0m\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 + echo '' +} + +## 选择国内源 +function ChooseMirrors() { + 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 " 运行环境 \033[34m${SYSTEM_NAME} ${SYSTEM_VERSION_NUMBER} ${SYSTEM_ARCH}\033[0m" + echo -e " 系统时间 \033[34m$(date "+%Y-%m-%d %H:%M:%S")\033[0m" + echo -e '' + echo -e '#####################################################' + CHOICE_A=$(echo -e '\n\033[37m└ 请选择并输入你想使用的软件源 [ 1-13 ]:\033[0m') + 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\033[33m------------ 输入错误,将默认使用阿里云作为国内源 ------------\033[0m' + sleep 1s + ;; + 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\033[37m└ 检测到系统已安装 EPEL 扩展源,是否替换/覆盖为国内源 [ Y/n ]:\033[0m') + else + CHOICE_D=$(echo -e '\n\033[37m└ 是否安装 EPEL 扩展源 [ Y/n ]:\033[0m') + fi + read -p "${CHOICE_D}" INPUT + [ -z ${INPUT} ] && INPUT=Y + case $INPUT in + [Yy]*) + EPEL_INSTALL="True" + ;; + [Nn]*) + EPEL_INSTALL="False" + ;; + *) + echo -e '\n\033[33m------------ 输入错误,默认不更换 ------------\033[0m' + EPEL_INSTALL="False" + ;; + esac + fi + + ## 选择同步软件源所使用的 WEB 协议( HTTP:80 端口,HTTPS:443 端口) + CHOICE_E=$(echo -e "\n\033[37m└ 软件源是否使用 HTTP 协议 [ Y/n ]:\033[0m") + read -p "${CHOICE_E}" INPUT + [ -z ${INPUT} ] && INPUT=Y + case $INPUT in + [Yy]*) + WEB_PROTOCOL="http" + ;; + [Nn]*) + WEB_PROTOCOL="https" + ;; + *) + echo -e "\n\033[33m------------ 输入错误,默认使用 HTTPS 协议 ------------\033[0m" + WEB_PROTOCOL="https" + ;; + esac + + ## 关闭 防火墙 和 SELINUX + [ ${SYSTEM_FACTIONS} = ${SYSTEM_REDHAT} ] && TurnOffFirewall +} + +## 生成 CentOS 官方 repo 源文件 +function CentOSReposCreate() { + 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 FedoraReposCreate() { + 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 diff --git a/DockerInstallation.sh b/DockerInstallation.sh new file mode 100644 index 0000000..1a183c2 --- /dev/null +++ b/DockerInstallation.sh @@ -0,0 +1,678 @@ +#!/bin/bash +## Author: SuperManito +## Modified: 2021-09-21 +## License: GPL-2.0 +## https://github.com/SuperManito/LinuxMirrors +## https://gitee.com/SuperManito/LinuxMirrors + +function AuthorSignature() { + if [ ${SYSTEM_FACTIONS} = ${SYSTEM_DEBIAN} ]; then + apt-get install -y figlet toilet >/dev/null 2>&1 + elif [ ${SYSTEM_FACTIONS} = ${SYSTEM_REDHAT} ]; then + yum install -y figlet toilet >/dev/null 2>&1 + fi + if [[ $? -eq 0 ]]; then + echo -e "\n$(toilet -f slant -F border --gay SuperManito)\n" + else + echo -e '\n\033[35m _____ __ ___ _ __ \033[0m' + echo -e '\033[31m / ___/__ ______ ___ _____/ |/ /___ _____ (_) /_____ \033[0m' + echo -e '\033[33m \__ \/ / / / __ \/ _ \/ ___/ /|_/ / __ `/ __ \/ / __/ __ \ \033[0m' + echo -e '\033[32m ___/ / /_/ / /_/ / __/ / / / / / /_/ / / / / / /_/ /_/ / \033[0m' + echo -e '\033[36m /____/\__,_/ .___/\___/_/ /_/ /_/\__,_/_/ /_/_/\__/\____/ \033[0m' + echo -e '\033[34m /_/ \033[0m\n' + fi +} + +## 定义系统判定变量 +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 +DebianSourceList=/etc/apt/sources.list +DebianExtendListDir=/etc/apt/sources.list.d +RedHatReposDir=/etc/yum.repos.d +SelinuxConfig=/etc/selinux/config + +## 定义 Docker 相关变量 +DockerSourceList=$DebianExtendListDir/docker.list +DockerRepo=$RedHatReposDir/download.docker.com_linux_*.repo +DockerDir=/etc/docker +DockerConfig=$DockerDir/daemon.json +DockerConfigBackup=$DockerDir/daemon.json.bak +DockerCompose=/usr/local/bin/docker-compose +DockerVersionFile=docker-version.txt +DockerCEVersionFile=docker-ce-version.txt +DockerCECLIVersionFile=docker-ce-cli-version.txt +PROXY_URL=https://ghproxy.com/ +DOCKER_COMPOSE_VERSION=1.29.2 +DOCKER_COMPOSE_DOWNLOAD_URL=https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 + +## 组合函数 +function Combin_Function() { + PermissionJudgment + NetWorkJudgment && clear + EnvJudgment + ChooseMirrors + InstallationEnvironment + ConfigureDockerCEMirror + DockerEngine + DockerCompose + ShowVersion + AuthorSignature +} + +## 系统判定变量 +function EnvJudgment() { + ## 判定当前系统基于 Debian or RedHat + if [ -f $RedHatRelease ]; then + SYSTEM_FACTIONS=${SYSTEM_REDHAT} + else + SYSTEM_FACTIONS=${SYSTEM_DEBIAN} + fi + ## 定义系统名称 + SYSTEM_NAME=$(cat $LinuxRelease | grep -E "^NAME" | awk -F '\"' '{print$2}') + ## 定义系统版本号 + SYSTEM_VERSION_NUMBER=$(cat $LinuxRelease | grep -E "VERSION_ID" | awk -F '\"' '{print$2}') + ## 判定系统名称、版本、版本号 + case ${SYSTEM_FACTIONS} in + Debian) + 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 + SOURCE_ARCH=amd64 + ;; + aarch64) + SYSTEM_ARCH=ARM64 + SOURCE_ARCH=arm64 + ;; + armv7l) + SYSTEM_ARCH=ARMv7 + SOURCE_ARCH=armhf + ;; + armv6l) + SYSTEM_ARCH=ARMv6 + SOURCE_ARCH=armhf + ;; + i686) + SYSTEM_ARCH=x86_32 + echo -e '\n\033[31m---------- Docker Engine 不支持安装在 x86_32 架构的环境上 ----------\033[0m' + exit 1 + ;; + *) + SYSTEM_ARCH=$Arch + SOURCE_ARCH=armhf + ;; + esac + ## 定义软件源分支名称 + if [ ${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 '\033[31m ---------- Permission no enough, please use user ROOT! ---------- \033[0m' + exit + fi +} +function NetWorkJudgment() { + ping -c 1 www.baidu.com >/dev/null 2>&1 + if [ $? -ne 0 ]; then + echo -e "\033[31m ----- Network connection error, please check the network environment and try again later! ----- \033[0m" + exit + fi +} + +## 关闭防火墙 +function TurnOffFirewall() { + systemctl status firewalld | grep running -q + if [ $? -eq 0 ]; then + 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 + fi +} + +## 安装环境包 +function InstallationEnvironment() { + case ${SYSTEM_FACTIONS} in + Debian) + sed -i '/docker-ce/d' $DebianSourceList + rm -rf $DockerSourceList + ;; + RedHat) + rm -rf $DockerRepo + ;; + esac + case ${SYSTEM_FACTIONS} in + Debian) + apt-get update + ;; + RedHat) + yum makecache + ;; + esac + VERIFICATION_SOURCESYNC=$? + if [ ${VERIFICATION_SOURCESYNC} -ne 0 ]; then + echo -e "\n\033[31m ---------- 软件源${SYNC_TXT}出错,请先确保软件包管理工具可用 ---------- \033[0m\n" + exit 1 + fi + case ${SYSTEM_FACTIONS} in + Debian) + apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common + ;; + RedHat) + yum install -y yum-utils device-mapper-persistent-data lvm2 + ;; + esac + +} + +## 卸载旧版本的 Docker Engine +function RemoveOldVersion() { + systemctl disable --now docker >/dev/null 2>&1 + sleep 2s + case ${SYSTEM_FACTIONS} in + Debian) + apt-get remove -y docker-ce docker-ce-cli containerd.io runc >/dev/null 2>&1 + apt-get autoremove -y >/dev/null 2>&1 + ;; + RedHat) + yum remove -y docker-ce docker-ce-cli containerd.io podman* runc >/dev/null 2>&1 + yum autoremove -y >/dev/null 2>&1 + ;; + esac +} + +## 查看可供安装的 Docker Engine 版本清单 +function DockerEngineVersionList() { + case ${SYSTEM_FACTIONS} in + Debian) + apt-cache madison docker-ce | awk '{print $3}' | grep -Eo "[0-9][0-9].[0-9][0-9].[0-9]{1,2}" >$DockerCEVersionFile + apt-cache madison docker-ce-cli | awk '{print $3}' | grep -Eo "[0-9][0-9].[0-9][0-9].[0-9]{1,2}" >$DockerCECLIVersionFile + grep -wf $DockerCEVersionFile $DockerCECLIVersionFile >$DockerVersionFile + ;; + RedHat) + yum list docker-ce --showduplicates | sort -r | awk '{print $2}' | grep -Eo "[0-9][0-9].[0-9][0-9].[0-9]{1,2}" >$DockerCEVersionFile + yum list docker-ce-cli --showduplicates | sort -r | awk '{print $2}' | grep -Eo "[0-9][0-9].[0-9][0-9].[0-9]{1,2}" >$DockerCECLIVersionFile + grep -wf $DockerCEVersionFile $DockerCECLIVersionFile >$DockerVersionFile + ;; + esac + rm -rf $DockerCEVersionFile $DockerCECLIVersionFile +} + +## 配置 Docker CE 源 +function ConfigureDockerCEMirror() { + if [ ${DOCKER_VERSION_INSTALL_LATEST} == "True" ]; then + SOURCE_JUDGMENT=${SOURCE} + else + SOURCE_JUDGMENT="download.docker.com" + fi + + case ${SYSTEM_FACTIONS} in + Debian) + if [ ${SYSTEM_JUDGMENT} = ${SYSTEM_KALI} ]; then + curl -fsSL https://${SOURCE_JUDGMENT}/linux/debian/gpg | apt-key add - >/dev/null 2>&1 + else + curl -fsSL https://${SOURCE_JUDGMENT}/linux/${SOURCE_BRANCH}/gpg | apt-key add - >/dev/null 2>&1 + fi + echo "deb [arch=${SOURCE_ARCH}] https://${SOURCE_JUDGMENT}/linux/${SOURCE_BRANCH} ${SYSTEM_VERSION} stable" | tee $DockerSourceList >/dev/null 2>&1 + if [ ${SYSTEM_JUDGMENT} = ${SYSTEM_KALI} ]; then + sed -i "s/${SYSTEM_VERSION}/buster/g" $DockerSourceList + sed -i "s/${SOURCE_BRANCH}/debian/g" $DockerSourceList + fi + apt-get update >/dev/null 2>&1 + ;; + RedHat) + yum-config-manager -y --add-repo https://${SOURCE_JUDGMENT}/linux/${SOURCE_BRANCH}/docker-ce.repo + yum makecache >/dev/null 2>&1 + ;; + esac +} + +## 安装 Docker Engine +function DockerEngine() { + case ${SYSTEM_FACTIONS} in + Debian) + dpkg -l | grep docker-ce-cli -q + ;; + RedHat) + rpm -qa | grep docker-ce-cli -q + ;; + esac + if [ $? -eq 0 ]; then + DockerEngineVersionList + DOCKER_INSTALLED_VERSION=$(docker -v | grep -Eo "[0-9][0-9].[0-9][0-9].[0-9]{1,2}") + DOCKER_VERSION_LATEST=$(cat $DockerVersionFile | head -n 1) + if [[ ${DOCKER_INSTALLED_VERSION} == ${DOCKER_VERSION_LATEST} ]]; then + if [ ${DOCKER_VERSION_INSTALL_LATEST} = "True" ]; then + echo -e '\n\033[32m---------- 检测到已安装最新版本的 Docker Engine,跳过安装 ----------\033[0m' + ConfigureImageAccelerator + systemctl status docker | grep running -q + if [ $? -eq 0 ]; then + systemctl restart docker + fi + echo '' + systemctl enable --now docker >/dev/null 2>&1 + DockerCompose + ShowVersion + AuthorSignature + exit + else + CHOICE_E=$(echo -e '\n\033[37m└ 检测到已安装最新版本的 Docker Engine,是否继续安装其它版本 [ Y/n ]:\033[0m') + fi + else + if [ ${DOCKER_VERSION_INSTALL_LATEST} = "True" ]; then + CHOICE_E=$(echo -e '\n\033[37m└ 检测到已安装旧版本的 Docker Engine,是否覆盖安装为最新版本 [ Y/n ]:\033[0m') + else + CHOICE_E=$(echo -e '\n\033[37m└ 检测到已安装旧版本的 Docker Engine,是否继续安装其它版本 [ Y/n ]:\033[0m') + fi + fi + read -p "${CHOICE_E}" INPUT + [ -z ${INPUT} ] && INPUT=Y + case $INPUT in + [Yy]*) + echo -en '\n[\033[34m*\033[0m] 正在卸载之前的版本... ' + RemoveOldVersion + echo -e '\n\n[\033[32mOK\033[0m] 卸载完毕\n' + DockerEngineInstall + ;; + [Nn]*) ;; + *) + echo -e '\n\033[33m---------- 输入错误,默认不覆盖安装 ----------\033[0m\n' + ;; + esac + rm -rf $DockerVersionFile + else + RemoveOldVersion + DockerEngineInstall + fi + ConfigureImageAccelerator + systemctl stop docker >/dev/null 2>&1 + systemctl enable --now docker >/dev/null 2>&1 +} +function DockerEngineInstall() { + if [ ${DOCKER_VERSION_INSTALL_LATEST} == "True" ]; then + case ${SYSTEM_FACTIONS} in + Debian) + apt-get install -y docker-ce docker-ce-cli containerd.io + ;; + RedHat) + yum install -y docker-ce docker-ce-cli containerd.io + ;; + esac + else + DockerEngineVersionList + echo -e '\n\033[32m --------- 请选择你要安装的版本,如:19.03.15 ---------- \033[0m\n' + cat $DockerVersionFile + echo -e '\n注:以上可供选择的安装版本由官方源提供,若系统过新可能无法安装较旧的版本' + while true; do + CHOICE_F=$(echo -e '\n\033[37m└ 请根据上面的列表,输入你想要安装的具体版本号:\033[0m\n') + read -p "${CHOICE_F}" DOCKER_VERSION + echo '' + cat $DockerVersionFile | grep -Ew "${DOCKER_VERSION}" >/dev/null 2>&1 + if [ $? -eq 0 ]; then + echo ${DOCKER_VERSION} | grep -Ew '[1,2][0,8,9].[0,1][0-9].[0-9]{1,2}' >/dev/null 2>&1 + if [ $? -eq 0 ]; then + rm -rf $DockerVersionFile + break + else + echo -e '\033[33m ---------- 请输入正确的版本号 ---------- \033[0m' + fi + else + echo -e '\033[33m ---------- 输入错误请重新输入 ---------- \033[0m' + fi + done + case ${SYSTEM_FACTIONS} in + Debian) + CheckVersion=$(echo ${DOCKER_VERSION} | cut -c1-2) + CheckSubversion=$(echo ${DOCKER_VERSION} | cut -c4-5) + case ${CheckVersion} in + 21 | 20 | 19) + INSTALL_JUDGMENT="5:" + ;; + 18) + if [ ${CheckSubversion} == "09" ]; then + INSTALL_JUDGMENT="5:" + else + INSTALL_JUDGMENT="" + fi + ;; + *) + INSTALL_JUDGMENT="" + ;; + esac + apt-get install -y docker-ce=${INSTALL_JUDGMENT}${DOCKER_VERSION}* docker-ce-cli=5:${DOCKER_VERSION}* containerd.io + ;; + RedHat) + yum install -y docker-ce-${DOCKER_VERSION} docker-ce-cli-${DOCKER_VERSION} containerd.io + ;; + esac + fi +} + +## 修改 Docker Hub 源 +function ConfigureImageAccelerator() { + if [ ${REGISTRY_SOURCE_OFFICIAL} = "False" ]; then + if [ -d $DockerDir ] && [ -e $DockerConfig ]; then + if [ -e $DockerConfigBackup ]; then + CHOICE_BACKUP=$(echo -e "\n\033[37m└ 检测到已备份的 Docker 配置文件,是否覆盖备份 [ Y/n ]:\033[0m") + read -p "${CHOICE_BACKUP}" INPUT + [ -z ${INPUT} ] && INPUT=Y + case $INPUT in + [Yy]*) + cp -rf $DockerConfig $DockerConfigBackup >/dev/null 2>&1 + ;; + [Nn]*) ;; + *) + echo -e '\n\033[33m------------ 输入错误,默认不覆盖 ------------\033[0m ' + ;; + esac + else + cp -rf $DockerConfig $DockerConfigBackup >/dev/null 2>&1 + echo -e "\n\033[37m└ 已备份原有 Docker 配置文件至 $DockerConfigBackup ...... \033[0m" + fi + sleep 2s + else + mkdir -p $DockerDir >/dev/null 2>&1 + touch $DockerConfig + fi + echo -e '{\n "registry-mirrors": ["https://SOURCE"]\n}' >$DockerConfig + sed -i "s/SOURCE/$REGISTRY_SOURCE/g" $DockerConfig + systemctl daemon-reload + fi +} + +## 安装 Docker Compose +function DockerCompose() { + if [ ${DOCKER_COMPOSE} == "True" ]; then + [ -e $DockerCompose ] && rm -rf $DockerCompose + if [ ${Arch} = "x86_64" ]; then + echo -e '' + if [ ${DOCKER_COMPOSE_DOWNLOAD_PROXY} = "True" ]; then + curl -L ${PROXY_URL}${DOCKER_COMPOSE_DOWNLOAD_URL} -o $DockerCompose + else + curl -L ${DOCKER_COMPOSE_DOWNLOAD_URL} -o $DockerCompose + fi + chmod +x $DockerCompose + else + echo -e '\n[*] 正在通过 pip 安装 Docker Compose ......\n' + if [ ${SYSTEM_FACTIONS} = ${SYSTEM_DEBIAN} ]; then + apt-get install -y python3-pip python3-dev gcc libffi-dev openssl >/dev/null 2>&1 + elif [ ${SYSTEM_FACTIONS} = ${SYSTEM_REDHAT} ]; then + yum install -y python3-pip python3-devel gcc libffi-devel openssl-devel >/dev/null 2>&1 + fi + pip3 install --upgrade pip + if [ ${DOCKER_COMPOSE_DOWNLOAD_PROXY} = "True" ]; then + pip3 install -i https://mirrors.aliyun.com/pypi/simple docker-compose + else + pip3 install docker-compose + fi + [ $? -ne 0 ] && echo -e "\n\033[31m---------- Docker Compose 安装失败,检测到当前处理器为 ${Arch} 架构无法保证 100% 安装成功,自行查看 pip 报错原因 ----------\033[0m\n" + fi + echo -e '' + else + echo -e '' + fi +} + +## 查看版本并验证安装结果 +function ShowVersion() { + echo -e '\033[32m---------- 验证安装版本 ----------\033[0m\n' + docker -v + VERIFICATION_DOCKER=$? + [ ${DOCKER_COMPOSE} = "True" ] && docker-compose -v + if [ ${VERIFICATION_DOCKER} -eq 0 ]; then + echo -e '\n\033[32m---------- 安装完成 ----------\033[0m' + else + echo -e '\n\033[31m---------- 安装失败 ----------\033[0m' + exit + fi + systemctl status docker | grep running -q + if [[ $? -ne 0 ]]; then + sleep 2 + systemctl disable --now docker >/dev/null 2>&1 + sleep 2 + systemctl enable --now docker >/dev/null 2>&1 + sleep 2 + systemctl status docker | grep running -q + if [[ $? -ne 0 ]]; then + echo -e '\n\033[31m [ERROR] 检测到 Docker 服务启动异常,可能由于重复安装相同版本导致\033[0m' + echo -e '\n\033[31m 请执行 systemctl start docker 或 service docker start 命令尝试启动\033[0m' + echo -e '\n\033[31m 官方安装文档:https://docs.docker.com/engine/install\033[0m' + fi + fi +} + +function ChooseMirrors() { + echo -e '+---------------------------------------------------+' + echo -e '| |' + echo -e '| ============================================= |' + echo -e '| |' + echo -e '| 欢迎使用 Docker 一键安装脚本 |' + echo -e '| |' + echo -e '| ============================================= |' + echo -e '| |' + echo -e '+---------------------------------------------------+' + echo -e '' + echo -e '#####################################################' + echo -e '' + echo -e ' 提供以下 Docker CE 和 Docker Hub 源可供选择:' + echo -e '' + echo -e '#####################################################' + echo -e '' + echo -e ' Docker CE' + echo -e '' + echo -e ' ❖ 阿里云 1)' + echo -e ' ❖ 腾讯云 2)' + echo -e ' ❖ 华为云 3)' + echo -e ' ❖ Azure 4)' + echo -e ' ❖ 网易 5)' + echo -e ' ❖ 清华大学 6)' + echo -e ' ❖ 中科大 7)' + echo -e ' ❖ 官方 8)' + echo -e '' + echo -e ' Docker Hub' + 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 ' ❖ Azure 8)' + echo -e ' ❖ DaoCloud 9)' + echo -e ' ❖ 中科大 10)' + echo -e ' ❖ 谷歌云 11)' + echo -e ' ❖ 官方 12)' + echo -e '' + echo -e '#####################################################' + echo -e '' + echo -e " 运行环境 ${SYSTEM_NAME} ${SYSTEM_VERSION_NUMBER} ${SYSTEM_ARCH}" + echo -e " 系统时间 $(date "+%Y-%m-%d %H:%M:%S")" + echo -e '' + echo -e '#####################################################' + CHOICE_A=$(echo -e '\n\033[37m└ 请选择并输入你想使用的 Docker CE 源 [ 1~8 ]:\033[0m') + read -p "${CHOICE_A}" INPUT + case $INPUT in + 1) + SOURCE="mirrors.aliyun.com/docker-ce" + ;; + 2) + SOURCE="mirrors.cloud.tencent.com/docker-ce" + ;; + 3) + SOURCE="repo.huaweicloud.com/docker-ce" + ;; + 4) + SOURCE="mirror.azure.cn/docker-ce" + ;; + 5) + SOURCE="mirrors.163.com/docker-ce" + ;; + 6) + SOURCE="mirrors.tuna.tsinghua.edu.cn/docker-ce" + ;; + 7) + SOURCE="mirrors.ustc.edu.cn/docker-ce" + ;; + 8) + SOURCE="download.docker.com" + ;; + *) + SOURCE="mirrors.aliyun.com/docker-ce" + echo -e '\n\033[33m---------- 输入错误,默认使用阿里云 ----------\033[0m' + sleep 1s + ;; + esac + ## 是否手动选择安装版本 + CHOICE_C=$(echo -e '\n\033[37m └ 是否安装最新版本的 Docker Engine [ Y/n ]:\033[0m') + read -p "${CHOICE_C}" INPUT + [ -z ${INPUT} ] && INPUT=Y + case $INPUT in + [Yy]*) + DOCKER_VERSION_INSTALL_LATEST="True" + ;; + [Nn]*) + DOCKER_VERSION_INSTALL_LATEST="False" + if [ ${SOURCE} != "download.docker.com" ]; then + echo -e "\n\033[33m ---------- Docker CE 源已替换成官方源 ---------- \033[0m" + fi + ;; + *) + DOCKER_VERSION_INSTALL_LATEST="True" + echo -e '\n\033[33m---------- 输入错误,默认安装最新版本 ----------\033[0m' + ;; + esac + CHOICE_B=$(echo -e '\n\033[37m└ 请选择并输入你想使用的 Docker Hub 源 [ 1~12 ]:\033[0m') + read -p "${CHOICE_B}" INPUT + case $INPUT in + 1) + REGISTRY_SOURCE="registry.cn-beijing.aliyuncs.com" + REGISTRY_SOURCE_OFFICIAL="False" + ;; + 2) + REGISTRY_SOURCE="registry.cn-hangzhou.aliyuncs.com" + REGISTRY_SOURCE_OFFICIAL="False" + ;; + 3) + REGISTRY_SOURCE="registry.cn-chengdu.aliyuncs.com" + REGISTRY_SOURCE_OFFICIAL="False" + ;; + 4) + REGISTRY_SOURCE="registry.cn-guangzhou.aliyuncs.com" + REGISTRY_SOURCE_OFFICIAL="False" + ;; + 5) + REGISTRY_SOURCE="registry.cn-hongkong.aliyuncs.com" + REGISTRY_SOURCE_OFFICIAL="False" + ;; + 6) + REGISTRY_SOURCE="mirror.ccs.tencentyun.com" + REGISTRY_SOURCE_OFFICIAL="False" + ;; + 7) + REGISTRY_SOURCE="0bab0ef02500f24b0f31c00db79ffa00.mirror.swr.myhuaweicloud.com" + REGISTRY_SOURCE_OFFICIAL="False" + ;; + 8) + REGISTRY_SOURCE="dockerhub.azk8s.com" + REGISTRY_SOURCE_OFFICIAL="False" + ;; + 9) + REGISTRY_SOURCE="f1361db2.m.daocloud.io" + REGISTRY_SOURCE_OFFICIAL="False" + ;; + 10) + REGISTRY_SOURCE="docker.mirrors.ustc.edu.cn" + REGISTRY_SOURCE_OFFICIAL="False" + ;; + 11) + REGISTRY_SOURCE="gcr.io" + REGISTRY_SOURCE_OFFICIAL="False" + ;; + 12) + REGISTRY_SOURCE="registry.docker-cn.com" + REGISTRY_SOURCE_OFFICIAL="True" + ;; + *) + REGISTRY_SOURCE="registry.cn-hangzhou.aliyuncs.com" + REGISTRY_SOURCE_OFFICIAL="False" + echo -e '\n\033[33m---------- 输入错误,默认使用阿里云(杭州) ----------\033[0m' + sleep 1s + ;; + esac + if [ -x $DockerCompose ]; then + CHOICE_D=$(echo -e '\n\033[37m└ 检测到已安装 Docker Compose ,是否覆盖安装 [ Y/n ]:\033[0m') + else + CHOICE_D=$(echo -e '\n\033[37m└ 是否安装 Docker Compose [ Y/n ]:\033[0m') + fi + read -p "${CHOICE_D}" INPUT + [ -z ${INPUT} ] && INPUT=Y + case $INPUT in + [Yy]*) + DOCKER_COMPOSE="True" + CHOICE_D1=$(echo -e '\n\033[37m └ 是否使用国内代理进行下载 [ Y/n ]:\033[0m') + read -p "${CHOICE_D1}" INPUT + [ -z ${INPUT} ] && INPUT=Y + case $INPUT in + [Yy]*) + DOCKER_COMPOSE_DOWNLOAD_PROXY="True" + ;; + [Nn]*) + DOCKER_COMPOSE_DOWNLOAD_PROXY="False" + ;; + *) + DOCKER_COMPOSE_DOWNLOAD_PROXY="False" + echo -e '\n\033[33m---------- 输入错误,默认不使用 ----------\033[0m\n' + ;; + esac + ;; + [Nn]*) + DOCKER_COMPOSE="False" + ;; + *) + DOCKER_COMPOSE="False" + echo -e '\n\033[33m---------- 输入错误,默认不安装 ----------\033[0m\n' + ;; + esac + echo -e '' + + [ ${SYSTEM_FACTIONS} == ${SYSTEM_REDHAT} ] && TurnOffFirewall +} + +Combin_Function diff --git a/DockerInstallation.x b/DockerInstallation.x new file mode 100644 index 0000000000000000000000000000000000000000..8c2f95edb7fe85dc8fe22e8cb7ac8b9f5b427f54 GIT binary patch literal 40000 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 x|JMToA_5ri2>h1+Q}W*KpDch+`cLGq0hsRJ2 + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..5d3182c --- /dev/null +++ b/README.md @@ -0,0 +1,144 @@ +# LinuxMirrors + + +ㅤ +- __`GNU/Linux` 一键更换国内软件源脚本__ +- __本项目旨在为从事计算机相关行业的朋友们提供便利__ +- __理论支持所有架构的环境,`arm64` 环境已经过测试__ +> 🏷️点击上方图标可快速跳转至本项目所发布在的其它仓库或博客 + +### 更新日志 +- __2021 / 06 / 05__ +ㅤ新增对于 Red Hat Enterprise Linux 的全面适配。 +- __2021 / 05 / 30__ +ㅤ新增选择软件源的 WEB 协议功能,修复了一些错误。 +- __2021 / 05 / 05__ +ㅤ新增关闭防火墙功能。 +- __2021 / 04 / 24__ +ㅤ新增基于 CentOS 的添加 EPEL 扩展源功能,修复了一些错误。 +- __2021 / 04 / 22__ +ㅤ重新定义了备份原有源功能,可以通过检测判断是否执行覆盖备份操作。 + +*** + +### 已适配的 GNU/Linux 发行版 Linux Logo + + + + + + + + + + + + + + + + + + + + + + + + + + + +
支持
版本
+
 Debian8.0 ~ 11.0
 Ubuntu16.04 ~ 21.04
 Kali Linux2.0 ~ 2021.2
 RHEL7.0 ~ 8.4
 CentOS7.0 ~ 8.4
 Fedora28 ~ 34
+ +> 目前仅支持上述基于 Debian 与 Redhat 系的发行版和及其部分衍生版本 \ +> 同样支持上述版本中拥有相同底层核心的其它发行版,例如 [`Armbian`](https://www.armbian.com) [`Kubuntu`](https://kubuntu.org) [`Oracle Linux`](https://www.oracle.com/cn/technical-resources) 等 + +### 脚本当前使用的开源镜像站 +| | 镜像站名称 | 镜像站地址 | IPv6 | Kali Linux | Fedora | EPEL | +| :------: | :------: | :------: | :------: | :------: | :------: | :------: | +| 1 | 阿里云 | [mirrors.aliyun.com](https://developer.aliyun.com/special/mirrors/notice) | √ | √ | √ | √ | +| 2 | 腾讯云 | [mirrors.cloud.tencent.com](https://mirrors.cloud.tencent.com) | √ | √ | √ | √ | +| 3 | 华为云 | [mirrors.huaweicloud.com](https://mirrors.huaweicloud.com) | √ | √ | √ | √ | +| 4 | 网易 | [mirrors.163.com](https://mirrors.163.com) | | | √ | | +| 5 | 搜狐 | [mirrors.sohu.com](https://mirrors.sohu.com) | | | | | +| 6 | 清华大学 | [mirrors.tuna.tsinghua.edu.cn](https://mirrors.tuna.tsinghua.edu.cn) | √ | √ | √ | √ | +| 7 | 浙江大学 | [mirrors.zju.edu.cn](https://mirrors.zju.edu.cn) | | √ | √ | √ | +| 8 | 南京大学 | [mirrors.nju.edu.cn](https://mirrors.nju.edu.cn) | | √ | √ | √ | +| 9 | 重庆大学 | [mirrors.cqu.edu.cn](https://mirrors.cqu.edu.cn) | | √ | √ | √ | +| 10 | 兰州大学 | [mirror.lzu.edu.cn](https://mirror.lzu.edu.cn) | √ | | √ | √ | +| 11 | 上海交通大学 | [mirror.sjtu.edu.cn](https://mirror.sjtu.edu.cn) | √ | √ | √ | √ | +| 12 | 哈尔滨工业大学 | [mirrors.hit.edu.cn](https://mirrors.hit.edu.cn) | √ | √ | | √ | +| 13 | 中国科学技术大学 | [mirrors.ustc.edu.cn](https://mirrors.ustc.edu.cn) | √ | √ | √ | √ | +> 所有镜像站均支持 `Debian` `Ubuntu` `CentOS` 软件源,建议优先选择由企业提供的软件源\ +> 如果使用过程中脚本不能正常输出中文内容则可对照此列表使用,顺序与脚本一致 + +### 脚本执行流程 +- └ 选择国内源 `交互` + - └ 检测如果是 RHEL或CentOS 系统选择是否安装/覆盖 EPEL 扩展国内源 `交互` +- └ 选择软件源使用的 WEB 协议 `交互` +- └ 检测 防火墙 和 SELINUX 如果开启并且系统是 RHEL或CentOS 选择是否关闭 `交互` +- └ 备份原有源 + - └ 检测如果存在重复的备份文件选择是否覆盖 `交互` +- └ 更换国内源 +- └ 选择是否更新软件包 `交互` + - └ 选择是否清理已下载的软件包缓存 `交互` + +*** + +### 如何使用 +> 1. 完整复制下面的命令到终端按回车键即可执行,若无法安装 `curl` 软件包可复制源码到本地后手动执行。 +> 2. 为了适配所有环境,建议使用 `Root` 用户执行脚本,切换命令为 `sudo -i` ,如遇报错请查看常见问题与帮助。 +> 3. 如果您使用的环境没有安装或不支持简体中文环境,请通过 `SSH客户端工具` 使用,否则将无法正确选择交互内容。 +> 4. 执行脚本过程中会自动备份原有源无需手动备份,期间会在终端输出多个主观选择交互内容,可按回车键快速确认。 +> 5. 脚本支持在原有源配置错误或者不存在的情况下使用,并且可以重复使用;脚本变更的软件源默认使用 `Http 协议`。 + +- `GNU/Linux` 一键更换国内软件源脚本 + + bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/ChangeMirrors.sh) +> __注意:__ +> - _Debian 系 Linux 默认注释了源码仓库和预发布软件源,若需启用可将 list 源文件中相关内容的所在行 `取消注释`。_ +> - _RedHat 系 Linux 配置了所有可以配置的仓库,但有一些仓库默认没有启用,若需启用可将 repo 源文件中的 `enabled=0`修改成 `enabled=1`。_ + +*** + +### 其它脚本 +- `Docker` 一键安装脚本 + + bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/DockerInstallation.sh) + +> `Docker CE`:Docker Community Edition 镜像仓库,用于下载并安装 Docker 相关软件包。\ +> `Docker Hub`:Docker Hub 镜像仓库,默认为官方提供的公共库,用于切换下载镜像时的来源仓库,简称镜像加速器。 + +> _注意:脚本集成安装 `Docker Engine`与 `Docker Compose`,可手动选择安装版本和下载源,还可手动选择镜像加速器,支持国内外服务器环境和 `ARM`架构处理器环境使用。_ + +*** + +### 常见问题与帮助 +- 1. 如果提示 `Command 'curl' not found` 则说明当前未安装 `curl` 软件包,安装命令如下: + + sudo apt install -y curl 或 sudo yum install -y curl + +- 2. 如果提示 `Command 'wget' not found` 则说明当前未安装 `wget` 软件包,安装命令如下: + + sudo apt install -y wget 或 sudo yum install -y wget + +- 3. 如果提示 `bash: /proc/self/fd/11: No such file or directory`,请切换至 `Root` 用户执行。 + +*** + +### 捐助作者 +微信赞赏码
+> 项目已设立开源许可协议,传播时需在显著位置标注来源和作者,请尊重本人的知识成果\ +> 建议通过命令直接调用脚本,如有意见与建议您可以提交至 __Issues__,谢谢 + +*** + +### License +Copyright © 2021, [SuperManito](https://github.com/SuperManito). Released under the [GPL-2.0](https://github.com/SuperManito/LinuxMirrors/blob/main/LICENSE). + +*** + +__如果您觉得这个项目不错的话可以在右上角给颗⭐吗?方便分享给更多的朋友吗?__ diff --git a/icon/centos.svg b/icon/centos.svg new file mode 100644 index 0000000..bea939d --- /dev/null +++ b/icon/centos.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icon/csdn.png b/icon/csdn.png new file mode 100644 index 0000000000000000000000000000000000000000..019df098ae223b0975d00a5758e7b7adf51a899b GIT binary patch literal 5106 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 literal 0 HcmV?d00001 diff --git a/icon/debian.svg b/icon/debian.svg new file mode 100644 index 0000000..88af0b1 --- /dev/null +++ b/icon/debian.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icon/fedora.ico b/icon/fedora.ico new file mode 100644 index 0000000000000000000000000000000000000000..c39d252cd10c68705aa28b940af6ddfeea21878b GIT binary patch literal 4286 zcmcJTUu;uV9LFzNf`k_qO-zVJ_CO2?55@>f5D9D`y)Cq*?bdah-PYaqwv(UVbGv)E_x7B&E7IlH-upY} z{64?m@BGf6Oi@q4Sw+uf9AzRWzpVjmMagYDcYDu)`fA=Sb&+kY@vP{kqo& zIbWs8Yp1DbEKsRba!Fw!N2yEQ&HC_?(+3$pJ9fdv^!iXLnKW_r$7XzpM|wM+wtW!s z6X(7H+qC#*!Jw&|Llir+k78%{Q+Dh;nZ-h-t!U8w!B3m;!FP1>{C;a)i1@k07>_+U z{6m%f^k|T`&)mIS)h@E>)~SSg+`@9;)>rDMn4h!k=ckim+nS#W3$wNR)T>F&H*oc! zQpHD&BEN=ZJC_(2^InC?{zPD}i+D|Lt zmt}mWkN@%|Eo5Sti^^VLvug1(H-2uMFRKfWp6xNI-;Ppxw3jCS=%X;!2+#lGoTZz% zg89LotOwdx#@Bo^wQ?Y9v-!s3)E~|y+*_{57`5~^U$*|zmo#E?q4(^R=R;F(pazfB z;>g-KUl9NO!B2S2urpL<18e03?rQDQc26BR`{k$X{b#1ie(Y@Lqx}QtsB@h28SIW| z|GTZ2gS=DU$a5}!bD3dMeCU9S!PcO?R;+pz#-SGUo*k`3ONy@fyBc9S`y@xYID?&6 znZM3hYh?P)2;Vn~MxLVmAGmzuHZ=9v=;7zAGZ=nsL=I~11$-QjMWshMaNm!t*iF+~ zuhrwMGq!}f+i2fG9!xJP*i*ld^cDLLKlGkEBlkJve9XJQKZk=oOI2a~gg>s}u1 ze{U^(x-K2VdB`;5LxW>7V7%yL zdY`c-HzN;E!Utw^vzI4&M}D4%AAdF&lRVda&eZFOo7bC&>D5I~y|WrV?1K-B&HJI6 zsO!(8eS3uS?PZGIBf;G-z>lv{7qgA~q0WQ*EsJ^bpG8-lix~BE^sua8k644d=~npi z4eBEVUvA^Q3|V5&&<{fngS!>FHAMe5#O+jC2>%;k@(N@FWF6!wNXxRU!Y`8*eL69Q XNeFhB#9%WA+eI*zzygpc)I$FOV}HZr literal 0 HcmV?d00001 diff --git a/icon/gitee.svg b/icon/gitee.svg new file mode 100644 index 0000000..9ed065a --- /dev/null +++ b/icon/gitee.svg @@ -0,0 +1,17 @@ + + + + logo-black + Created with Sketch. + + \ No newline at end of file diff --git a/icon/github-1.svg b/icon/github-1.svg new file mode 100644 index 0000000..18e9450 --- /dev/null +++ b/icon/github-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icon/github-2.svg b/icon/github-2.svg new file mode 100644 index 0000000..d396db9 --- /dev/null +++ b/icon/github-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icon/kali.svg b/icon/kali.svg new file mode 100644 index 0000000..71ce603 --- /dev/null +++ b/icon/kali.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icon/linux.svg b/icon/linux.svg new file mode 100644 index 0000000..bebde8d --- /dev/null +++ b/icon/linux.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icon/redhat.svg b/icon/redhat.svg new file mode 100644 index 0000000..c49accd --- /dev/null +++ b/icon/redhat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icon/thanks.jpg b/icon/thanks.jpg new file mode 100644 index 0000000000000000000000000000000000000000..11629e10c784231b533ffc7bfe46081d282d50d8 GIT binary patch literal 192259 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 H+1vjCQ3NP~ literal 0 HcmV?d00001 diff --git a/icon/ubuntu.svg b/icon/ubuntu.svg new file mode 100644 index 0000000..c7a7ed0 --- /dev/null +++ b/icon/ubuntu.svg @@ -0,0 +1 @@ + \ No newline at end of file