最近我想在一台 Ubuntu Server 26.04 daily/current 的机器上补一个轻量图形环境,目标其实很简单:
- 本地可以进入桌面
- 远程可以通过 XRDP 登录
- 尽量别装一整套很重的桌面发行版环境
- 整个过程尽量可复线,而不是“玄学修好”
最开始我以为这会是一件很顺手的小事:装个 lxqt-core,补个显示管理器,再装个 xrdp,应该就差不多了。
结果真动手之后发现,事情没那么简单。
这篇文章就把整个过程完整记下来:我执行了什么命令、为什么这么做、预期是什么、实际结果是什么,以及最后怎么把它跑通。
先说结论:
在 Ubuntu 26.04 daily/current(20260415) 上,直接执行
apt install lxqt-core,会遇到lxqt-panel和lxqt-branding-debian对同一个文件的冲突。不知道几天后的 Final 版本 Ubuntu 26.04 是否还有该问题。
这个问题可以稳定复现,也可以稳定绕过。绕过之后,再补xserver-xorg、sddm、xrdp、xorgxrdp,最终可以得到一套本地和远程都可用的 LXQt 环境。
为什么我不想直接装 lubuntu-desktop
先说一下动机。
很多人遇到这种需求,第一反应通常是:
sudo apt install lubuntu-desktop
这当然不是错的,而且大概率也能用。但这不是我这次想走的路线。
ubuntu-desktop:最省心,但也最重
如果装的是 ubuntu-desktop,那基本就是把完整 Ubuntu 桌面体验整套搬过来。
优点是省心,缺点也很明显:
- 体积大
- 依赖多
- 服务多
- 对原本就是 Server 的机器来说,有点过量
lubuntu-desktop:轻一点,但还是“整套桌面发行版体验”
lubuntu-desktop 确实比 ubuntu-desktop 轻,但它本质上仍然是一个发行版级别的任务包。
它的目标不是“给我一个最小可用的 LXQt”,而是“尽量把 Lubuntu 的完整体验带上”。
这通常意味着:
- 更多推荐包
- 更多主题和外观定制
- 更多应用程序
- 更多你在 Server 场景下其实不一定需要的东西
lxqt-core:理论上更接近我的目标
我一开始真正想试的是 lxqt-core,因为它看起来更像是:
给我一套 LXQt 核心桌面,而不是直接塞给我一个完整发行版桌面。
不过这次实验也让我意识到,lxqt-core 在 Ubuntu 26.04 daily 当前仓库里的行为,并没有想象中那么“极简”。
它实际会拉进非常多依赖。APT 的安装摘要里,安装规模直接到了:
Summary:
Upgrading: 0, Installing: 617, Removing: 0, Not Upgrading: 0
Download size: 327 MB
Space needed: 1,187 MB / 55.0 GB available
也就是说,lxqt-core 并不是“只装几个核心组件”的超小集合。
但它仍然比直接上 lubuntu-desktop 更符合我这次的目的:用尽量可控的方式,在 Server 上补一个能用的轻量桌面。
这几个包到底分别是干什么的
在正式开始之前,先把几个关键包的角色说清楚。不然后面很容易看着命令很熟,其实不知道谁负责什么。
lxqt-core
这是 LXQt 的核心元包。
按当前仓库行为,它会拉进不少东西,比如:
lxqt-panellxqt-sessionpcmanfm-qtxfwm4- 图标主题
- 以及会推荐
lxqt-branding-debian
所以它不是“只装一个 panel 和 session”的极简集合,而是一套比较完整的 LXQt 运行基础。
xserver-xorg
这是 Xorg 图形服务器。
没有它,就算你已经装了 LXQt 会话,也可能根本没有真正的图形显示服务,系统里甚至不会有 /usr/bin/X。
sddm
这是显示管理器,也就是图形登录界面。
装上它之后,重启机器,通常就会看到图形化登录窗口。
xrdp
这是 XRDP 服务本体,用来提供远程桌面登录能力。
xorgxrdp
这是 XRDP 的 Xorg backend。
因为我本地桌面本来就是 Xorg 路线,所以远程桌面也直接走 xorgxrdp 最自然。
实验环境
这次测试环境很简单:
- 基础镜像:Ubuntu Server 26.04 daily/current
- 从干净系统开始
- 目标:安装 LXQt,本地可登录,XRDP 可远程
这一点很重要,因为后面出现的问题,基本可以确认是当前仓库行为,而不是“机器以前折腾脏了”。
第一步:直接安装 lxqt-core
我先走最直接的路线:
sudo apt update
sudo apt install lxqt-core
为什么先这样做
因为这一步最能直接验证三件事:
lxqt-core当前到底会拉哪些包- 它能不能在 Ubuntu 26.04 daily 上直接装成功
- 如果失败,问题到底是依赖不全,还是仓库本身有冲突
我的预期
我原本以为:
- 会安装不少 LXQt 组件
- 最终得到一套接近可用的桌面环境
- 至少不应该在干净系统上直接报错中断
实际结果
APT 给出的安装摘要很大,节选如下:
Installing:
lxqt-core
Installing dependencies:
...
lxqt-branding-debian
...
lxqt-panel
...
lxqt-session
...
pcmanfm-qt
...
xfwm4
...
Summary:
Upgrading: 0, Installing: 617, Removing: 0, Not Upgrading: 0
Download size: 327 MB
Space needed: 1,187 MB / 55.0 GB available
这一步至少说明了两件事:
第一,lxqt-core 并不算特别小。
第二,它会同时把 lxqt-panel 和 lxqt-branding-debian 带进来,而这正是后面冲突的关键。
真正的坑:lxqt-panel 和 lxqt-branding-debian 文件冲突
安装进行到一半时,APT 直接停住,报了这样一个错误:
Preparing to unpack …/lxqt-panel_2.3.2-0ubuntu1_amd64.deb…
Unpacking lxqt-panel (2.3.2-0ubuntu1)…
dpkg: error processing archive .../lxqt-panel_2.3.2-0ubuntu1_amd64.deb (--unpack):
trying to overwrite '/etc/xdg/lxqt/panel.conf', which is also in package lxqt-branding-debian (0.14.0.7)
这一步为什么关键
因为它说明问题不是“缺某个依赖”,也不是“包没找到”,而是一个更明确的情况:
当前仓库里,这两个包都试图安装同一个文件,
dpkg不允许这么做,于是安装中断。
这属于文件冲突,而不是普通的依赖不满足。
我怎么确认根因
后面我又跑了几条确认命令:
apt-cache policy lxqt-core lxqt-panel lxqt-branding-debian
apt-cache depends lxqt-core
dpkg -S /etc/xdg/lxqt/panel.conf
结论很清楚:
lxqt-core依赖lxqt-panellxqt-core推荐lxqt-branding-debian/etc/xdg/lxqt/panel.conf归属于lxqt-branding-debian
也就是说,当前 Ubuntu 26.04 daily 的仓库里,这条安装路径确实会把两个会冲突的东西一起拉进来。
而且这不是旧系统残留导致的,在干净环境下也能复现。
为什么当时系统看起来像“坏了”
冲突发生之后,我去检查系统状态,看到的是一堆让人很容易误判的信息。
比如:
ls: cannot access '/usr/bin/X': No such file or directory
ls: cannot access '/usr/lib/xorg/Xorg': No such file or directory
Unit sddm.service could not be found.
iU lxqt-core ...
iU lxqt-session ...
iU pcmanfm-qt ...
iU xfwm4 ...
这些现象说明什么
这不是说 LXQt 本身不行,也不是说 lxqt-core 太残缺。
真正的原因是:
安装被
dpkg中途打断了,后续很多图形栈根本还没来得及安装完成。
所以你会看到:
/usr/bin/X没有/usr/lib/xorg/Xorg没有sddm.service也不存在- 很多包状态变成
iU(已解包但未配置完成)
这时候系统看起来像坏了,但其实它只是停在了一个“半安装状态”。
绕过当前仓库问题:用 --force-overwrite
既然已经确认是文件冲突,那么最直接的办法就是:允许覆盖那个冲突文件,让安装继续走下去。
我执行的是:
sudo apt -o Dpkg::Options::="--force-overwrite" install lxqt-core lxqt-panel
sudo apt -o Dpkg::Options::="--force-overwrite" -f install
为什么这么做
因为眼下的问题不是缺包,而是:
dpkg认为两个包都拥有/etc/xdg/lxqt/panel.conf- 不允许覆盖,安装就会一直卡住
- 允许覆盖之后,APT 才能继续把整个系统收敛到正常状态
我的预期
这一步我希望达到的效果是:
lxqt-panel能顺利解包- 之前卡住的半安装包继续完成配置
- 系统从“坏中间态”回到“能继续安装”的状态
实际结果
这一步确实起作用了,关键输出类似这样:
Unpacking lxqt-panel (2.3.2-0ubuntu1)…
dpkg: warning: overriding problem because --force enabled:
dpkg: warning: trying to overwrite '/etc/xdg/lxqt/panel.conf', which is also in package lxqt-branding-debian (0.14.0.7)
也就是说,当前 daily 下,这个 workaround 是有效的。
这里要强调一下:
这不是一个“优雅的长期官方方案”,它更像是当前仓库状态下的实用绕过方法。如果后面仓库修了打包问题,这一步理论上就不需要了。
补齐图形栈:安装 Xorg 和 SDDM
前面的冲突解决之后,我继续把图形栈补齐:
sudo apt install xserver-xorg sddm
sudo reboot
为什么这一步还要单独做
因为前面安装被打断时,系统里根本还没有完整的图形基础设施。
想让本地真正进入图形界面,至少需要两样东西:
xserver-xorgsddm
我的预期
我希望这一步之后能看到:
/usr/bin/X出现/usr/lib/xorg/Xorg出现sddm.service正常运行- 重启后能看到图形登录界面
实际结果
安装完成后,我做了几个检查:
ls -l /usr/bin/X /usr/lib/xorg/Xorg
systemctl status sddm --no-pager -l
dpkg --audit
得到的关键信息类似这样:
lrwxrwxrwx 1 root root 4 ... /usr/bin/X -> Xorg
-rwxr-xr-x 1 root root ... /usr/lib/xorg/Xorg
● sddm.service - Simple Desktop Display Manager
Active: active (running)
...
/usr/lib/xorg/Xorg -nolisten tcp ...
这说明几件事都已经成立:
- Xorg 装上了
- SDDM 也正常工作
- 系统已经具备进入图形登录界面的条件
登录界面看起来不像 LXQt,并不代表装错了
这一点其实挺容易误判的。
我当时看到的登录界面样式,并不是印象里很典型的 LXQt/Lubuntu 风格,反而有点像别的桌面主题。
但这并不表示 LXQt 没装好。
原因很简单:你看到的是 SDDM 的主题,不是 LXQt 桌面本身的主题。
也就是说:
- 登录器长什么样,是 SDDM 主题决定的
- 登录后进什么桌面,是会话选择和桌面环境决定的
这两件事不是一回事。
真正登录之后,LXQt 是能正常工作的
输入密码后,系统成功进入了 LXQt 桌面。
这一步非常关键,因为它证明前面的 workaround 不是“勉强把包骗过去”,而是真的得到了一套能用的桌面。
我看到的效果包括:
- 桌面正常
- 背景正常
- 面板正常
- 通知正常
到这里基本可以确认:
虽然默认安装路径会撞到仓库 bug,但绕过之后,最终结果是可用的。
XRDP:远程桌面这条线反而很顺
本地图形桌面跑起来之后,我继续测试 XRDP:
sudo apt install xrdp xorgxrdp
为什么这一步这么做
因为我的目标并不只是“本地有桌面”,还包括:
- Windows 自带远程桌面能连
- 远程进去后看到的是 LXQt
- 不用为了远程桌面再引入更重的桌面环境
既然本地已经走的是 Xorg 路线,那么 XRDP 也直接用 xorgxrdp 这套 backend 最自然。
我的预期
这一步的预期很明确:
xrdp服务起来- 远程连接成功
- 登录后进入 LXQt
实际结果
实际情况比想象中还简单。
这一步基本就是:
sudo apt install xrdp xorgxrdp
装完就能用。
远程登录之后,拿到的是一套可用的 LXQt 桌面。
对我这种“Server 上补轻量桌面”的需求来说,这就是很理想的结果。
当前这套方案的可复线安装流程
如果现在让我重新从一台干净的 Ubuntu Server 26.04 daily/current 开始装一遍,我会直接按下面的顺序来。
1)更新软件源
sudo apt update
为什么这么做:
确保 APT 索引是最新的。
预期结果:
APT 能看到当前仓库中的最新包版本。
2)安装 LXQt,并绕过当前 panel.conf 冲突
sudo apt -o Dpkg::Options::="--force-overwrite" install lxqt-core lxqt-panel
sudo apt -o Dpkg::Options::="--force-overwrite" -f install
为什么这么做:
当前仓库下,lxqt-core 会把 lxqt-panel 和 lxqt-branding-debian 一起拉进来,而这两个包会对 /etc/xdg/lxqt/panel.conf 发生冲突。
预期结果:
允许 lxqt-panel 覆盖该文件,让 APT 能继续完成收敛。
3)补齐本地图形栈
sudo apt install xserver-xorg sddm
为什么这么做:
要让本地图形登录真正起来,必须有 Xorg 和显示管理器。
预期结果:
/usr/bin/X存在/usr/lib/xorg/Xorg存在sddm.service正常运行
4)安装 XRDP
sudo apt install xrdp xorgxrdp
为什么这么做:
提供远程桌面服务,并让 XRDP 走 Xorg backend。
预期结果:
RDP 登录后进入 LXQt 桌面。
5)重启系统
sudo reboot
为什么这么做:
让图形栈、显示管理器和用户会话都从干净状态启动。
预期结果:
- 本地出现图形登录界面
- 登录后进入 LXQt
- XRDP 可以正常连接
安装完成后,我建议至少检查这三项
1)图形栈是否已经存在
ls -l /usr/bin/X /usr/lib/xorg/Xorg
预期:
/usr/bin/X指向Xorg/usr/lib/xorg/Xorg存在
2)SDDM 是否正在运行
systemctl status sddm --no-pager -l
预期:
active (running)
3)包管理状态是否已经收敛
dpkg --audit
预期:
没有输出。
如果这三项都正常,本地桌面能进,XRDP 也能连,那这套环境基本就算装稳了。
FAQ / 排障附录
FAQ 1:为什么不直接装 lubuntu-desktop?
因为这次的目标不是“把 Server 变成一整套 Lubuntu 桌面发行版”,而是:
- 在 Server 上补一个轻量图形环境
- 本地能登录
- XRDP 能远程登录
- 尽量控制安装内容
lubuntu-desktop 当然可以用,但它带来的东西会更多,不完全符合这次“尽量轻、尽量可控”的目标。
FAQ 2:lxqt-core、lubuntu-desktop、ubuntu-desktop 可以怎么理解?
可以粗暴理解成三层:
ubuntu-desktop
完整 Ubuntu 桌面。
最省心,也最重。
lubuntu-desktop
完整 Lubuntu 桌面。
比 Ubuntu Desktop 轻,但仍然是发行版级任务包。
lxqt-core
LXQt 核心元包。
理论上更适合在 Server 上按需补桌面,但当前 Ubuntu 26.04 daily 仓库里会遇到文件冲突问题。
FAQ 3:为什么 apt install lxqt-core 会失败?
因为当前仓库里存在一个文件冲突。
报错核心是:
trying to overwrite '/etc/xdg/lxqt/panel.conf', which is also in package lxqt-branding-debian (0.14.0.7)
根因不是依赖不满足,而是:
lxqt-core会拉入lxqt-panel- 同时还会带进
lxqt-branding-debian - 这两个包都涉及
/etc/xdg/lxqt/panel.conf dpkg不允许它们直接覆盖同一个文件
所以安装会被中断。
FAQ 4:为什么冲突发生后系统看起来像坏掉了一样?
因为安装被 dpkg 中途打断,系统停在了半安装状态。
这会导致:
/usr/bin/X不存在/usr/lib/xorg/Xorg不存在sddm.service也还没装出来- 很多包停在
iU状态
这时候容易误以为“LXQt 不完整”或者“还缺很多包”,但这些都只是安装中断后的表象。
根因还是前面的文件冲突。
FAQ 5:为什么这里要用 --force-overwrite?会不会太暴力?
会,这确实是一个 workaround,不是长期最优雅的解法。
但在当前 Ubuntu 26.04 daily 仓库状态下,它是最直接、最可复线、最有效的办法。
我用的是:
sudo apt -o Dpkg::Options::="--force-overwrite" install lxqt-core lxqt-panel
sudo apt -o Dpkg::Options::="--force-overwrite" -f install
它的作用不是“乱修系统”,而是明确告诉 dpkg:
这个文件冲突我知道了,请继续,让安装完成。
如果后面仓库修了,这一步理论上就不再需要了。
FAQ 6:为什么后面还要单独安装 xserver-xorg 和 sddm?
因为前面的安装是在图形栈完全装好之前就被打断了。
所以即使你已经执行过 apt install lxqt-core,也不意味着系统里已经有:
XorgSDDM- 图形登录界面
这就是为什么我后面还要手动执行:
sudo apt install xserver-xorg sddm
FAQ 7:登录界面看起来不像 LXQt,是不是装错了?
通常不是。
你看到的登录界面是 SDDM 的主题,而不是 LXQt 桌面的主题。
所以登录器长得不像 LXQt,不代表你登录进去之后不是 LXQt。
判断标准很简单:
输入密码之后进的是什么桌面,才是关键。
FAQ 8:为什么最终还要装 xrdp 和 xorgxrdp?
因为我的目标不只是本地能登录,还包括远程桌面。
sudo apt install xrdp xorgxrdp
xrdp:RDP 服务端xorgxrdp:XRDP 的 Xorg backend
由于本地本来就是 Xorg 路线,所以远程也直接走 Xorg backend 最顺。
FAQ 9:为什么不建议一开始就各种删配置、删包、强行修?
因为那样很容易把问题从“一个明确的仓库级冲突”,扩大成“整机状态已经不可信”。
如果目标是写一套能给别人复线的安装过程,最好的方式还是:
- 从干净系统开始
- 先复现问题
- 明确根因
- 给出最小 workaround
这样写出来的东西,别人照着做才有意义。
FAQ 10:当前这套方案最简明的安装流程是什么?
就是下面这一套:
sudo apt update
sudo apt -o Dpkg::Options::="--force-overwrite" install lxqt-core lxqt-panel
sudo apt -o Dpkg::Options::="--force-overwrite" -f install
sudo apt install xserver-xorg sddm
sudo apt install xrdp xorgxrdp
sudo reboot
它的特点是:
- 可复线
- 已在干净系统上验证
- 本地登录和 XRDP 都能兼顾
- 当前唯一比较特殊的地方,就是要绕过
panel.conf冲突
FAQ 11:怎么确认真的装好了?
至少看这三项:
ls -l /usr/bin/X /usr/lib/xorg/Xorg
systemctl status sddm --no-pager -l
dpkg --audit
判断标准分别是:
- Xorg 二进制存在
sddm处于active (running)dpkg --audit没有输出
再加上本地桌面能进、远程桌面能进,这套环境就基本可以认为是稳定可用了。
最后总结
这次踩坑最大的收获,其实不是“怎么装 LXQt”,而是确认了三件更重要的事:
第一,Ubuntu 26.04 daily/current 上,apt install lxqt-core 在干净系统里也会撞到当前仓库中的文件冲突。
第二,真正的根因是 lxqt-panel 和 lxqt-branding-debian 对 /etc/xdg/lxqt/panel.conf 的冲突。
第三,绕过这个问题之后,再补 xserver-xorg、sddm、xrdp、xorgxrdp,最终确实可以得到一套本地和远程都能正常使用的 LXQt 桌面。
如果只用一句话总结这次折腾,那就是:
这不是 LXQt 本身不行,而是当前 Ubuntu 26.04 daily 仓库里这条安装路径有个坑;跨过去之后,整套方案其实是能稳定跑通的。
* 使用 gpt-5.4 thinking 辅助调试及编写。