[Internal testing communication] 提前日常使用treeland,详细步骤
Tofloor
poster avatar
qq4945286
deepin
7 hours ago
Author

先上二张图:

01.png

02.png

先说一下,系统带截图录屏闪退,控制中心打开稍微会慢些。

我也会把我编译的deb包放在天翼网盘供下载:https://cloud.189.cn/web/share?code=eqA3aunqiUVv(访问码:jm4t)

这次是按照deepseek的步骤来的,基本一次成功:下面是deepseek总结的手册:

Treeland 编译安装完全指南

适用系统:Deepin 25
难度:中等(适合愿意使用终端的小白)
预计时间:30-60 分钟(取决于网络和机器性能)
警告:此操作会替换系统核心桌面组件,请在个人测试机上执行,务必提前备份重要数据。


目录

  1. 准备工作
  2. 安装基础工具和依赖
  3. 按顺序编译依赖组件
  4. 编译 Treeland 合成器本身
  5. 重启并进入 Treeland 环境
  6. 故障恢复与卸载
  7. 常见问题 (FAQ)
  8. 附录:编译其他组件(如 deepin-screen-recorder)

1. 准备工作

1.1 备份数据

将你的重要文件(文档、图片、项目等)复制到外部硬盘或云存储。虽然本操作一般不会损坏个人文件,但一旦桌面崩溃,数据会暂时无法访问,预防万一。

1.2 开启开发者模式

Deepin 25 的 /usr 目录默认只读,必须开启开发者模式才能安装编译出的软件包。

  • 打开“控制中心” → “开发者选项”→ 把“磐石只读保护”开关关闭,重启一下电脑。

1.3 确保网络畅通

整个编译过程需要下载约数百 MB 的源代码和依赖包,请保持网络稳定。


2. 安装基础工具和依赖

打开终端(在桌面右键 → “在终端中打开”),依次执行以下命令:

# 更新软件包列表
sudo apt update

# 安装编译必需工具
sudo apt install -y build-essential git cmake pkg-config extra-cmake-modules devscripts fakeroot
3. 按顺序编译依赖组件

Treeland 依赖于 treeland-protocols 和 ddm 两个独立项目,必须严格按顺序先编译安装它们。
3.1 treeland-protocols(协议定义)
bash
复制
下载

# 进入主目录
cd ~

# 从 GitHub 克隆代码(若网络慢可改用 Gitee,但 GitHub 一般更稳定)
git clone https://github.com/linuxdeepin/treeland-protocols.git

# 进入源码目录
cd treeland-protocols

# 自动安装当前项目所需的所有编译依赖
sudo apt build-dep . -y

# 构建 deb 软件包
debuild -us -uc -b

    sudo apt build-dep . -y 会根据源码中的 debian/control 文件自动安装依赖库,通常顺利通过。

    debuild -us -uc -b:-us -uc 表示不对包签名,-b 表示只构建二进制包。编译成功后在上级目录(~)生成 .deb 文件。

安装生成的包:
bash
复制
下载

cd ~
sudo dpkg -i treeland-protocols*.deb

如果提示依赖问题,运行 sudo apt --fix-broken install -y 修复,然后再次执行安装命令。
3.2 ddm(显示管理)
bash
复制
下载

cd ~
git clone https://github.com/linuxdeepin/ddm.git
cd ddm
sudo apt build-dep . -y
debuild -us -uc -b

ddm 会生成多个包,需要一次性安装:
bash
复制
下载

cd ~
sudo dpkg -i ddm*.deb libddm*.deb

常见问题:如果 ddm 依赖安装时提示 libddm 版本不匹配,说明未同时安装 libddm_*.deb。务必用 ls *.deb | grep ddm 检查所有 deb 文件,将所有 ddm 和 libddm 相关的包一起安装。
4. 编译 Treeland 合成器本身

现在才处理你最终想要编译的 Treeland 合成器(以 treeland-fix-mirror 为例)。
4.1 获取 treeland-fix-mirror 源码
bash
复制
下载

cd ~
git clone https://gitee.com/LFRon/treeland-fix-mirror.git
cd treeland-fix-mirror

4.2 解决编译报错

4.2.1 安装依赖
bash
复制
下载

sudo apt build-dep . -y

如果因为 libmpv-dev 失败(视频库,与非播放核心功能无关),可以跳过它:

    编辑 debian/control:
    bash
    复制
    下载

    sudo nano debian/control

    找到包含 libmpv-dev 的行,在前面加上 # 注释掉。

    按 Ctrl+X → Y → 回车保存。

    再次运行 sudo apt build-dep . -y。

4.2.2 应对 missing initializer for member 'destroy' 错误

新版 Treeland 源码与协议头文件可能存在某些结构体初始化缺少 destroy 字段,编译器会将其作为错误(-Werror),导致编译失败。修复方法:
bash
复制
下载

