mirror of
https://gitee.com/SuperManito/LinuxMirrors
synced 2025-11-28 04:10:26 +08:00
优化
This commit is contained in:
193
ChangeMirrors.sh
193
ChangeMirrors.sh
@@ -236,13 +236,6 @@ ERROR=" \033[1;31m✘${PLAIN}"
|
|||||||
FAIL="\033[1;31m✘${PLAIN}"
|
FAIL="\033[1;31m✘${PLAIN}"
|
||||||
TIP="\033[1;44m 提示 ${PLAIN}"
|
TIP="\033[1;44m 提示 ${PLAIN}"
|
||||||
WORKING="\033[1;36m>_${PLAIN}"
|
WORKING="\033[1;36m>_${PLAIN}"
|
||||||
# SUCCESS="[\033[1;32m成功${PLAIN}]"
|
|
||||||
# COMPLETE="[\033[1;32m完成${PLAIN}]"
|
|
||||||
# WARN="[\033[1;5;33m注意${PLAIN}]"
|
|
||||||
# ERROR="[\033[1;31m错误${PLAIN}]"
|
|
||||||
# FAIL="[\033[1;31m失败${PLAIN}]"
|
|
||||||
# TIP="[\033[1;32m提示${PLAIN}]"
|
|
||||||
# WORKING="[\033[1;36m >_ ${PLAIN}]"
|
|
||||||
|
|
||||||
function main() {
|
function main() {
|
||||||
permission_judgment
|
permission_judgment
|
||||||
@@ -252,7 +245,6 @@ function main() {
|
|||||||
choose_mirrors
|
choose_mirrors
|
||||||
choose_protocol
|
choose_protocol
|
||||||
choose_install_epel_packages
|
choose_install_epel_packages
|
||||||
close_firewall_service
|
|
||||||
backup_original_mirrors
|
backup_original_mirrors
|
||||||
remove_original_mirrors
|
remove_original_mirrors
|
||||||
change_mirrors_main
|
change_mirrors_main
|
||||||
@@ -285,7 +277,6 @@ function handle_command_options() {
|
|||||||
--use-intranet-source 是否优先使用内网软件源地址 true 或 false
|
--use-intranet-source 是否优先使用内网软件源地址 true 或 false
|
||||||
--use-official-source 是否使用目标操作系统的官方软件源 true 或 false
|
--use-official-source 是否使用目标操作系统的官方软件源 true 或 false
|
||||||
--install-epel 是否安装 EPEL 附加软件包 true 或 false
|
--install-epel 是否安装 EPEL 附加软件包 true 或 false
|
||||||
--close-firewall 是否关闭防火墙 true 或 false
|
|
||||||
--backup 是否备份原有软件源 true 或 false
|
--backup 是否备份原有软件源 true 或 false
|
||||||
--upgrade-software 是否更新软件包 true 或 false
|
--upgrade-software 是否更新软件包 true 或 false
|
||||||
--clean-cache 是否清理下载缓存 true 或 false
|
--clean-cache 是否清理下载缓存 true 或 false
|
||||||
@@ -513,22 +504,6 @@ function handle_command_options() {
|
|||||||
ONLY_EPEL="true"
|
ONLY_EPEL="true"
|
||||||
INSTALL_EPEL="true"
|
INSTALL_EPEL="true"
|
||||||
;;
|
;;
|
||||||
## 关闭防火墙
|
|
||||||
--close-firewall)
|
|
||||||
if [ "$2" ]; then
|
|
||||||
case "$2" in
|
|
||||||
[Tt]rue | [Ff]alse)
|
|
||||||
CLOSE_FIREWALL="${2,,}"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
output_error "命令选项 ${BLUE}$2${PLAIN} 无效,请在该选项后指定 true 或 false !"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
else
|
|
||||||
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定 true 或 false !"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
## 备份原有软件源
|
## 备份原有软件源
|
||||||
--backup)
|
--backup)
|
||||||
if [ "$2" ]; then
|
if [ "$2" ]; then
|
||||||
@@ -1136,12 +1111,6 @@ function choose_install_epel_packages() {
|
|||||||
## 判断是否已安装 EPEL 软件包
|
## 判断是否已安装 EPEL 软件包
|
||||||
rpm -qa | grep epel-release -q
|
rpm -qa | grep epel-release -q
|
||||||
VERIFICATION_EPEL=$?
|
VERIFICATION_EPEL=$?
|
||||||
## 判断 /etc/yum.repos.d 目录下是否存在 epel 附加软件包 repo 源文件
|
|
||||||
[ -d $Dir_YumRepos ] && ls $Dir_YumRepos | grep epel -q
|
|
||||||
VERIFICATION_EPELFILES=$?
|
|
||||||
## 判断 /etc/yum.repos.d.bak 目录下是否存在 epel 附加软件包 repo 源文件
|
|
||||||
[ -d $Dir_YumReposBackup ] && ls $Dir_YumReposBackup | grep epel -q
|
|
||||||
VERIFICATION_EPELBACKUPFILES=$?
|
|
||||||
}
|
}
|
||||||
|
|
||||||
## 判断是否支持且需要处理 EPEL 附加软件包
|
## 判断是否支持且需要处理 EPEL 附加软件包
|
||||||
@@ -1197,42 +1166,6 @@ function choose_install_epel_packages() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
## 关闭防火墙和SELinux
|
|
||||||
function close_firewall_service() {
|
|
||||||
if [ ! -x /usr/bin/systemctl ]; then
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
if [[ "$(systemctl is-active firewalld)" == "active" ]]; then
|
|
||||||
if [[ -z "${CLOSE_FIREWALL}" ]]; then
|
|
||||||
if [[ "${CAN_USE_ADVANCED_INTERACTIVE_SELECTION}" == "true" ]]; then
|
|
||||||
echo ''
|
|
||||||
interactive_select_boolean "${BOLD}是否关闭防火墙和 SELinux ?${PLAIN}"
|
|
||||||
if [[ "${_SELECT_RESULT}" == "true" ]]; then
|
|
||||||
CLOSE_FIREWALL="true"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
local CHOICE=$(echo -e "\n${BOLD}└─ 是否关闭防火墙和 SELinux ? [Y/n] ${PLAIN}")
|
|
||||||
read -rp "${CHOICE}" INPUT
|
|
||||||
[[ -z "${INPUT}" ]] && INPUT=Y
|
|
||||||
case "${INPUT}" in
|
|
||||||
[Yy] | [Yy][Ee][Ss])
|
|
||||||
CLOSE_FIREWALL="true"
|
|
||||||
;;
|
|
||||||
[Nn] | [Nn][Oo]) ;;
|
|
||||||
*)
|
|
||||||
echo -e "\n$WARN 输入错误,默认不关闭!"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if [[ "${CLOSE_FIREWALL}" == "true" ]]; then
|
|
||||||
local SelinuxConfig=/etc/selinux/config
|
|
||||||
systemctl disable --now firewalld >/dev/null 2>&1
|
|
||||||
[ -s $SelinuxConfig ] && sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" $SelinuxConfig && setenforce 0 >/dev/null 2>&1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
## 备份原有软件源(文件/目录)
|
## 备份原有软件源(文件/目录)
|
||||||
function backup_original_mirrors() {
|
function backup_original_mirrors() {
|
||||||
function backup_file() {
|
function backup_file() {
|
||||||
@@ -1252,14 +1185,14 @@ function backup_original_mirrors() {
|
|||||||
fi
|
fi
|
||||||
if [[ "${CAN_USE_ADVANCED_INTERACTIVE_SELECTION}" == "true" ]]; then
|
if [[ "${CAN_USE_ADVANCED_INTERACTIVE_SELECTION}" == "true" ]]; then
|
||||||
echo ''
|
echo ''
|
||||||
interactive_select_boolean "${BOLD}检测到系统中存在已备份的 ${type} 源文件,是否跳过覆盖备份?${PLAIN}"
|
interactive_select_boolean "${BOLD}检测到系统存在已备份的 ${type} 源文件,是否跳过覆盖备份?${PLAIN}"
|
||||||
if [[ "${_SELECT_RESULT}" == "false" ]]; then
|
if [[ "${_SELECT_RESULT}" == "false" ]]; then
|
||||||
echo ''
|
echo ''
|
||||||
cp -rvf "${target_file}" "${backup_file}" 2>&1
|
cp -rvf "${target_file}" "${backup_file}" 2>&1
|
||||||
BACKED_UP="true"
|
BACKED_UP="true"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
local CHOICE_BACKUP=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 ${type} 源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
local CHOICE_BACKUP=$(echo -e "\n${BOLD}└─ 检测到系统存在已备份的 ${type} 源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
||||||
read -rp "${CHOICE_BACKUP}" INPUT
|
read -rp "${CHOICE_BACKUP}" INPUT
|
||||||
[[ -z "${INPUT}" ]] && INPUT=Y
|
[[ -z "${INPUT}" ]] && INPUT=Y
|
||||||
case "${INPUT}" in
|
case "${INPUT}" in
|
||||||
@@ -1300,14 +1233,14 @@ function backup_original_mirrors() {
|
|||||||
fi
|
fi
|
||||||
if [[ "${CAN_USE_ADVANCED_INTERACTIVE_SELECTION}" == "true" ]]; then
|
if [[ "${CAN_USE_ADVANCED_INTERACTIVE_SELECTION}" == "true" ]]; then
|
||||||
echo ''
|
echo ''
|
||||||
interactive_select_boolean "${BOLD}检测到系统中存在已备份的 repo 源文件,是否跳过覆盖备份?${PLAIN}"
|
interactive_select_boolean "${BOLD}检测到系统存在已备份的 repo 源文件,是否跳过覆盖备份?${PLAIN}"
|
||||||
if [[ "${_SELECT_RESULT}" == "false" ]]; then
|
if [[ "${_SELECT_RESULT}" == "false" ]]; then
|
||||||
echo ''
|
echo ''
|
||||||
cp -rvf $target_dir/* "${backup_dir}" 2>&1
|
cp -rvf $target_dir/* "${backup_dir}" 2>&1
|
||||||
BACKED_UP="true"
|
BACKED_UP="true"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
local CHOICE_BACKUP=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 repo 源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
local CHOICE_BACKUP=$(echo -e "\n${BOLD}└─ 检测到系统存在已备份的 repo 源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
|
||||||
read -rp "${CHOICE_BACKUP}" INPUT
|
read -rp "${CHOICE_BACKUP}" INPUT
|
||||||
[[ -z "${INPUT}" ]] && INPUT=Y
|
[[ -z "${INPUT}" ]] && INPUT=Y
|
||||||
case "${INPUT}" in
|
case "${INPUT}" in
|
||||||
@@ -1662,66 +1595,12 @@ function change_mirrors_main() {
|
|||||||
|
|
||||||
## 升级软件包
|
## 升级软件包
|
||||||
function upgrade_software() {
|
function upgrade_software() {
|
||||||
function clean_cache() {
|
|
||||||
## 交互确认
|
|
||||||
if [[ -z "${CLEAN_CACHE}" ]]; then
|
|
||||||
CLEAN_CACHE="false"
|
|
||||||
if [[ "${CAN_USE_ADVANCED_INTERACTIVE_SELECTION}" == "true" ]]; then
|
|
||||||
echo ''
|
|
||||||
interactive_select_boolean "${BOLD}是否清理已下载的软件包缓存?${PLAIN}"
|
|
||||||
if [[ "${_SELECT_RESULT}" == "true" ]]; then
|
|
||||||
CLEAN_CACHE="true"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
local CHOICE=$(echo -e "\n${BOLD}└─ 是否清理已下载的软件包缓存? [Y/n] ${PLAIN}")
|
|
||||||
read -rp "${CHOICE}" INPUT
|
|
||||||
[[ -z "${INPUT}" ]] && INPUT=Y
|
|
||||||
case "${INPUT}" in
|
|
||||||
[Yy] | [Yy][Ee][Ss])
|
|
||||||
CLEAN_CACHE="true"
|
|
||||||
;;
|
|
||||||
[Nn] | [Nn][Oo]) ;;
|
|
||||||
*)
|
|
||||||
echo -e "\n$WARN 输入错误,默认不清理!"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if [[ "${CLEAN_CACHE}" == "false" ]]; then
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
## 调用系统命令
|
|
||||||
case "${SYSTEM_FACTIONS}" in
|
|
||||||
"${SYSTEM_DEBIAN}" | "${SYSTEM_OPENKYLIN}")
|
|
||||||
apt-get autoremove -y >/dev/null 2>&1
|
|
||||||
apt-get clean >/dev/null 2>&1
|
|
||||||
;;
|
|
||||||
"${SYSTEM_REDHAT}" | "${SYSTEM_OPENEULER}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_ANOLISOS}")
|
|
||||||
local package_manager="$(get_package_manager)"
|
|
||||||
$package_manager autoremove -y >/dev/null 2>&1
|
|
||||||
$package_manager clean packages -y >/dev/null 2>&1
|
|
||||||
;;
|
|
||||||
"${SYSTEM_OPENSUSE}")
|
|
||||||
rm -rf /var/cache/zypp/* >/dev/null 2>&1
|
|
||||||
;;
|
|
||||||
"${SYSTEM_ALPINE}")
|
|
||||||
rm -rf /var/cache/apk/* >/dev/null 2>&1
|
|
||||||
;;
|
|
||||||
"${SYSTEM_GENTOO}")
|
|
||||||
eclean-dist --deep >/dev/null 2>&1
|
|
||||||
eclean-packages --deep >/dev/null 2>&1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
echo -e "\n$COMPLETE 清理完毕"
|
|
||||||
}
|
|
||||||
|
|
||||||
## 跳过特殊系统
|
## 跳过特殊系统
|
||||||
case "${SYSTEM_JUDGMENT}" in
|
case "${SYSTEM_JUDGMENT}" in
|
||||||
"${SYSTEM_ARCH}")
|
"${SYSTEM_ARCH}")
|
||||||
return
|
return
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
## 交互确认
|
## 交互确认
|
||||||
if [[ -z "${UPGRADE_SOFTWARE}" ]]; then
|
if [[ -z "${UPGRADE_SOFTWARE}" ]]; then
|
||||||
UPGRADE_SOFTWARE="false"
|
UPGRADE_SOFTWARE="false"
|
||||||
@@ -1749,8 +1628,31 @@ function upgrade_software() {
|
|||||||
if [[ "${UPGRADE_SOFTWARE}" == "false" ]]; then
|
if [[ "${UPGRADE_SOFTWARE}" == "false" ]]; then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
if [[ -z "${CLEAN_CACHE}" ]]; then
|
||||||
|
CLEAN_CACHE="false"
|
||||||
|
if [[ "${CAN_USE_ADVANCED_INTERACTIVE_SELECTION}" == "true" ]]; then
|
||||||
|
echo ''
|
||||||
|
interactive_select_boolean "${BOLD}在更新软件包后,是否自动清理下载缓存?${PLAIN}"
|
||||||
|
if [[ "${_SELECT_RESULT}" == "true" ]]; then
|
||||||
|
CLEAN_CACHE="true"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
local CHOICE=$(echo -e "\n${BOLD}└─ 在更新软件包后,是否自动清理下载缓存? [Y/n] ${PLAIN}")
|
||||||
|
read -rp "${CHOICE}" INPUT
|
||||||
|
[[ -z "${INPUT}" ]] && INPUT=Y
|
||||||
|
case "${INPUT}" in
|
||||||
|
[Yy] | [Yy][Ee][Ss])
|
||||||
|
CLEAN_CACHE="true"
|
||||||
|
;;
|
||||||
|
[Nn] | [Nn][Oo]) ;;
|
||||||
|
*)
|
||||||
|
echo -e "\n$WARN 输入错误,默认不清理!"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
echo -e ''
|
echo -e ''
|
||||||
## 调用系统命令
|
|
||||||
case "${SYSTEM_FACTIONS}" in
|
case "${SYSTEM_FACTIONS}" in
|
||||||
"${SYSTEM_DEBIAN}" | "${SYSTEM_OPENKYLIN}")
|
"${SYSTEM_DEBIAN}" | "${SYSTEM_OPENKYLIN}")
|
||||||
apt-get upgrade -y
|
apt-get upgrade -y
|
||||||
@@ -1769,8 +1671,31 @@ function upgrade_software() {
|
|||||||
emerge --update --deep --with-bdeps=y --ask=n @world
|
emerge --update --deep --with-bdeps=y --ask=n @world
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
## 清理缓存
|
if [[ "${CLEAN_CACHE}" == "false" ]]; then
|
||||||
clean_cache
|
return
|
||||||
|
fi
|
||||||
|
case "${SYSTEM_FACTIONS}" in
|
||||||
|
"${SYSTEM_DEBIAN}" | "${SYSTEM_OPENKYLIN}")
|
||||||
|
apt-get autoremove -y >/dev/null 2>&1
|
||||||
|
apt-get clean >/dev/null 2>&1
|
||||||
|
;;
|
||||||
|
"${SYSTEM_REDHAT}" | "${SYSTEM_OPENEULER}" | "${SYSTEM_OPENCLOUDOS}" | "${SYSTEM_ANOLISOS}")
|
||||||
|
local package_manager="$(get_package_manager)"
|
||||||
|
$package_manager autoremove -y >/dev/null 2>&1
|
||||||
|
$package_manager clean packages -y >/dev/null 2>&1
|
||||||
|
;;
|
||||||
|
"${SYSTEM_OPENSUSE}")
|
||||||
|
rm -rf /var/cache/zypp/* >/dev/null 2>&1
|
||||||
|
;;
|
||||||
|
"${SYSTEM_ALPINE}")
|
||||||
|
rm -rf /var/cache/apk/* >/dev/null 2>&1
|
||||||
|
;;
|
||||||
|
"${SYSTEM_GENTOO}")
|
||||||
|
eclean-dist --deep >/dev/null 2>&1
|
||||||
|
eclean-packages --deep >/dev/null 2>&1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
echo -e "\n$COMPLETE 清理完毕"
|
||||||
}
|
}
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
@@ -2389,15 +2314,21 @@ function change_mirrors_or_install_EPEL() {
|
|||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
## 安装 EPEL 软件包
|
## 安装 EPEL 软件包
|
||||||
if [ "${VERIFICATION_EPEL}" -ne 0 ]; then
|
if [ $VERIFICATION_EPEL -ne 0 ]; then
|
||||||
echo -e "\n${WORKING} 安装 epel-release 软件包...\n"
|
echo -e "\n${WORKING} 安装 epel-release 软件包...\n"
|
||||||
local package_manager="$(get_package_manager)"
|
local package_manager="$(get_package_manager)"
|
||||||
$package_manager install -y https://mirrors.cloud.tencent.com/epel/epel-release-latest-${target_version}.noarch.rpm
|
$package_manager install -y https://mirrors.cloud.tencent.com/epel/epel-release-latest-${target_version}.noarch.rpm
|
||||||
rm -rf $Dir_YumRepos/epel*
|
rm -rf $Dir_YumRepos/epel*
|
||||||
fi
|
fi
|
||||||
## 删除原有 repo 源文件
|
## 删除原有 repo 源文件
|
||||||
[ "${VERIFICATION_EPELFILES}" -eq 0 ] && rm -rf $Dir_YumRepos/epel*
|
if [ -d $Dir_YumRepos ]; then
|
||||||
[ "${VERIFICATION_EPELBACKUPFILES}" -eq 0 ] && rm -rf $Dir_YumReposBackup/epel*
|
ls $Dir_YumRepos | grep epel -q
|
||||||
|
[ $? -eq 0 ] && rm -rf $Dir_YumRepos/epel*
|
||||||
|
fi
|
||||||
|
if [ -d $Dir_YumReposBackup ]; then
|
||||||
|
ls $Dir_YumReposBackup | grep epel -q
|
||||||
|
[ $? -eq 0 ] && rm -rf $Dir_YumReposBackup/epel*
|
||||||
|
fi
|
||||||
## 生成 repo 源文件
|
## 生成 repo 源文件
|
||||||
gen_repo_files_EPEL "${SYSTEM_VERSION_NUMBER_MAJOR}"
|
gen_repo_files_EPEL "${SYSTEM_VERSION_NUMBER_MAJOR}"
|
||||||
if [[ "${USE_OFFICIAL_SOURCE}" == "true" ]]; then
|
if [[ "${USE_OFFICIAL_SOURCE}" == "true" ]]; then
|
||||||
|
|||||||
@@ -119,13 +119,6 @@ ERROR=" \033[1;31m✘${PLAIN}"
|
|||||||
FAIL="\033[1;31m✘${PLAIN}"
|
FAIL="\033[1;31m✘${PLAIN}"
|
||||||
TIP="\033[1;44m 提示 ${PLAIN}"
|
TIP="\033[1;44m 提示 ${PLAIN}"
|
||||||
WORKING="\033[1;36m>_${PLAIN}"
|
WORKING="\033[1;36m>_${PLAIN}"
|
||||||
# SUCCESS="[\033[1;32m成功${PLAIN}]"
|
|
||||||
# COMPLETE="[\033[1;32m完成${PLAIN}]"
|
|
||||||
# WARN="[\033[1;5;33m注意${PLAIN}]"
|
|
||||||
# ERROR="[\033[1;31m错误${PLAIN}]"
|
|
||||||
# FAIL="[\033[1;31m失败${PLAIN}]"
|
|
||||||
# TIP="[\033[1;32m提示${PLAIN}]"
|
|
||||||
# WORKING="[\033[1;36m >_ ${PLAIN}]"
|
|
||||||
|
|
||||||
function main() {
|
function main() {
|
||||||
permission_judgment
|
permission_judgment
|
||||||
@@ -151,6 +144,7 @@ function handle_command_options() {
|
|||||||
--source-registry 指定 Docker Registry 源地址 地址
|
--source-registry 指定 Docker Registry 源地址 地址
|
||||||
--codename 指定 Debian 系操作系统的版本代号 代号名称
|
--codename 指定 Debian 系操作系统的版本代号 代号名称
|
||||||
--install-latest 是否安装最新版本的 Docker Engine true 或 false
|
--install-latest 是否安装最新版本的 Docker Engine true 或 false
|
||||||
|
--close-firewall 是否关闭防火墙 true 或 false
|
||||||
--clean-screen 是否在运行前清除屏幕上的所有内容 true 或 false
|
--clean-screen 是否在运行前清除屏幕上的所有内容 true 或 false
|
||||||
--ignore-backup-tips 忽略覆盖备份提示 无
|
--ignore-backup-tips 忽略覆盖备份提示 无
|
||||||
|
|
||||||
@@ -218,6 +212,22 @@ function handle_command_options() {
|
|||||||
--ignore-backup-tips)
|
--ignore-backup-tips)
|
||||||
IGNORE_BACKUP_TIPS="true"
|
IGNORE_BACKUP_TIPS="true"
|
||||||
;;
|
;;
|
||||||
|
## 关闭防火墙
|
||||||
|
--close-firewall)
|
||||||
|
if [ "$2" ]; then
|
||||||
|
case "$2" in
|
||||||
|
[Tt]rue | [Ff]alse)
|
||||||
|
CLOSE_FIREWALL="${2,,}"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
output_error "命令选项 ${BLUE}$2${PLAIN} 无效,请在该选项后指定 true 或 false !"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
output_error "命令选项 ${BLUE}$1${PLAIN} 无效,请在该选项后指定 true 或 false !"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
## 清除屏幕上的所有内容
|
## 清除屏幕上的所有内容
|
||||||
--clean-screen)
|
--clean-screen)
|
||||||
if [ "$2" ]; then
|
if [ "$2" ]; then
|
||||||
@@ -597,12 +607,12 @@ function close_firewall_service() {
|
|||||||
if [[ -z "${CLOSE_FIREWALL}" ]]; then
|
if [[ -z "${CLOSE_FIREWALL}" ]]; then
|
||||||
if [[ "${CAN_USE_ADVANCED_INTERACTIVE_SELECTION}" == "true" ]]; then
|
if [[ "${CAN_USE_ADVANCED_INTERACTIVE_SELECTION}" == "true" ]]; then
|
||||||
echo ''
|
echo ''
|
||||||
interactive_select_boolean "${BOLD}是否关闭防火墙和 SELinux ?${PLAIN}"
|
interactive_select_boolean "${BOLD}是否关闭系统防火墙和 SELinux ?${PLAIN}"
|
||||||
if [[ "${_SELECT_RESULT}" == "true" ]]; then
|
if [[ "${_SELECT_RESULT}" == "true" ]]; then
|
||||||
CLOSE_FIREWALL="true"
|
CLOSE_FIREWALL="true"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
local CHOICE=$(echo -e "\n${BOLD}└─ 是否关闭防火墙和 SELinux ? [Y/n] ${PLAIN}")
|
local CHOICE=$(echo -e "\n${BOLD}└─ 是否关闭系统防火墙和 SELinux ? [Y/n] ${PLAIN}")
|
||||||
read -rp "${CHOICE}" INPUT
|
read -rp "${CHOICE}" INPUT
|
||||||
[[ -z "${INPUT}" ]] && INPUT=Y
|
[[ -z "${INPUT}" ]] && INPUT=Y
|
||||||
case "${INPUT}" in
|
case "${INPUT}" in
|
||||||
|
|||||||
@@ -80,6 +80,7 @@ hide:
|
|||||||
| `--source-registry` | 指定镜像仓库地址(域名或IP) | 地址 |
|
| `--source-registry` | 指定镜像仓库地址(域名或IP) | 地址 |
|
||||||
| `--codename` | 指定 Debian 系操作系统的版本代号 | 代号名称 |
|
| `--codename` | 指定 Debian 系操作系统的版本代号 | 代号名称 |
|
||||||
| `--install-latest` | 是否安装最新版本的 Docker Engine | `true` 或 `false` |
|
| `--install-latest` | 是否安装最新版本的 Docker Engine | `true` 或 `false` |
|
||||||
|
| `--close-firewall` | 是否关闭防火墙 | `true` 或 `false` |
|
||||||
| `--clean-screen` | 是否在运行前清除屏幕上的所有内容 | `true` 或 `false` |
|
| `--clean-screen` | 是否在运行前清除屏幕上的所有内容 | `true` 或 `false` |
|
||||||
| `--ignore-backup-tips` | 忽略覆盖备份提示(即不覆盖备份) | 无 |
|
| `--ignore-backup-tips` | 忽略覆盖备份提示(即不覆盖备份) | 无 |
|
||||||
|
|
||||||
|
|||||||
@@ -118,9 +118,11 @@ hide:
|
|||||||
|
|
||||||
!!! quote ""
|
!!! quote ""
|
||||||
|
|
||||||
|
此报错是因为系统没有预装 `curl` 软件包,下面是安装命令
|
||||||
|
|
||||||
=== "Debian 系 / openKylin"
|
=== "Debian 系 / openKylin"
|
||||||
|
|
||||||
``` sh
|
``` bash
|
||||||
apt-get install -y curl
|
apt-get install -y curl
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -130,7 +132,7 @@ hide:
|
|||||||
|
|
||||||
=== "RedHat 系 / OpenCloudOS / openEuler / Anolis OS"
|
=== "RedHat 系 / OpenCloudOS / openEuler / Anolis OS"
|
||||||
|
|
||||||
``` sh
|
``` bash
|
||||||
dnf install -y curl || yum install -y curl
|
dnf install -y curl || yum install -y curl
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -138,28 +140,48 @@ hide:
|
|||||||
|
|
||||||
=== "openSUSE"
|
=== "openSUSE"
|
||||||
|
|
||||||
``` sh
|
``` bash
|
||||||
zypper install curl
|
zypper install curl
|
||||||
```
|
```
|
||||||
|
|
||||||
=== "Arch Linux"
|
=== "Arch Linux"
|
||||||
|
|
||||||
``` sh
|
``` bash
|
||||||
pacman -S curl
|
pacman -S curl
|
||||||
```
|
```
|
||||||
|
|
||||||
=== "Alpine Linux"
|
=== "Alpine Linux"
|
||||||
|
|
||||||
``` sh
|
``` bash
|
||||||
apk --no-cache add -f curl bash
|
apk --no-cache add -f curl bash
|
||||||
```
|
```
|
||||||
|
|
||||||
=== "Gentoo"
|
=== "Gentoo"
|
||||||
|
|
||||||
``` sh
|
``` bash
|
||||||
emerge --ask curl
|
emerge --ask curl
|
||||||
```
|
```
|
||||||
|
|
||||||
|
??? tip "安装不上?(点击展开查看其它解决方法)"
|
||||||
|
|
||||||
|
假如有这么一种情况:系统原有软件源是坏的安装不上 `curl` 软件包,那么对于 Linux 初学者来说可能会比较麻烦,这里提供两个在线获取脚本的应急方法,否则就只能手动复制粘贴源代码了
|
||||||
|
|
||||||
|
=== "使用 Python 下载脚本"
|
||||||
|
|
||||||
|
适用于大部分操作系统(`Alpine Linux` 除外),`python3` 要是不存在那就再试试 `python` 指令
|
||||||
|
``` bash
|
||||||
|
python3 -c "import urllib.request; urllib.request.urlretrieve('https://linuxmirrors.cn/main.sh', 'linuxmirrors-main.sh')"
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "使用 wget 下载脚本"
|
||||||
|
|
||||||
|
一般没有预装 `curl` 软件包的系统也不会预装 `wget` 软件包,所以大概率这个方法应该是不行的
|
||||||
|
``` bash
|
||||||
|
wget -O linuxmirrors-main.sh https://linuxmirrors.cn/main.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
之后再执行 `bash linuxmirrors-main.sh` 即可
|
||||||
|
|
||||||
- #### 关于开启 SSH 远程登录的方法
|
- #### 关于开启 SSH 远程登录的方法
|
||||||
|
|
||||||
!!! quote ""
|
!!! quote ""
|
||||||
@@ -197,7 +219,7 @@ hide:
|
|||||||
|
|
||||||
=== "Debian 系 / openKylin"
|
=== "Debian 系 / openKylin"
|
||||||
|
|
||||||
``` sh
|
``` bash
|
||||||
cp -rf /etc/apt/sources.list.bak /etc/apt/sources.list
|
cp -rf /etc/apt/sources.list.bak /etc/apt/sources.list
|
||||||
apt-get update
|
apt-get update
|
||||||
```
|
```
|
||||||
@@ -206,7 +228,7 @@ hide:
|
|||||||
|
|
||||||
=== "RedHat 系 / OpenCloudOS / openEuler / Anolis OS"
|
=== "RedHat 系 / OpenCloudOS / openEuler / Anolis OS"
|
||||||
|
|
||||||
``` sh
|
``` bash
|
||||||
cp -rf /etc/yum.repos.d.bak /etc/yum.repos.d
|
cp -rf /etc/yum.repos.d.bak /etc/yum.repos.d
|
||||||
yum makecache
|
yum makecache
|
||||||
```
|
```
|
||||||
@@ -215,28 +237,28 @@ hide:
|
|||||||
|
|
||||||
=== "openSUSE"
|
=== "openSUSE"
|
||||||
|
|
||||||
``` sh
|
``` bash
|
||||||
cp -rf /etc/zypp/repos.d.bak /etc/zypp/repos.d
|
cp -rf /etc/zypp/repos.d.bak /etc/zypp/repos.d
|
||||||
zypper ref
|
zypper ref
|
||||||
```
|
```
|
||||||
|
|
||||||
=== "Arch Linux"
|
=== "Arch Linux"
|
||||||
|
|
||||||
``` sh
|
``` bash
|
||||||
cp -rf /etc/pacman.d/mirrorlist.bak /etc/pacman.d/mirrorlist
|
cp -rf /etc/pacman.d/mirrorlist.bak /etc/pacman.d/mirrorlist
|
||||||
pacman -Sy
|
pacman -Sy
|
||||||
```
|
```
|
||||||
|
|
||||||
=== "Alpine Linux"
|
=== "Alpine Linux"
|
||||||
|
|
||||||
``` sh
|
``` bash
|
||||||
cp -rf /etc/apk/repositories.bak /etc/apk/repositories
|
cp -rf /etc/apk/repositories.bak /etc/apk/repositories
|
||||||
apk update -f
|
apk update -f
|
||||||
```
|
```
|
||||||
|
|
||||||
=== "Gentoo"
|
=== "Gentoo"
|
||||||
|
|
||||||
``` sh
|
``` bash
|
||||||
cp -rf /etc/portage/make.conf.bak /etc/portage/make.conf
|
cp -rf /etc/portage/make.conf.bak /etc/portage/make.conf
|
||||||
[ -d /etc/portage/repos.conf ] && cp -rf /etc/portage/repos.conf/gentoo.conf.bak /etc/portage/repos.conf/gentoo.conf
|
[ -d /etc/portage/repos.conf ] && cp -rf /etc/portage/repos.conf/gentoo.conf.bak /etc/portage/repos.conf/gentoo.conf
|
||||||
emerge --sync --quiet
|
emerge --sync --quiet
|
||||||
@@ -300,7 +322,6 @@ hide:
|
|||||||
| `--use-intranet-source` | 是否优先使用内网软件源地址 | `true` 或 `false` |
|
| `--use-intranet-source` | 是否优先使用内网软件源地址 | `true` 或 `false` |
|
||||||
| `--use-official-source` | 是否使用目标操作系统的官方软件源 | `true` 或 `false` |
|
| `--use-official-source` | 是否使用目标操作系统的官方软件源 | `true` 或 `false` |
|
||||||
| `--install-epel` | 是否安装 EPEL 附加软件包 | `true` 或 `false` |
|
| `--install-epel` | 是否安装 EPEL 附加软件包 | `true` 或 `false` |
|
||||||
| `--close-firewall` | 是否关闭防火墙 | `true` 或 `false` |
|
|
||||||
| `--backup` | 是否备份原有软件源 | `true` 或 `false` |
|
| `--backup` | 是否备份原有软件源 | `true` 或 `false` |
|
||||||
| `--upgrade-software` | 是否更新软件包 | `true` 或 `false` |
|
| `--upgrade-software` | 是否更新软件包 | `true` 或 `false` |
|
||||||
| `--clean-cache` | 是否清理下载缓存 | `true` 或 `false` |
|
| `--clean-cache` | 是否清理下载缓存 | `true` 或 `false` |
|
||||||
@@ -461,7 +482,7 @@ hide:
|
|||||||
5. 如果你想要缩减脚本体积那么可以删除一些不必要的内容,除了上面提到的软件源列表还有一些涉及脚本工作的部分模块内容,具体如下:
|
5. 如果你想要缩减脚本体积那么可以删除一些不必要的内容,除了上面提到的软件源列表还有一些涉及脚本工作的部分模块内容,具体如下:
|
||||||
1. 首先在删除内容时应尽可能保留脚本原始结构,直接把涉及函数中的内容删除即可,使其保留为空函数
|
1. 首先在删除内容时应尽可能保留脚本原始结构,直接把涉及函数中的内容删除即可,使其保留为空函数
|
||||||
2. 可以删除一些不使用(操作系统)的软件源原始内容 `gen_repo_files_xxx`,这些内容占据了脚本 `60%` 以上的体积
|
2. 可以删除一些不使用(操作系统)的软件源原始内容 `gen_repo_files_xxx`,这些内容占据了脚本 `60%` 以上的体积
|
||||||
3. 如果你不使用某些功能那么可以删除对应功能模块函数中的内容,`命令选项 handle_command_options`、`关闭防火墙 close_firewall_service`、`备份原有软件源 backup_original_mirrors`、`更新软件包 upgrade_software`
|
3. 如果你不使用某些功能那么可以删除对应功能模块函数中的内容,`命令选项 handle_command_options`、`备份原有软件源 backup_original_mirrors`、`更新软件包 upgrade_software`
|
||||||
6. 脚本主要功能配置是由统一的变量控制的,命令选项亦是如此,这些全局变量由全大写字母构成并遵循下划线命名法,具体变量详见如下表格,你只需要将这些变量声明在脚本头部(预留注释区域)即可快速完成定制
|
6. 脚本主要功能配置是由统一的变量控制的,命令选项亦是如此,这些全局变量由全大写字母构成并遵循下划线命名法,具体变量详见如下表格,你只需要将这些变量声明在脚本头部(预留注释区域)即可快速完成定制
|
||||||
|
|
||||||
| 变量名 | 含义 | 值类型 |
|
| 变量名 | 含义 | 值类型 |
|
||||||
@@ -484,7 +505,6 @@ hide:
|
|||||||
| `WEB_PROTOCOL` | 指定 WEB 协议 | `http` 或 `https` |
|
| `WEB_PROTOCOL` | 指定 WEB 协议 | `http` 或 `https` |
|
||||||
| `INSTALL_EPEL` | 是否安装 EPEL 附加软件包 | `true` 或 `false` |
|
| `INSTALL_EPEL` | 是否安装 EPEL 附加软件包 | `true` 或 `false` |
|
||||||
| `ONLY_EPEL` | 仅更换 EPEL 软件源模式 | `true` 或 `false` |
|
| `ONLY_EPEL` | 仅更换 EPEL 软件源模式 | `true` 或 `false` |
|
||||||
| `CLOSE_FIREWALL` | 是否关闭防火墙 | `true` 或 `false` |
|
|
||||||
| `BACKUP` | 是否备份原有软件源 | `true` 或 `false` |
|
| `BACKUP` | 是否备份原有软件源 | `true` 或 `false` |
|
||||||
| `IGNORE_BACKUP_TIPS` | 忽略覆盖备份提示(即不覆盖备份) | `true` 或 `false` |
|
| `IGNORE_BACKUP_TIPS` | 忽略覆盖备份提示(即不覆盖备份) | `true` 或 `false` |
|
||||||
| `UPGRADE_SOFTWARE` | 是否更新软件包 | `true` 或 `false` |
|
| `UPGRADE_SOFTWARE` | 是否更新软件包 | `true` 或 `false` |
|
||||||
|
|||||||
Reference in New Issue
Block a user