[deepin exploration] 【移植适配测试】 不装 deepin 系统,直接在 Debian 13 跑 DDE25
Tofloor
poster avatar
罐子
Moderator
8 hours ago
Author

[移植适配测试] 通过自建 OBS 的 DDE25 组件仓库在 Debian 13 上安装 DDE25 桌面环境

这篇帖子整理的是一套 将 DDE 移植到 Debian 13 的测试方法。

核心思路很简单:

  • Debian 13 为唯一系统基线
  • 通过 自建 OBS 构建的 DDE25 组件仓库 提供软件包
  • 在 Debian 13 上安装 DDE25 组件
  • 尽量实现接近 deepin 25 的桌面体验

这不是官方安装方案,也不是正式发布方案,目前就是移植适配测试用途。

免责声明

先把话说在前面:

  • 这是移植适配测试,娱乐即可
  • 本帖内容仅供测试、交流、折腾
  • 任何安装失败、黑屏、依赖冲突、桌面异常、数据损失、系统不可启动等问题,请自行承担风险
  • 强烈建议优先在虚拟机测试
  • 不建议直接在生产环境、工作主机、唯一系统盘上操作
  • 如果你的系统已经混装了 GNOME / KDE / XFCE 等桌面,本帖脚本不保证一定能平滑收敛

这套方案的定位

这套方案并不是“在 Debian 上直接混用 deepin 官方仓库”。

而是:

  • DDE25 相关组件逐步移植、适配到 Debian 13
  • 通过 自建 OBS 对这些组件重新构建
  • 再通过这个自建 OBS 仓库在 Debian 13 上完成安装

也就是说,重点是:

通过自建的 OBS 构建的 DDE25 组件仓库,在 Debian 13 上安装 DDE25 组件,实现 DDE 移植到 Debian 13 的测试部署。

适用范围

  • 系统版本:Debian 13 (trixie)
  • 安装介质:Debian 13 DVD 镜像
  • 架构:x86_64
  • 安装方式:通过自建 OBS DDE25 仓库部署
  • 当前目标:在 Debian 13 上运行 DDE25 桌面环境
  • 当前明确排除:
    • deepin-app-store
    • deepin-home-appstore-daemon

建议测试环境

建议满足以下条件:

  • 使用 Debian 13 DVD 镜像完成系统安装
  • 系统已联网
  • 已启用 sudo
  • 最好保留 SSH,便于出问题后排查
  • 建议不要在已经长期混装多个桌面环境的系统上直接套用
  • 强烈建议先在虚拟机验证

自建 OBS 仓库地址

本帖当前测试使用的 DDE25 OBS 仓库地址为:

https://obsci.odata.cc/home:/Admin:/Debian:/13:/DDE25/home_Admin_Debian_13_repo/

这个仓库的作用就是:

  • 提供移植到 Debian 13 后重新构建的 DDE25 组件
  • 作为 Debian 13 安装 DDE25 的软件源

完整安装脚本

建议保存为:

install-dde25-on-debian13.sh

内容如下:

#!/usr/bin/env bash
set -euo pipefail

if [ "${EUID}" -ne 0 ]; then
  echo "请使用 root 或 sudo 执行"
  exit 1
fi

OBS_REPO_URL="https://obsci.odata.cc/home:/Admin:/Debian:/13:/DDE25/home_Admin_Debian_13_repo/"

echo "[1/11] 检查系统版本"
if ! grep -q 'VERSION_CODENAME=trixie' /etc/os-release 2>/dev/null && ! grep -q 'VERSION=\"13' /etc/os-release 2>/dev/null; then
  echo "当前系统看起来不是 Debian 13,请先确认:"
  cat /etc/os-release || true
  exit 1
fi

echo "[2/11] 备份 APT 配置"
mkdir -p /root/dde25-debian13-backup
cp -a /etc/apt/sources.list /root/dde25-debian13-backup/sources.list.bak.$(date +%F-%H%M%S) 2>/dev/null || true
cp -a /etc/apt/sources.list.d /root/dde25-debian13-backup/sources.list.d.bak.$(date +%F-%H%M%S) 2>/dev/null || true