# 清理之前可能的编译残留
dh clean

# 通过环境变量追加编译选项,让该警告不作为错误处理
DEB_CXXFLAGS_APPEND="-Wno-error=missing-field-initializers" debuild -us -uc -b

如果你的源码还有其他类似错误,可以类比添加 -Wno-error=...,或者直接用 DEB_CXXFLAGS_APPEND="-Wno-error" 关闭所有“警告变为错误”的机制(不太推荐,但可作为终极方案)。
4.3 安装生成的 deb 包

编译成功后,返回主目录并列出所有 treeland 包:
bash
复制
下载

cd ~
ls treeland*.deb

你会看到类似如下文件(版本号可能不同):
text
复制
下载

treeland_0.8.5_amd64.deb
treeland-data_0.8.5_all.deb
treeland-wayland-session_0.8.5_all.deb
treeland-wallpaper-factory_0.8.5_amd64.deb
treeland-examples_0.8.5_amd64.deb
treeland-dev_0.8.5_amd64.deb

安装所有 treeland 包(注意替换版本号为你实际的):
bash
复制
下载

sudo dpkg -i treeland_0.8.5_amd64.deb treeland-data_0.8.5_all.deb treeland-wayland-session_0.8.5_all.deb treeland-wallpaper-factory_0.8.5_amd64.deb treeland-examples_0.8.5_amd64.deb treeland-dev_0.8.5_amd64.deb

同样,任何依赖错误都用 sudo apt --fix-broken install -y 修复。
5. 重启并进入 Treeland 环境
bash
复制
下载

sudo reboot

重启后,在登录界面输入密码之前:

    寻找屏幕右下角/右上角的桌面环境切换图标(⚙️齿轮或显示器图标)。

    点击后选择 Treeland (Wayland)。

    输入密码登录。

如果一切正常,你会进入全新的 Treeland 桌面。
6. 故障恢复与卸载

如果登录后发现黑屏、死机或异常:

    同时按下 Ctrl + Alt + F2 切换到纯文本终端。

    输入你的用户名和密码登录。

    执行以下命令卸载所有 Treeland 相关组件:
    bash
    复制
    下载

    sudo apt remove -y treeland treeland-data treeland-wayland-session treeland-wallpaper-factory treeland-examples treeland-dev
    sudo apt remove -y ddm libddm libddm-dev treeland-protocols

    重启:
    bash
    复制
    下载

    sudo reboot

    在登录界面选回原来的桌面(DDE 或 Deepin 桌面)即可恢复。

7. 常见问题 (FAQ)

Q:为什么运行 debuild 提示 fakeroot not found?
A:执行 sudo apt install -y fakeroot 安装即可。

Q:sudo apt build-dep . 报缺少 libddm-dev 等包。
A:说明你没有先编译安装 treeland-protocols 和 ddm。请严格按照第 3 节顺序操作。

Q:编译 Treeland 时出现大量 Qt 或 wlroots 相关错误。
A:尝试补装开发包:
bash
复制
下载

sudo apt install -y qt6-base-private-dev libwayland-dev libpixman-1-dev libudev-dev libinput-dev libxkbcommon-dev libdrm-dev libgbm-dev libegl1-mesa-dev libgles2-mesa-dev

Q:能不能不开启开发者模式?
A:不行,因为你必须修改 /usr 下的内容,Deepin 25 的不可变系统设计强制要求开启开发者模式。

Q:编译需要多少磁盘空间?
A:所有源码和编译产物约 2~4 GB。建议预留 5 GB 以上可用空间。
8. 附录:编译其他组件(如 deepin-screen-recorder)

步骤完全相同,例如编译新版录屏工具:
bash
复制
下载

cd ~
git clone https://github.com/linuxdeepin/deepin-screen-recorder.git
cd deepin-screen-recorder
git checkout 6.6.32            # 切换到想要版本(可选)
sudo apt build-dep . -y
debuild -us -uc -b
cd ..
sudo dpkg -i deepin-screen-recorder_6.6.32_*.deb

若想恢复到系统仓库版本,只需:
bash
复制
下载

sudo apt install deepin-screen-recorder=6.6.30   # 指定原版本号

祝你编译顺利,体验全新的 Treeland 桌面环境!
Reply Favorite View the author
All Replies
qq4945286
deepin
7 hours ago
#1

截图直接用微信的,微信截图可以使用

Reply View the author
qq4945286
deepin
7 hours ago
#2

也可以到阿里云盘下载我编译好的:treeland0.8.5 https://www.alipan.com/s/tvjuWXRciSD 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。

Reply View the author
剑风澜
deepin
6 hours ago
#3

sudo nano debian/control 找到包含 libmpv-dev 的行,在前面加上 # 注释掉。 Y

那个.......nano的保存方法是:Crtl+O → 回车保存。按 Ctrl+X →回车退出。

tail

Reply View the author
jiutian123
deepin
5 hours ago
#4

