mirror of
https://github.com/Cateners/tiny_computer.git
synced 2026-05-20 16:35:47 +08:00
Fix links, update packages, update hangover, update readme, update avnc...... update code to v1.1.0
This commit is contained in:
146
extra/gxde-25-upgrade.sh
Normal file
146
extra/gxde-25-upgrade.sh
Normal file
@@ -0,0 +1,146 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 定义颜色以便于阅读
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
echo -e "${GREEN}=== GXDE OS 15 -> 25 命令行升级工具 ===${NC}"
|
||||
|
||||
# 1. 检查 root 权限
|
||||
if [ "$(id -u)" -ne 0 ]; then
|
||||
echo -e "${RED}错误: 请使用 root 权限运行此脚本 (例如: sudo $0)${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 2. 风险确认 (替代 Zenity)
|
||||
echo -e "${YELLOW}警告:您即将执行 GXDE OS 15 到 25 的升级${NC}"
|
||||
echo "• 该操作不可逆且存在风险"
|
||||
echo "• 请确保系统已经更新到最新"
|
||||
echo "• 请确保已做好数据备份"
|
||||
echo "• 升级过程可能需要 1-3 小时,期间请勿关闭终端"
|
||||
echo ""
|
||||
read -p "您确定要继续吗?(输入 yes 继续,其他键取消): " confirm
|
||||
if [ "$confirm" != "yes" ]; then
|
||||
echo "操作已取消。"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo -e "${YELLOW}再次确认:这是一个高风险操作!!!${NC}"
|
||||
read -p "请输入 'I AGREE' (大写) 以确认并开始升级: " confirm_final
|
||||
if [ "$confirm_final" != "I AGREE" ]; then
|
||||
echo "操作已取消。"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}>>> 开始预处理...${NC}"
|
||||
|
||||
# 刷新缓存与修复依赖
|
||||
echo "正在刷新系统包缓存..."
|
||||
apt update
|
||||
aptss update
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
echo "正在检查和修复系统依赖问题..."
|
||||
aptss install -f -yqq
|
||||
|
||||
# 删除冲突包
|
||||
echo "正在移除 qtbase5-dev..."
|
||||
apt autopurge qtbase5-dev -y
|
||||
|
||||
# 3. 替换软件源 (核心逻辑)
|
||||
echo "正在替换软件源..."
|
||||
# 备份并替换主源
|
||||
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
|
||||
|
||||
# 处理 PPA 源
|
||||
declare -A ppa_map=(
|
||||
["/etc/apt/sources.list.d/gxde.list"]='s/bixie/lizhi/g'
|
||||
["/etc/apt/sources.list.d/gxde-testing.list"]='s/tianlu/zhuangzhuang/g'
|
||||
)
|
||||
rm -vf /etc/apt/sources.list.d/gxde-bpo.list
|
||||
|
||||
for file in "${!ppa_map[@]}"; do
|
||||
if [[ -f "$file" ]]; then
|
||||
sed -i "${ppa_map[$file]}" "$file"
|
||||
echo "已更新源文件: $file"
|
||||
else
|
||||
[[ "$file" =~ testing ]] && continue
|
||||
echo -e "${RED}严重错误:关键源文件缺失 $file${NC}"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# 屏蔽旧的更新器
|
||||
echo "正在屏蔽旧版更新器..."
|
||||
rm -fv /usr/bin/gxde-app-upgrader
|
||||
cat > /usr/bin/gxde-app-upgrader << EOF
|
||||
#!/bin/bash
|
||||
echo "警告:检测到您尚未完成系统大版本更新,请完成 CLI 更新流程!"
|
||||
EOF
|
||||
chmod +x /usr/bin/gxde-app-upgrader
|
||||
|
||||
# 刷新新源
|
||||
echo "正在刷新新源缓存..."
|
||||
apt update
|
||||
aptss update
|
||||
yes n | aptss install gxde-25-upgrader -yqq
|
||||
|
||||
echo -e "${GREEN}>>> 预处理完成,准备开始核心升级...${NC}"
|
||||
echo -e "${YELLOW}注意:接下来的过程请保持网络畅通,不要中断脚本运行。${NC}"
|
||||
sleep 3
|
||||
|
||||
# 4. 执行核心升级逻辑 (原 gxde-post-upgrade-fix 内容)
|
||||
|
||||
# 检查当前桌面环境状态
|
||||
ANDROID_INSTALLED=0
|
||||
DESKTOP_MISSING=0
|
||||
dpkg -s gxde-desktop-android &>/dev/null && ANDROID_INSTALLED=1
|
||||
dpkg -s gxde-desktop &>/dev/null || DESKTOP_MISSING=1
|
||||
|
||||
# 确定要安装的桌面包
|
||||
DESKTOP_PKG="gxde-desktop"
|
||||
if [ "$ANDROID_INSTALLED" -eq 1 ] && [ "$DESKTOP_MISSING" -eq 1 ]; then
|
||||
DESKTOP_PKG="gxde-desktop-android"
|
||||
echo "检测到 Android 环境,将安装: $DESKTOP_PKG"
|
||||
else
|
||||
echo "将在升级后安装: $DESKTOP_PKG"
|
||||
fi
|
||||
|
||||
# 执行 Full Upgrade
|
||||
echo -e "${GREEN}>>> 正在执行系统全面升级 (Full Upgrade)...这可能需要很长时间${NC}"
|
||||
yes n | env DEBIAN_FRONTEND=noninteractive aptss full-upgrade \
|
||||
-o DPkg::options::="--force-confdef" \
|
||||
-o DPkg::options::="--force-confold" \
|
||||
-o DPkg::options::="--force-overwrite" \
|
||||
-yqq --assume-yes
|
||||
|
||||
# 处理 grub 配置问题 (Hack)
|
||||
echo "正在处理 GRUB 配置..."
|
||||
if [ -f /var/lib/dpkg/info/grub-pc.postinst ]; then
|
||||
mv -v /var/lib/dpkg/info/grub-pc.postinst /var/lib/dpkg/info/grub-pc.postinst.bak
|
||||
dpkg --configure -a
|
||||
mv -v /var/lib/dpkg/info/grub-pc.postinst.bak /var/lib/dpkg/info/grub-pc.postinst
|
||||
else
|
||||
dpkg --configure -a
|
||||
fi
|
||||
|
||||
# 安装/更新核心软件包
|
||||
echo -e "${GREEN}>>> 正在安装/重装核心组件...${NC}"
|
||||
yes n | env DEBIAN_FRONTEND=noninteractive aptss install gxde-app-upgrader --reinstall -yqq
|
||||
|
||||
if yes n | env DEBIAN_FRONTEND=noninteractive aptss install $DESKTOP_PKG deepin-kwin-x11 libdtkcore-dev deepin-desktop-base spark-store gxde-control-center --reinstall -yqq; then
|
||||
|
||||
# 启用服务
|
||||
systemctl enable dde-filemanager-daemon.service || true
|
||||
|
||||
echo -e "${GREEN}-----------------------${NC}"
|
||||
echo -e "${GREEN}升级成功完成!${NC}"
|
||||
echo -e "${YELLOW}请按回车键重启您的计算机,或者按 Ctrl+C 稍后手动重启。${NC}"
|
||||
read
|
||||
reboot
|
||||
else
|
||||
echo -e "${RED}!!!!!! 升级过程中出现错误 !!!!!!${NC}"
|
||||
echo "请保留此终端输出,并反馈给 QQ 群 881201853"
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user