echo "[3/11] 写入 Debian 13 基础源"
cat >/etc/apt/sources.list <<'EOF'
deb http://mirrors.ustc.edu.cn/debian/ trixie main non-free-firmware
deb http://mirrors.ustc.edu.cn/debian-security trixie-security main non-free-firmware
deb http://mirrors.ustc.edu.cn/debian/ trixie-updates main non-free-firmware
EOF

echo "[4/11] 暂时禁用其他第三方源"
mkdir -p /etc/apt/sources.list.d.disabled
for f in /etc/apt/sources.list.d/*.list; do
  [ -e "$f" ] || continue
  base="$(basename "$f")"
  case "$base" in
    debian13-dde25.list)
      ;;
    *)
      mv "$f" "/etc/apt/sources.list.d.disabled/${base}.$(date +%s).disabled" || true
      ;;
  esac
done

echo "[5/11] 写入 DDE25 OBS 源"
cat >/etc/apt/sources.list.d/debian13-dde25.list </etc/apt/apt.conf.d/99dde25-no-extra-indexes <<'EOF'
Acquire::IndexTargets::deb::Contents-deb::DefaultEnabled "false";
Acquire::IndexTargets::deb::Contents-dsc::DefaultEnabled "false";
Acquire::IndexTargets::deb::DEP-11::DefaultEnabled "false";
Acquire::IndexTargets::deb::DEP-11-icons::DefaultEnabled "false";
Acquire::IndexTargets::deb::DEP-11-icons-small::DefaultEnabled "false";
Acquire::IndexTargets::deb::DEP-11-icons-hidpi::DefaultEnabled "false";
Acquire::IndexTargets::deb::DEP-11-icons-large::DefaultEnabled "false";
Acquire::IndexTargets::deb::DEP-11-icons-large-hidpi::DefaultEnabled "false";
Acquire::Languages "none";
EOF

echo "[7/11] 刷新 APT 缓存"
rm -f /var/lib/apt/lists/*home%5fAdmin%5fDebian%5f13%5frepo* || true
apt-get update

echo "[8/11] 先切到非图形目标"
systemctl set-default multi-user.target || true

echo "[9/11] 安装 DDE25 主要组件"
DEBIAN_FRONTEND=noninteractive apt-get install -y \
  ddm \
  treeland \
  treeland-wayland-session \
  deepin-desktop-theme \
  deepin-gtk-theme \
  deepin-wallpapers \
  deepin-home \
  deepin-face \
  deepin-settings-default \
  deepin-settings-default-tuning \
  deepin-desktop-environment-base \
  deepin-desktop-environment-core \
  deepin-desktop-environment-extras \
  network-manager

echo "[10/11] 补齐兼容文件"
if [ ! -f /etc/os-version ]; then
  cat >/etc/os-version <<'EOF'
[Version]
SystemName=Deepin
ProductType=Desktop
EditionName=Professional
MajorVersion=25
MinorVersion=25.0.10
OsBuild=21138.105.100
EOF
fi

if [ ! -f /etc/deepin-version ]; then
  cat >/etc/deepin-version <<'EOF'
[Release]
Version=25
Type=Desktop
Milestone=Community
EOF
fi

mkdir -p /var/lib/AccountsService/icons
touch /var/lib/AccountsService/icons/default

echo "[11/11] 启用图形目标与显示管理器"
systemctl set-default graphical.target
systemctl enable NetworkManager.service
systemctl enable ddm.service
systemctl disable lightdm.service || true

echo
echo "安装完成,建议立即重启:"
echo "  reboot"

执行方法

chmod +x install-dde25-on-debian13.sh
sudo bash install-dde25-on-debian13.sh
sudo reboot

如果不想用脚本,也可以手工执行

先写 Debian 13 基础源:

sudo tee /etc/apt/sources.list >/dev/null <<'EOF'
deb http://mirrors.ustc.edu.cn/debian/ trixie main non-free-firmware
deb http://mirrors.ustc.edu.cn/debian-security trixie-security main non-free-firmware
deb http://mirrors.ustc.edu.cn/debian/ trixie-updates main non-free-firmware
EOF

再写自建 OBS 源:

sudo tee /etc/apt/sources.list.d/debian13-dde25.list >/dev/null <<'EOF'
deb [trusted=yes] https://obsci.odata.cc/home:/Admin:/Debian:/13:/DDE25/home_Admin_Debian_13_repo/ /
EOF

更新索引:

sudo apt-get update

安装 DDE25 组件:

sudo apt-get install -y \
  ddm \
  treeland \
  treeland-wayland-session \
  deepin-desktop-theme \
  deepin-gtk-theme \
  deepin-wallpapers \
  deepin-home \
  deepin-face \
  deepin-settings-default \
  deepin-settings-default-tuning \
  deepin-desktop-environment-base \
  deepin-desktop-environment-core \
  deepin-desktop-environment-extras

启用图形目标:

sudo systemctl set-default graphical.target
sudo systemctl enable NetworkManager.service
sudo systemctl enable ddm.service
sudo systemctl disable lightdm.service || true
sudo reboot

安装后建议检查

重启后,建议先确认以下内容:

systemctl get-default
systemctl is-enabled ddm.service
systemctl status ddm.service --no-pager
apt-cache policy treeland
apt-cache policy ddm
apt-cache policy deepin-desktop-environment-base
apt-cache policy deepin-desktop-environment-core
apt-cache policy deepin-desktop-environment-extras

正常预期:

  • 默认目标是 graphical.target
  • ddm.service 已启用
  • treeland
  • ddm
  • deepin-desktop-environment-base
  • deepin-desktop-environment-core
  • deepin-desktop-environment-extras

这些包的候选版本都来自自建 OBS 仓库

注意事项

这里有几个点需要提前说明:

  1. 当前不建议恢复以下内容:
  • deepin-app-store
  • deepin-home-appstore-daemon
  • deepin 商店相关二进制仓库
  1. 如果需要保留 deepin-deb-installer,通常还需要:
  • deepin-app-store-runtime
  1. 当前主验证架构是:
  • x86_64

已知风险

当前这套方案已经能跑通主线,但仍然有这些风险:

  • 某些虚拟机环境中,Wayland / Treeland / 图形栈 可能出现黑屏、圆角异常、托盘异常等问题
  • 混装多个桌面环境后,显示管理器和会话切换可能不稳定
  • 某些包如果刚完成构建,可能需要重新 apt-get update
  • x86_64 架构目前不建议直接照搬

如果安装失败,建议优先检查

journalctl -b -u ddm.service --no-pager | tail -n 200
journalctl -b --no-pager | tail -n 200
apt-cache policy ddm treeland

最后再次强调

这是通过 自建 OBS 构建的 DDE25 组件仓库,在 Debian 13 上做 DDE 移植适配测试。

不是正式发布,娱乐即可。

  • 任何问题或者风险自行承担
  • 建议优先在虚拟机中测试
  • 上物理机前请自行做好完整备份

如果后面有时间,我还会继续整理:

  • Debian 13 + DDE25 常见问题排查帖
  • Debian 13 + DDE25 构建与 OBS 仓库说明
  • 安装后修复与收尾说明

765fbe612583d4b0c98fad74ef787d62.png

cd0acc80f4787fbb5dc08cdfc9a2f766.png

image.png

Reply Favorite View the author
All Replies
mozixun
Moderator
8 hours ago
#1

话说, 升级个Mesa3D呗,Debian13直升mesa 26应该没问题

没空的话我开一下OBS

Reply View the author
罐子
Moderator
8 hours ago
#2
mozixun

话说, 升级个Mesa3D呗,Debian13直升mesa 26应该没问题

没空的话我开一下OBS

Mesa3D构建你比我熟悉。

Reply View the author
mozixun
Moderator
6 hours ago
#3
罐子

Mesa3D构建你比我熟悉。

你直接从debian sid偷包就行了

Reply View the author