非常棒,感谢like

Reply View the author
mozixun
Moderator
4 hours ago
#5

不是你咋真用上了(

没遇到崩溃嘛, 我这边还在日用treeland-fix分支的treeland测崩溃

Reply View the author
qq4945286
deepin
4 hours ago
#6
mozixun

不是你咋真用上了(

没遇到崩溃嘛, 我这边还在日用treeland-fix分支的treeland测崩溃

极少崩溃,就是没有截图录屏有时不方便

Reply View the author
mozixun
Moderator
4 hours ago
#7
qq4945286

极少崩溃,就是没有截图录屏有时不方便

录屏用GPU Screen Recorder

截图通过flatpak装Gradia

Reply View the author
qq4945286
deepin
4 hours ago
#8
mozixun

录屏用GPU Screen Recorder

截图通过flatpak装Gradia

好的

Reply View the author
剑风澜
deepin
4 hours ago
#9

前2项很容易完成,编译 Treeland报错比较多。

在豆包引导下编译成功了。

AMD 8700G 平台。

/////////////////////////////////////////////////////////////////////////

改动1:nano debian/rules

#!/usr/bin/make -f

强制单线程,彻底解决 ninja -j16 报错

export DEB_BUILD_OPTIONS=parallel=1

%: dh $@ --buildsystem=cmake

强制使用单线程

ninja override_dh_auto_build:

dh_auto_build -- ninja -j1 -v

改动2:添加依赖ninja-build

改动3:注释 usr/bin/test* :

debian/treeland-examples.install

#usr/bin/test*

///////////////////////////////////////////////////////////////////////////////

shamed

常见问题与避坑(之前遇到的都在这)

  1. ninja: error: loading 'build.ninja': No such file or directory
    • 原因:debian/rules 被改坏,跳过了 CMake 生成步骤
    • 解决:用上面的标准 rules,再清理 + 重编
  2. 依赖找不到(treeland-protocols/libddm-dev)
    • 原因:未加 deepin 25 社区源
    • 解决:按第三节添加社区源后再 build-dep
  3. 编译内存溢出 / 崩溃
    • 解决:用 parallel=1 单线程编译
  4. 与 qwlroots/waylib 冲突
    • Treeland 会替换这两个包,安装时会自动卸载,正常现象
Reply View the author
流星追月
deepin
3 hours ago
#10

现在大神不断出现,好事情,加快速度实现渲染框架的完善。

Reply View the author
剑风澜
deepin
3 hours ago
#11

编译成功,登录后只有背景,无图标、状态栏,无法用快捷键唤起终端等。

tty能进shamed
image.png
image.png

Reply View the author
qq4945286
deepin
2 hours ago
#12
剑风澜

编译成功,登录后只有背景,无图标、状态栏,无法用快捷键唤起终端等。

tty能进shamed
image.png
image.png

没有背景你少了这个没有编译treeland-wallpaper-factory_0.8.5_amd64.deb,看到你编译已经有这个,是不是没有安装。其实豆包做这种事没有deepseek好,前面用豆包折腾了很久,今天用deepseek基本没有什么折腾。下面是我给deepseek的要求:

你能帮我编译https://gitee.com/LFRon/treeland-fix-mirror
我用的是deepin25系统,现在要把它编译安装到deepin25系统上,
请给出详细的步骤,我是小白,越详细越好

再结合这个帖子的评论https://bbs.deepin.org.cn/zh/post/297610
来给我详细的部署步骤,
步骤要非常的详细。

Reply View the author
qq4945286
deepin
2 hours ago
#13
剑风澜

编译成功,登录后只有背景,无图标、状态栏,无法用快捷键唤起终端等。

tty能进shamed
image.png
image.png

011.png

这是我编译和安装的包,除了截图录屏了个不用,是试一下编译截图录屏最新版看可不可以用,发现一样不能用

Reply View the author
剑风澜
deepin
an hour ago
#14
qq4945286

没有背景你少了这个没有编译treeland-wallpaper-factory_0.8.5_amd64.deb,看到你编译已经有这个,是不是没有安装。其实豆包做这种事没有deepseek好,前面用豆包折腾了很久,今天用deepseek基本没有什么折腾。下面是我给deepseek的要求:

你能帮我编译https://gitee.com/LFRon/treeland-fix-mirror
我用的是deepin25系统,现在要把它编译安装到deepin25系统上,
请给出详细的步骤,我是小白,越详细越好

再结合这个帖子的评论https://bbs.deepin.org.cn/zh/post/297610
来给我详细的部署步骤,
步骤要非常的详细。

我的是只有背景tail

Reply View the author
剑风澜
deepin
an hour ago
#15
qq4945286

011.png

这是我编译和安装的包,除了截图录屏了个不用,是试一下编译截图录屏最新版看可不可以用,发现一样不能用

😂

Reply View the author