Update install.sh

优化运行逻辑
This commit is contained in:
星光-k
2025-01-09 21:50:31 +08:00
committed by GitHub
parent 174ecb6caa
commit bd32c5163a

View File

@@ -6,8 +6,47 @@ if [ "$EUID" -ne 0 ]; then
exit 1
fi
# 语言环境设置
DEFAULT_LANG="en_GB.UTF-8"
# 默认语言环境
DEFAULT_LANG="en_US.UTF-8"
# 检查是否使用中国镜像源
USE_CN_MIRROR=false
# 控制调试输出
DEBUG=false
# 解析命令行参数
for arg in "$@"
do
case $arg in
--cn)
USE_CN_MIRROR=true
shift # 移除当前参数
;;
--debug)
DEBUG=true
shift # 移除当前参数
;;
*)
# 未知参数,可以在这里处理错误或忽略
;;
esac
done
# 系统语言环境设置
echo "请选择系统语言环境:"
echo "1. 中文 (zh_CN.UTF-8)"
echo "2. 英文 (en_US.UTF-8)"
read -p "输入选项 (1/2): " lang_choice
case $lang_choice in
1)
DEFAULT_LANG="zh_CN.UTF-8"
;;
2)
DEFAULT_LANG="en_US.UTF-8"
;;
*)
echo "无效的选项,将使用默认系统语言环境: $DEFAULT_LANG"
;;
esac
export LANG=$DEFAULT_LANG
export LC_ALL=$DEFAULT_LANG
echo "$DEFAULT_LANG UTF-8" >> /etc/locale.gen
@@ -25,54 +64,77 @@ else
fi
# 定义链接变量
DEBIAN_MIRROR="https://mirrors.cernet.edu.cn/debian/"
DEBIAN_SECURITY_MIRROR="https://mirrors.cernet.edu.cn/debian-security"
DEBIAN_MIRROR="http://deb.debian.org/debian/"
DEBIAN_SECURITY_MIRROR="http://security.debian.org/"
PI_SUGAR_POWER_MANAGER_URL="https://cdn.pisugar.com/release/pisugar-power-manager.sh"
INK_SCREEN_CLOCK_REPO_URL="https://gitee.com/xingguangk/2.13-Ink-screen-clock.git"
PIPY_MIRROR="https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"
PIPY_MIRROR="https://pypi.org/simple"
# Debian 11 (Bullseye) 相关命令
UPDATE_SOURCES_LIST_BULLSEYE="sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak && sudo cat <<'EOF' > /etc/apt/sources.list
deb $DEBIAN_MIRROR bullseye main contrib non-free
# deb-src $DEBIAN_MIRROR bullseye main contrib non-free
# 如果使用中国镜像源,则更新链接变量
if [ "$USE_CN_MIRROR" = true ]; then
DEBIAN_MIRROR="https://mirrors.cernet.edu.cn/debian/"
DEBIAN_SECURITY_MIRROR="https://mirrors.cernet.edu.cn/debian-security"
PIPY_MIRROR="https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"
fi
deb $DEBIAN_MIRROR bullseye-updates main contrib non-free
# deb-src $DEBIAN_MIRROR bullseye-updates main contrib non-free
# 更新源列表函数
update_sources_list() {
local version=$1
if [ "$DEBUG" = true ]; then
echo "正在更新版本 $version 的源列表"
fi
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo bash -c "cat <<EOF > /etc/apt/sources.list
deb $DEBIAN_MIRROR $version main contrib non-free
# deb-src $DEBIAN_MIRROR $version main contrib non-free
deb $DEBIAN_MIRROR bullseye-backports main contrib non-free
# deb-src $DEBIAN_MIRROR bullseye-backports main contrib non-free
deb $DEBIAN_MIRROR $version-updates main contrib non-free
# deb-src $DEBIAN_MIRROR $version-updates main contrib non-free
deb $DEBIAN_SECURITY_MIRROR bullseye-security main contrib non-free
# deb-src $DEBIAN_SECURITY_MIRROR bullseye-security main contrib non-free
deb $DEBIAN_MIRROR $version-backports main contrib non-free
# deb-src $DEBIAN_MIRROR $version-backports main contrib non-free
deb $DEBIAN_SECURITY_MIRROR $version-security main contrib non-free
# deb-src $DEBIAN_SECURITY_MIRROR $version-security main contrib non-free
EOF"
INSTALL_PACKAGES_BULLSEYE="sudo apt-get update && sudo apt-get install -y git pigpio raspi-config netcat gawk python3-dev python3-pip python3-pil python3-numpy python3-gpiozero python3-pigpio build-essential"
INSTALL_PIP_PACKAGES_BULLSEYE="sudo pip3 install -i $PIPY_MIRROR spidev borax pillow requests --break-system-packages"
DOWNLOAD_AND_EXECUTE_BULLSEYE="wget $PI_SUGAR_POWER_MANAGER_URL && bash pisugar-power-manager.sh -c release"
CLONE_AND_EXECUTE_BULLSEYE="cd ~ && git clone $INK_SCREEN_CLOCK_REPO_URL && cd ~/2.13-Ink-screen-clock/bin/ && sudo chmod +x start.sh && sudo ./start.sh"
}
# Debian 12 (Bookworm) 相关命令
UPDATE_SOURCES_LIST_BOOKWORM="sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak && sudo cat <<'EOF' > /etc/apt/sources.list
deb $DEBIAN_MIRROR bookworm main contrib non-free non-free-firmware
# deb-src $DEBIAN_MIRROR bookworm main contrib non-free non-free-firmware
# 安装包函数
install_packages() {
if [ "$DEBUG" = true ]; then
echo "正在安装软件包..."
fi
sudo apt-get update && sudo apt-get install -y git pigpio raspi-config netcat gawk python3-dev python3-pip python3-pil python3-numpy python3-gpiozero python3-pigpio build-essential
}
deb $DEBIAN_MIRROR bookworm-updates main contrib non-free non-free-firmware
# deb-src $DEBIAN_MIRROR bookworm-updates main contrib non-free non-free-firmware
# 安装pip包函数
install_pip_packages() {
if [ "$DEBUG" = true ]; then
echo "正在安装pip软件包..."
fi
sudo pip3 install -i $PIPY_MIRROR spidev borax pillow requests --break-system-packages
}
deb $DEBIAN_MIRROR bookworm-backports main contrib non-free non-free-firmware
# deb-src $DEBIAN_MIRROR bookworm-backports main contrib non-free non-free-firmware
# 下载并执行脚本函数
download_and_execute() {
if [ "$DEBUG" = true ]; then
echo "正在下载并执行pisugar电源管理脚本..."
fi
wget $PI_SUGAR_POWER_MANAGER_URL && bash pisugar-power-manager.sh -c release
}
deb $DEBIAN_SECURITY_MIRROR bookworm-security main contrib non-free non-free-firmware
# deb-src $DEBIAN_SECURITY_MIRROR bookworm-security main contrib non-free non-free-firmware
EOF"
INSTALL_PACKAGES_BOOKWORM="sudo apt-get update && sudo apt-get install -y git pigpio raspi-config netcat gawk python3-dev python3-pip python3-pil python3-numpy python3-gpiozero python3-pigpio build-essential"
INSTALL_PIP_PACKAGES_BOOKWORM="sudo pip3 install -i $PIPY_MIRROR spidev borax pillow requests --break-system-packages"
DOWNLOAD_AND_EXECUTE_BOOKWORM="wget $PI_SUGAR_POWER_MANAGER_URL && bash pisugar-power-manager.sh -c release"
CLONE_AND_EXECUTE_BOOKWORM="cd ~ && git clone $INK_SCREEN_CLOCK_REPO_URL && cd ~/2.13-Ink-screen-clock/bin/ && sudo chmod +x start.sh && sudo ./start.sh"
# 克隆并执行脚本函数
clone_and_execute() {
if [ "$DEBUG" = true ]; then
echo "正在克隆并执行墨水屏时钟仓库..."
fi
cd ~ && git clone $INK_SCREEN_CLOCK_REPO_URL && cd ~/2.13-Ink-screen-clock/bin/ && sudo chmod +x start.sh && sudo ./start.sh
}
# 主逻辑
# 检测是否是Debian系统
if [ -f /etc/debian_version ]; then
echo "检测到Debian系统"
echo "检测到Debian系统"
# 提取版本号的小数点前的部分
MAJOR_VERSION=$(echo $DEBIAN_VERSION | cut -d '.' -f 1)
@@ -85,19 +147,19 @@ if [ -f /etc/debian_version ]; then
case "$MAJOR_VERSION" in
11)
echo "执行Debian 11 (Bullseye) 相关操作"
eval $UPDATE_SOURCES_LIST_BULLSEYE
eval $INSTALL_PACKAGES_BULLSEYE
eval $INSTALL_PIP_PACKAGES_BULLSEYE
eval $DOWNLOAD_AND_EXECUTE_BULLSEYE
eval $CLONE_AND_EXECUTE_BULLSEYE
update_sources_list "bullseye"
install_packages
install_pip_packages
download_and_execute
clone_and_execute
;;
12)
echo "执行Debian 12 (Bookworm) 相关操作"
eval $UPDATE_SOURCES_LIST_BOOKWORM
eval $INSTALL_PACKAGES_BOOKWORM
eval $INSTALL_PIP_PACKAGES_BOOKWORM
eval $DOWNLOAD_AND_EXECUTE_BOOKWORM
eval $CLONE_AND_EXECUTE_BOOKWORM
update_sources_list "bookworm"
install_packages
install_pip_packages
download_and_execute
clone_and_execute
;;
*)
echo "未知的Debian版本: $MAJOR_VERSION"
@@ -105,10 +167,10 @@ if [ -f /etc/debian_version ]; then
;;
esac
else
echo "这不是Raspberry Pi系统"
echo "这不是Raspberry Pi系统"
exit 0
fi
else
echo "这不是一个Debian系统"
echo "这不是Debian系统"
exit 0
fi
fi