mirror of
https://gitee.com/SuperManito/LinuxMirrors
synced 2025-11-25 02:40:25 +08:00
优化
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
## Author: SuperManito
|
## Author: SuperManito
|
||||||
## Modified: 2022-02-16
|
## Modified: 2022-02-22
|
||||||
## License: GPL-2.0
|
## License: GPL-2.0
|
||||||
## Github: https://github.com/SuperManito/LinuxMirrors
|
## Github: https://github.com/SuperManito/LinuxMirrors
|
||||||
## Gitee: https://gitee.com/SuperManito/LinuxMirrors
|
## Gitee: https://gitee.com/SuperManito/LinuxMirrors
|
||||||
@@ -162,7 +162,7 @@ function PermissionJudgment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
## 关闭 防火墙 和 SELINUX
|
## 关闭 防火墙 和 SELINUX
|
||||||
function TurnOffFirewall() {
|
function CloseFirewall() {
|
||||||
systemctl status firewalld | grep running -q
|
systemctl status firewalld | grep running -q
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
CHOICE_C=$(echo -e "\n${BOLD}└ 是否关闭防火墙和 SELINUX? [Y/n] ${PLAIN}")
|
CHOICE_C=$(echo -e "\n${BOLD}└ 是否关闭防火墙和 SELINUX? [Y/n] ${PLAIN}")
|
||||||
@@ -296,7 +296,6 @@ function ChangeMirrors() {
|
|||||||
DebianMirrors
|
DebianMirrors
|
||||||
elif [ ${SYSTEM_FACTIONS} = ${SYSTEM_REDHAT} ]; then
|
elif [ ${SYSTEM_FACTIONS} = ${SYSTEM_REDHAT} ]; then
|
||||||
RedHatMirrors
|
RedHatMirrors
|
||||||
yum clean all >/dev/null 2>&1
|
|
||||||
fi
|
fi
|
||||||
echo -e "\n${WORKING} 开始${SYNC_TXT}软件源...\n"
|
echo -e "\n${WORKING} 开始${SYNC_TXT}软件源...\n"
|
||||||
case ${SYSTEM_FACTIONS} in
|
case ${SYSTEM_FACTIONS} in
|
||||||
@@ -418,18 +417,28 @@ function RedHatMirrors() {
|
|||||||
## 修改源
|
## 修改源
|
||||||
if [ ${SYSTEM_JUDGMENT} = ${SYSTEM_CENTOS} -o ${SYSTEM_JUDGMENT} = ${SYSTEM_RHEL} ]; then
|
if [ ${SYSTEM_JUDGMENT} = ${SYSTEM_CENTOS} -o ${SYSTEM_JUDGMENT} = ${SYSTEM_RHEL} ]; then
|
||||||
sed -i 's|^mirrorlist=|#mirrorlist=|g' $RedHatReposDir/${SYSTEM_CENTOS}-*
|
sed -i 's|^mirrorlist=|#mirrorlist=|g' $RedHatReposDir/${SYSTEM_CENTOS}-*
|
||||||
|
|
||||||
## CentOS 8 操作系统版本结束了生命周期(EOL),Linux 社区已不再维护该操作系统版本,最终版本为 8.5.2011
|
## CentOS 8 操作系统版本结束了生命周期(EOL),Linux 社区已不再维护该操作系统版本,最终版本为 8.5.2011
|
||||||
## 原 centos 镜像已被官方移动,从 2022-02 开始切换至 centos-vault 源
|
## 原 centos 镜像中的 CentOS 8 相关内容已被官方移动,从 2022-02 开始切换至 centos-vault 源
|
||||||
[ ${CENTOS_VERSION} -eq "8" ] && sed -i 's|^#baseurl=http://mirror.centos.org/$contentdir|baseurl=http://mirror.centos.org/centos-vault|g' $RedHatReposDir/${SYSTEM_CENTOS}-*
|
if [ ${CENTOS_VERSION} -eq "8" ]; then
|
||||||
|
sed -i 's|^#baseurl=http://mirror.centos.org/$contentdir|#baseurl=http://mirror.centos.org/centos-vault|g' $RedHatReposDir/${SYSTEM_CENTOS}-*
|
||||||
|
sed -i "s/\$releasever/8.5.2111/g" ${SYSTEM_CENTOS}-*
|
||||||
|
fi
|
||||||
|
|
||||||
|
## WEB协议
|
||||||
sed -i "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|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}-*
|
sed -i "s|mirror.centos.org|${SOURCE}|g" $RedHatReposDir/${SYSTEM_CENTOS}-*
|
||||||
## 修改版本号
|
|
||||||
|
## Red Hat Enterprise Linux 修改版本号
|
||||||
|
if [ ${SYSTEM_JUDGMENT} = ${SYSTEM_RHEL} ]; then
|
||||||
if [ ${CENTOS_VERSION} -eq "8" ]; then
|
if [ ${CENTOS_VERSION} -eq "8" ]; then
|
||||||
sed -i "s/\$releasever/8.5.2111/g" ${SYSTEM_CENTOS}-*
|
sed -i "s/\$releasever/8.5.2111/g" ${SYSTEM_CENTOS}-*
|
||||||
elif [ ${CENTOS_VERSION} -eq "7" ]; then
|
elif [ ${CENTOS_VERSION} -eq "7" ]; then
|
||||||
sed -i "s/\$releasever/7.9.2009/g" ${SYSTEM_CENTOS}-*
|
sed -i "s/\$releasever/7/g" ${SYSTEM_CENTOS}-*
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
## 安装/更换基于 RHEL/CentOS 的 EPEL 扩展国内源
|
## 安装/更换基于 RHEL/CentOS 的 EPEL 扩展国内源
|
||||||
[ ${EPEL_INSTALL} = "True" ] && EPELMirrors
|
[ ${EPEL_INSTALL} = "True" ] && EPELMirrors
|
||||||
elif [ ${SYSTEM_JUDGMENT} = ${SYSTEM_FEDORA} ]; then
|
elif [ ${SYSTEM_JUDGMENT} = ${SYSTEM_FEDORA} ]; then
|
||||||
@@ -449,6 +458,8 @@ function RedHatMirrors() {
|
|||||||
$RedHatReposDir/${SOURCE_BRANCH}-updates-testing.repo \
|
$RedHatReposDir/${SOURCE_BRANCH}-updates-testing.repo \
|
||||||
$RedHatReposDir/${SOURCE_BRANCH}-updates-testing-modular.repo
|
$RedHatReposDir/${SOURCE_BRANCH}-updates-testing-modular.repo
|
||||||
fi
|
fi
|
||||||
|
## 清理 YUM 缓存
|
||||||
|
yum clean all >/dev/null 2>&1
|
||||||
}
|
}
|
||||||
|
|
||||||
## 安装/更换基于 RHEL/CentOS 的 EPEL (Extra Packages for Enterprise Linux) 扩展国内源
|
## 安装/更换基于 RHEL/CentOS 的 EPEL (Extra Packages for Enterprise Linux) 扩展国内源
|
||||||
@@ -616,7 +627,7 @@ function ChooseMirrors() {
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
## 关闭 防火墙 和 SELINUX
|
## 关闭 防火墙 和 SELINUX
|
||||||
[ ${SYSTEM_FACTIONS} = ${SYSTEM_REDHAT} ] && TurnOffFirewall
|
[ ${SYSTEM_FACTIONS} = ${SYSTEM_REDHAT} ] && CloseFirewall
|
||||||
}
|
}
|
||||||
|
|
||||||
## 生成 CentOS 官方 repo 源文件
|
## 生成 CentOS 官方 repo 源文件
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
## Author: SuperManito
|
## Author: SuperManito
|
||||||
## Modified: 2022-02-16
|
## Modified: 2022-02-22
|
||||||
## License: GPL-2.0
|
## License: GPL-2.0
|
||||||
## Github: https://github.com/SuperManito/LinuxMirrors
|
## Github: https://github.com/SuperManito/LinuxMirrors
|
||||||
## Gitee: https://gitee.com/SuperManito/LinuxMirrors
|
## Gitee: https://gitee.com/SuperManito/LinuxMirrors
|
||||||
@@ -172,7 +172,7 @@ function NetWorkJudgment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
## 关闭防火墙
|
## 关闭防火墙
|
||||||
function TurnOffFirewall() {
|
function CloseFirewall() {
|
||||||
systemctl status firewalld | grep running -q
|
systemctl status firewalld | grep running -q
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
systemctl disable --now firewalld >/dev/null 2>&1
|
systemctl disable --now firewalld >/dev/null 2>&1
|
||||||
@@ -233,23 +233,6 @@ function RemoveOldVersion() {
|
|||||||
esac
|
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 源
|
## 配置 Docker CE 源
|
||||||
function ConfigureDockerCEMirror() {
|
function ConfigureDockerCEMirror() {
|
||||||
if [[ ${DOCKER_VERSION_INSTALL_LATEST} == "True" ]]; then
|
if [[ ${DOCKER_VERSION_INSTALL_LATEST} == "True" ]]; then
|
||||||
@@ -281,66 +264,26 @@ function ConfigureDockerCEMirror() {
|
|||||||
|
|
||||||
## 安装 Docker Engine
|
## 安装 Docker Engine
|
||||||
function DockerEngine() {
|
function DockerEngine() {
|
||||||
|
|
||||||
|
## 导出可安装的版本列表
|
||||||
|
function Export_VersionList() {
|
||||||
case ${SYSTEM_FACTIONS} in
|
case ${SYSTEM_FACTIONS} in
|
||||||
Debian)
|
Debian)
|
||||||
dpkg -l | grep docker-ce-cli -q
|
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)
|
RedHat)
|
||||||
rpm -qa | grep docker-ce-cli -q
|
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
|
esac
|
||||||
if [ $? -eq 0 ]; then
|
rm -rf $DockerCEVersionFile $DockerCECLIVersionFile
|
||||||
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
|
function Install() {
|
||||||
if [[ ${DOCKER_VERSION_INSTALL_LATEST} == "True" ]]; then
|
|
||||||
echo -e "\n${SUCCESS} 检测到已安装最新版本的 Docker Engine,跳过安装"
|
|
||||||
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${BOLD}└ 检测到已安装最新版本的 Docker Engine,是否继续安装其它版本? [Y/n] ${PLAIN}")
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
if [[ ${DOCKER_VERSION_INSTALL_LATEST} == "True" ]]; then
|
|
||||||
CHOICE_E=$(echo -e "\n${BOLD}└ 检测到已安装旧版本的 Docker Engine,是否覆盖安装为最新版本? [Y/n] ${PLAIN}")
|
|
||||||
else
|
|
||||||
CHOICE_E=$(echo -e "\n${BOLD}└ 检测到已安装旧版本的 Docker Engine,是否继续安装其它版本? [Y/n] ${PLAIN}")
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
read -p "${CHOICE_E}" INPUT
|
|
||||||
[ -z ${INPUT} ] && INPUT=Y
|
|
||||||
case $INPUT in
|
|
||||||
[Yy] | [Yy][Ee][Ss])
|
|
||||||
echo -en "\n${WORKING} 正在卸载之前的版本..."
|
|
||||||
RemoveOldVersion
|
|
||||||
echo -e "\n\n${SUCCESS} 卸载完毕\n"
|
|
||||||
DockerEngineInstall
|
|
||||||
;;
|
|
||||||
[Nn] | [Nn][Oo]) ;;
|
|
||||||
*)
|
|
||||||
echo -e "\n${WARN} 输入错误,默认不覆盖安装!\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
|
if [[ ${DOCKER_VERSION_INSTALL_LATEST} == "True" ]]; then
|
||||||
case ${SYSTEM_FACTIONS} in
|
case ${SYSTEM_FACTIONS} in
|
||||||
Debian)
|
Debian)
|
||||||
@@ -351,7 +294,7 @@ function DockerEngineInstall() {
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
DockerEngineVersionList
|
Export_VersionList
|
||||||
echo -e "\n${GREEN} --------- 请选择你要安装的版本,如:19.03.15 ---------- ${PLAIN}\n"
|
echo -e "\n${GREEN} --------- 请选择你要安装的版本,如:19.03.15 ---------- ${PLAIN}\n"
|
||||||
cat $DockerVersionFile
|
cat $DockerVersionFile
|
||||||
echo -e '\n注:以上可供选择的安装版本由官方源提供,若系统过新可能无法安装较旧的版本'
|
echo -e '\n注:以上可供选择的安装版本由官方源提供,若系统过新可能无法安装较旧的版本'
|
||||||
@@ -398,10 +341,10 @@ function DockerEngineInstall() {
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
## 修改 Docker Hub 源
|
## 修改 Docker Hub 源
|
||||||
function ConfigureImageAccelerator() {
|
function ConfigureMirror() {
|
||||||
if [[ ${REGISTRY_SOURCE_OFFICIAL} == "False" ]]; then
|
if [[ ${REGISTRY_SOURCE_OFFICIAL} == "False" ]]; then
|
||||||
if [ -d $DockerDir ] && [ -e $DockerConfig ]; then
|
if [ -d $DockerDir ] && [ -e $DockerConfig ]; then
|
||||||
if [ -e $DockerConfigBackup ]; then
|
if [ -e $DockerConfigBackup ]; then
|
||||||
@@ -430,6 +373,67 @@ function ConfigureImageAccelerator() {
|
|||||||
sed -i "s/SOURCE/$REGISTRY_SOURCE/g" $DockerConfig
|
sed -i "s/SOURCE/$REGISTRY_SOURCE/g" $DockerConfig
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## 判定是否已安装
|
||||||
|
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
|
||||||
|
Export_VersionList
|
||||||
|
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${SUCCESS} 检测到已安装最新版本的 Docker Engine,跳过安装"
|
||||||
|
ConfigureMirror
|
||||||
|
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${BOLD}└ 检测到已安装最新版本的 Docker Engine,是否继续安装其它版本? [Y/n] ${PLAIN}")
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [[ ${DOCKER_VERSION_INSTALL_LATEST} == "True" ]]; then
|
||||||
|
CHOICE_E=$(echo -e "\n${BOLD}└ 检测到已安装旧版本的 Docker Engine,是否覆盖安装为最新版本? [Y/n] ${PLAIN}")
|
||||||
|
else
|
||||||
|
CHOICE_E=$(echo -e "\n${BOLD}└ 检测到已安装旧版本的 Docker Engine,是否继续安装其它版本? [Y/n] ${PLAIN}")
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
read -p "${CHOICE_E}" INPUT
|
||||||
|
[ -z ${INPUT} ] && INPUT=Y
|
||||||
|
case $INPUT in
|
||||||
|
[Yy] | [Yy][Ee][Ss])
|
||||||
|
echo -en "\n${WORKING} 正在卸载之前的版本..."
|
||||||
|
RemoveOldVersion
|
||||||
|
echo -e "\n\n${SUCCESS} 卸载完毕\n"
|
||||||
|
Install
|
||||||
|
;;
|
||||||
|
[Nn] | [Nn][Oo]) ;;
|
||||||
|
*)
|
||||||
|
echo -e "\n${WARN} 输入错误,默认不覆盖安装!\n"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
rm -rf $DockerVersionFile
|
||||||
|
else
|
||||||
|
RemoveOldVersion
|
||||||
|
Install
|
||||||
|
fi
|
||||||
|
ConfigureMirror
|
||||||
|
systemctl stop docker >/dev/null 2>&1
|
||||||
|
systemctl enable --now docker >/dev/null 2>&1
|
||||||
}
|
}
|
||||||
|
|
||||||
## 安装 Docker Compose
|
## 安装 Docker Compose
|
||||||
@@ -698,7 +702,7 @@ function ChooseMirrors() {
|
|||||||
esac
|
esac
|
||||||
echo -e ''
|
echo -e ''
|
||||||
|
|
||||||
[ ${SYSTEM_FACTIONS} == ${SYSTEM_REDHAT} ] && TurnOffFirewall
|
[ ${SYSTEM_FACTIONS} == ${SYSTEM_REDHAT} ] && CloseFirewall
|
||||||
}
|
}
|
||||||
|
|
||||||
Combin_Function
|
Combin_Function
|
||||||
|
|||||||
Reference in New Issue
Block a user