mirror of
https://github.com/GXDE-OS/GXDE.git
synced 2026-06-22 05:16:36 +08:00
d2e6e5dde1
Signed-off-by: gfdgd_xi <3025613752@qq.com>
136 lines
4.8 KiB
Bash
Executable File
136 lines
4.8 KiB
Bash
Executable File
#!/bin/bash
|
|
export DEBIAN_FRONTEND=noninteractive # 防止卡 tzdate
|
|
GXDE_CROSS_ARCH=$2
|
|
#mkdir -p /etc/apt/sources.list.d/
|
|
#cp /etc/apt/sources.list /etc/apt/sources.list.d/sources.list
|
|
#sed -i "s/deb /deb-src /g" /etc/apt/sources.list.d/sources.list
|
|
#cat /etc/apt/sources.list
|
|
#cat /etc/apt/sources.list.d/sources.list
|
|
# 判断系统版本
|
|
#cat /etc/issue | grep 12
|
|
#if [[ $? == 0 ]]; then
|
|
# echo "deb-src http://deb.debian.org/debian bookworm main" > /etc/apt/sources.list.d/debian-sources.list
|
|
#fi
|
|
#cat /etc/issue | grep sid
|
|
#if [[ $? == 0 ]]; then
|
|
# echo "deb-src http://deb.debian.org/debian sid main" > /etc/apt/sources.list.d/debian-sources.list
|
|
#fi
|
|
# 写入 GXDE 源
|
|
# 判断是否是 Ubuntu
|
|
#isUbuntu=$(cat /etc/os-release | grep Ubuntu | wc -l)
|
|
|
|
|
|
if [[ $1 == "" ]] || [[ $1 == "tianlu" ]]; then
|
|
echo "deb [trusted=true] https://repo1.gxde.top/gxde-os/tianlu ./" >> /etc/apt/sources.list.d/gxde-os.list
|
|
echo "deb [trusted=true] https://repo1.gxde.top/gxde-os/bixie ./" >> /etc/apt/sources.list.d/gxde-os.list
|
|
elif [[ $1 == "zhuangzhuang" ]];then
|
|
echo "deb [trusted=true] https://repo1.gxde.top/gxde-os/zhuangzhuang ./" >> /etc/apt/sources.list.d/gxde-os.list
|
|
echo "deb [trusted=true] https://repo1.gxde.top/gxde-os/lizhi ./" >> /etc/apt/sources.list.d/gxde-os.list
|
|
else
|
|
echo "deb [trusted=true] https://repo1.gxde.top/gxde-os/$1 ./" >> /etc/apt/sources.list.d/gxde-os.list
|
|
fi
|
|
#if [[ $(dpkg --print-architecture) == "loong64" ]]; then
|
|
# echo "deb [trusted=true] https://deb.debian.org/debian-ports/ unreleased main" > /etc/apt/sources.list.d/debian-unreleased.list
|
|
#fi
|
|
apt install -f -y
|
|
apt install debian-ports-archive-keyring debian-archive-keyring wget -y
|
|
if [[ -f /sources-list/sources-$1.list ]]; then
|
|
if [[ $(dpkg --print-architecture) == "riscv64" ]] || [[ $GXDE_CROSS_ARCH == "riscv64" ]]; then
|
|
cp /sources-list/sources-$1-without-backport.list /etc/apt/sources.list.d -v
|
|
else
|
|
if [[ $(dpkg --print-architecture) == "loong64" ]] || [[ $GXDE_CROSS_ARCH == "loong64" ]]; then
|
|
cp /sources-list/sources-$1-loong64.list /etc/apt/sources.list.d -v
|
|
wget -O /etc/apt/trusted.gpg.d/debian-trixie-loong64.gpg https://loong13.debian.net/keyrings/debian-trixie-loong64.gpg
|
|
else
|
|
cp /sources-list/sources-$1.list /etc/apt/sources.list.d -v
|
|
fi
|
|
fi
|
|
fi
|
|
for i in {1..8};
|
|
do
|
|
apt update -o Acquire::Check-Valid-Until=false -y
|
|
if [[ $? == 0 ]]; then
|
|
break
|
|
fi
|
|
sleep 1
|
|
done
|
|
apt install wget curl dpkg-dev sudo debian-ports-archive-keyring debian-archive-keyring devscripts -y
|
|
#neofetch
|
|
#if [[ `arch` != "x86_64" ]]; then
|
|
# apt source qemu
|
|
# cd qemu-*/
|
|
# sed -i "s/gcc-s390x-linux-gnu,//g" debian/control
|
|
# sed -i "s/gcc-alpha-linux-gnu,//g" debian/control
|
|
# sed -i "s/gcc-sparc64-linux-gnu,//g" debian/control
|
|
# sed -i "s/gcc-powerpc64-linux-gnu,//g" debian/control
|
|
# sed -i "s/gcc-hppa-linux-gnu,//g" debian/control
|
|
# sed -i "s/gcc-riscv64-linux-gnu,//g" debian/control
|
|
# apt build-dep . -y
|
|
# cd ..
|
|
#fi
|
|
#apt build-dep qemu -y
|
|
# 如果是 Debian10 就需要安装 Python3 的依赖
|
|
#apt build-dep python3.7 -y
|
|
# 解包 gxde-desktop-base
|
|
|
|
apt download gxde-desktop-base
|
|
dpkg -x gxde-desktop-base_*.deb /
|
|
rm gxde-desktop-base_*.deb -rfv
|
|
if [[ -f /etc/apt/sources.list.d/debian-backports.list ]]; then
|
|
dch --bpo ""
|
|
sed -i "s/~bpo/-bpo/g" debian/changelog
|
|
fi
|
|
for i in {1..5};
|
|
do
|
|
apt build-dep . -y
|
|
if [[ $? == 0 ]]; then
|
|
break
|
|
fi
|
|
sleep 1
|
|
done
|
|
# 从上游拉源代码
|
|
# 从上游拉源代码
|
|
./debian/rules get-orig-source
|
|
|
|
# 收集当前目录和上层目录的所有 .tar* 文件
|
|
tar_files=()
|
|
if compgen -G "./*.tar*" > /dev/null; then
|
|
tar_files+=( ./*.tar* )
|
|
fi
|
|
if compgen -G "../*.tar*" > /dev/null; then
|
|
tar_files+=( ../*.tar* )
|
|
fi
|
|
|
|
# 如果找到 tar 文件,则逐个处理
|
|
if [ ${#tar_files[@]} -gt 0 ]; then
|
|
for archive in "${tar_files[@]}"; do
|
|
filename=$(basename "$archive")
|
|
echo "处理: $archive"
|
|
|
|
# 确定目标目录
|
|
target_dir="."
|
|
if [[ "$filename" =~ -(amd64|arm64)\.tar ]]; then
|
|
arch="${BASH_REMATCH[1]}"
|
|
target_dir="./$arch"
|
|
echo " 架构: $arch → 目标目录: $target_dir"
|
|
else
|
|
echo " 通用包 → 目标目录: 当前目录"
|
|
fi
|
|
|
|
mkdir -p "$target_dir"
|
|
|
|
# 直接解压到目标目录,去除顶层目录
|
|
if tar -xzvf "$archive" -C "$target_dir" --strip-components=1; then
|
|
echo " 完成: 内容已解压至 $target_dir"
|
|
# (可选)解压成功后删除原始 tar 文件
|
|
# rm "$archive"
|
|
else
|
|
echo " 错误: 解压 $archive 失败,保留原始文件。"
|
|
fi
|
|
done
|
|
else
|
|
echo "未找到任何 .tar* 文件,跳过解压步骤。"
|
|
fi
|
|
|
|
exit 0
|