Force upgrade ca-certificates

People constantly suggest adding this   
Close 
This commit is contained in:
Howard Wu 2023-03-20 03:23:21 +08:00
parent 01afe6752f
commit 8e3eef35a9

View file

@ -44,15 +44,15 @@ check_dependencies() {
command -v resize2fs >/dev/null 2>&1 || NEED_INSTALL+=("e2fsprogs")
command -v pip >/dev/null 2>&1 || NEED_INSTALL+=("python3-pip")
command -v aria2c >/dev/null 2>&1 || NEED_INSTALL+=("aria2")
command -v 7z > /dev/null 2>&1 || NEED_INSTALL+=("p7zip-full")
command -v setfattr > /dev/null 2>&1 || NEED_INSTALL+=("attr")
command -v xz > /dev/null 2>&1 || NEED_INSTALL+=("xz-utils")
command -v unzip > /dev/null 2>&1 || NEED_INSTALL+=("unzip")
command -v qemu-img > /dev/null 2>&1 || NEED_INSTALL+=("qemu-utils")
command -v 7z >/dev/null 2>&1 || NEED_INSTALL+=("p7zip-full")
command -v setfattr >/dev/null 2>&1 || NEED_INSTALL+=("attr")
command -v xz >/dev/null 2>&1 || NEED_INSTALL+=("xz-utils")
command -v unzip >/dev/null 2>&1 || NEED_INSTALL+=("unzip")
command -v qemu-img >/dev/null 2>&1 || NEED_INSTALL+=("qemu-utils")
}
check_dependencies
osrel=$(sed -n '/^ID_LIKE=/s/^.*=//p' /etc/os-release);
declare -A os_pm_install;
osrel=$(sed -n '/^ID_LIKE=/s/^.*=//p' /etc/os-release)
declare -A os_pm_install
# os_pm_install["/etc/redhat-release"]=yum
# os_pm_install["/etc/arch-release"]=pacman
# os_pm_install["/etc/gentoo-release"]=emerge
@ -60,7 +60,7 @@ os_pm_install["/etc/SuSE-release"]=zypper
os_pm_install["/etc/debian_version"]=apt-get
# os_pm_install["/etc/alpine-release"]=apk
declare -A PM_UPDATE_MAP;
declare -A PM_UPDATE_MAP
PM_UPDATE_MAP["yum"]="check-update"
PM_UPDATE_MAP["pacman"]="-Syu --noconfirm"
PM_UPDATE_MAP["emerge"]="-auDN @world"
@ -68,7 +68,7 @@ PM_UPDATE_MAP["zypper"]="ref"
PM_UPDATE_MAP["apt-get"]="update"
PM_UPDATE_MAP["apk"]="update"
declare -A PM_INSTALL_MAP;
declare -A PM_INSTALL_MAP
PM_INSTALL_MAP["yum"]="install -y"
PM_INSTALL_MAP["pacman"]="-S --noconfirm --needed"
PM_INSTALL_MAP["emerge"]="-a"
@ -76,6 +76,10 @@ PM_INSTALL_MAP["zypper"]="in -y"
PM_INSTALL_MAP["apt-get"]="install -y"
PM_INSTALL_MAP["apk"]="add"
declare -A PM_UPGRADE_MAP
PM_UPGRADE_MAP["apt-get"]="upgrade -y"
PM_UPGRADE_MAP["zypper"]="up -y"
check_package_manager() {
for f in "${!os_pm_install[@]}"; do
if [[ -f $f ]]; then
@ -87,12 +91,17 @@ check_package_manager() {
PM="zypper"
fi
if [ -n "$PM" ]; then
readarray -td ' ' UPDATE_OPTION <<<"${PM_UPDATE_MAP[$PM]} "; unset 'UPDATE_OPTION[-1]';
readarray -td ' ' INSTALL_OPTION <<<"${PM_INSTALL_MAP[$PM]} "; unset 'INSTALL_OPTION[-1]';
readarray -td ' ' UPDATE_OPTION <<<"${PM_UPDATE_MAP[$PM]} "
unset 'UPDATE_OPTION[-1]'
readarray -td ' ' INSTALL_OPTION <<<"${PM_INSTALL_MAP[$PM]} "
unset 'INSTALL_OPTION[-1]'
readarray -td ' ' UPGRADE_OPTION <<<"${PM_UPGRADE_MAP[$PM]} "
unset 'UPGRADE_OPTION[-1]'
fi
}
check_package_manager
require_su
if [ -n "${NEED_INSTALL[*]}" ]; then
if [ -z "$PM" ]; then
echo "Unable to determine package manager: Unsupported distros"
@ -105,15 +114,17 @@ if [ -n "${NEED_INSTALL[*]}" ]; then
NEED_INSTALL_FIX=${NEED_INSTALL_FIX//whiptail/dialog} 2>&1
NEED_INSTALL_FIX=${NEED_INSTALL_FIX//xz-utils/xz} 2>&1
NEED_INSTALL_FIX=${NEED_INSTALL_FIX//qemu-utils/qemu-tools} 2>&1
} >> /dev/null
} >>/dev/null
readarray -td ' ' NEED_INSTALL <<<"$NEED_INSTALL_FIX "; unset 'NEED_INSTALL[-1]';
readarray -td ' ' NEED_INSTALL <<<"$NEED_INSTALL_FIX "
unset 'NEED_INSTALL[-1]'
elif [ "$PM" = "apk" ]; then
NEED_INSTALL_FIX=${NEED_INSTALL[*]}
readarray -td ' ' NEED_INSTALL <<<"${NEED_INSTALL_FIX//p7zip-full/p7zip} "; unset 'NEED_INSTALL[-1]';
readarray -td ' ' NEED_INSTALL <<<"${NEED_INSTALL_FIX//p7zip-full/p7zip} "
unset 'NEED_INSTALL[-1]'
fi
require_su
if ! ($SUDO "$PM" "${UPDATE_OPTION[@]}" && $SUDO "$PM" "${INSTALL_OPTION[@]}" "${NEED_INSTALL[@]}") then abort; fi
if ! ($SUDO "$PM" "${INSTALL_OPTION[@]}" "${NEED_INSTALL[@]}"); then abort; fi
fi
fi
if ! ($SUDO "$PM" "${UPDATE_OPTION[@]}" && $SUDO "$PM" "${UPGRADE_OPTION[@]}" ca-certificates); then abort; fi
python3 -m pip install -r requirements.txt -q