首页 / 资讯中心 / 文章详情

Ubuntu 26.04 命令行安装 GNOME 桌面与远程桌面实战

Ubuntu 26.04 命令行安装 GNOME 桌面与远程桌面实战 ★ FEATURED ARTICLE
上周接手一台只剩命令行界面的机器系统是 Ubuntu 26.04 的最小化镜像没有 X、没有显示管理器开机就是一个 tty 登录框。需求很朴素把这台机器变成一台能正常用的图形工作站。听起来像是apt install ubuntu-desktop一条命令的事但我前后折腾了三轮才把它调到“能长期用”的状态——第一轮装完黑屏第二轮装完没有中文输入法第三轮才发现远程桌面和 Wayland 打架。所以这篇就把 Ubuntu 26.04 上安装 GNOME 桌面这件事从头到尾拆开讲清楚哪个元包该选、装之前要核对什么、装完第一眼看到的桌面为什么是“半残”的、以及出问题之后按什么顺序排查。不管你是刚接触 Linux 桌面、想给云主机配个图形界面还是老手想确认 26.04 这代有什么变化下面这些内容都能直接拿去用。1. 先搞清楚你要装的到底是“哪个 GNOME”很多人踩的第一个坑不是命令写错而是根本没分清ubuntu-desktop、ubuntu-desktop-minimal和裸gnome元包的区别装完发现要么多了一堆用不上的软件要么缺了半套系统组件。这一步想清楚后面能省掉大量返工。1.1 Ubuntu 26.04 这一代的 GNOME 基线在哪Ubuntu 的 LTS 版本通常会锁定一个 GNOME 大版本并在整个支持周期内做小版本跟进。按过往节奏推算26.04 大概率会落在 GNOME 49 到 50 这一代区间桌面本身的交互逻辑和你熟悉的 22.04、24.04 差别不算大顶栏、活动概览、Workspace 横向排列、扩展走gnome-shell-extension那套机制。真正的变化往往藏在细节里比如默认会话是不是纯 Wayland、GDM 的登录界面有没有换成新版 greeter、Settings 里某些面板有没有被拆出去。这意味着两件事。第一你在网上搜到的老教程大概率还是能用的apt包名没变、gdm3配置文件路径没变、/etc/gdm3/custom.conf里的WaylandEnable开关还在。第二涉及“新版 GNOME 特有行为”的部分比如扩展兼容性、gsettings某些 key 的默认值就必须以你机器上实际的版本为准别照抄别人的截图。我一般会在装之前先跑一条命令确认基线apt-cache policy gnome-shell | head -n 5如果系统还没装 GNOME这条命令只会告诉你候选版本号。装完之后再跑同样的命令就能看到实际落地的版本两者对照一下心里就有数了。另外补一句26.04 是 LTS桌面相关包会跟着点版本更新走完整支持周期所以不用担心装了个“一次性”的桌面环境。这也是我倾向于用官方元包而不是第三方源的原因——升级路径是通的。1.2 三个元包的实际差异别凭感觉选元包metapackage本质是一个“依赖清单”本身没有实际程序靠依赖关系把一堆包拉进来。Ubuntu 这边主要三个选项差异比想象中大元包大致包含内容装完占用适合场景ubuntu-desktopGNOME 全套 办公套件 若干多媒体与工具软件约 5–7 GB当主力桌面机用希望开箱即用ubuntu-desktop-minimalGNOME 核心 基础系统工具去掉办公与娱乐软件约 2.5–3.5 GB云主机、虚拟机、只要图形界面不要杂物gnome/ 裸装若干包只有上游 GNOME 组件不含 Ubuntu 定制集成约 1.5–2.5 GB想自己控制每一个组件折腾型用户第三行那个“裸装”路线要特别提醒只装gnome-shell和gnome-session是能进桌面的但你会发现没有网络管理面板、没有声音图标、没有电源管理甚至窗口管理器行为都怪怪的。因为 Ubuntu 的桌面体验是一堆集成包协作出来的ubuntu-desktop-minimal帮你把这些“胶水”都配齐了。除非你明确知道自己缺什么否则不建议从裸 GNOME 起步。我个人的默认选择是ubuntu-desktop-minimal然后按需补软件。理由很实在桌面环境本身该有的它都有多余的办公套件在服务器场景下纯属占地方而且少装几百个包意味着少几百个需要更新的对象。1.3 桌面镜像和“命令行装桌面”不是一回事有人会问直接下桌面版 ISO 重装不是更省事在物理机上确实如此但在两种场景下你没法重装——云主机只给你一个最小镜像或者机器上有数据不能动。这时候命令行装桌面就是唯一路径。但两者结果确实有细微差别。桌面版 ISO 在安装阶段就做了几件事预先配置好 GDM 的自启动、写入默认的gsettings值、配置好netplan到 NetworkManager 的接管、装好显卡驱动和固件。命令行装桌面时这些大部分会被包的 postinst 脚本自动完成但显卡驱动和固件往往需要你手动补一刀——这是后面第三节要重点说的。提示如果你在云主机上操作先确认厂商的控制台是否支持图形输出。有些平台的 VNC 控制台只转发文本模式装完桌面你也看不到画面这种就得直接走远程桌面方案别在本地折腾。2. 动手前必须核对的四件事安装命令本身一行就够但准备工作没做对后面每一步都是坑。这四件事我每次都会过一遍总共花不了五分钟。2.1 软件源是否完整直接决定你能不能装全Ubuntu 从 24.04 开始把传统的一行式sources.list换成了 deb822 格式的/etc/apt/sources.list.d/ubuntu.sources26.04 延续这个做法。这个文件里最关键的是Components那一行必须包含main restricted universe multiverse四个组件。universe缺失的话一大堆桌面相关包会直接“找不到”。grep -A3 ^Types /etc/apt/sources.list.d/ubuntu.sources看到类似Components: main restricted universe multiverse就没问题。如果只有main手动补上再apt update。还有一种常见情况是镜像源配置了但没生效——比如你在云厂商环境里默认源指向内网镜像速度很快但偶尔同步滞后装大包的时候会报 hash 不匹配。这种报错不用慌换个时间段重试或者临时注释掉内网源走官方源。顺便检查一下有没有残留的第三方源。曾经在别人的机器上见过一个很久以前加的 PPA 导致整个apt update失败进而让安装命令直接不执行。装桌面这种大动作之前先把源列表清干净。2.2 磁盘空间怎么估算别装到一半满盘这是最容易翻车的地方。ubuntu-desktop下载量大概 1.5–2 GB解压安装后膨胀到 5–7 GB再加上/var/cache/apt里的 deb 缓存峰值可能逼近 10 GB。ubuntu-desktop-minimal相对友好但也要预留 5 GB 以上的余量。df -h / /var我习惯的要求是根分区至少剩 12 GB 才动手装完整版剩 6 GB 以上才装 minimal 版。低于这个数先清缓存sudo apt clean sudo journalctl --vacuum-size100Mjournalctl那条经常能捞出好几个 G长期运行的机器日志能堆到离谱的程度。另外提醒一句如果你挂载了/var独立分区装包会消耗那里如果/var/cache/apt空间不够apt 会直接失败并留下半安装状态处理起来比空间不足本身麻烦得多。2.3 显卡和会话类型Wayland 还是 XorgGNOME 默认用 Wayland 会话这是趋势也是很多“装完黑屏”问题的根源。分情况说Intel 核显和 AMD 显卡基本没问题开源驱动成熟Wayland 跑得很稳。NVIDIA 独显就要看驱动版本了专有驱动在 Wayland 下的表现这些年改善很大但在某些老卡或者混合显卡笔记本上仍会出状况。虚拟机的虚拟显卡比如 QEMU 的 virtio-gpu、VMware 的 SVGA在 Wayland 下也偶尔会有分辨率识别不准的问题。我的做法是先装进不去再切 Xorg而不是一上来就关 Wayland。切换方法在第三节给。但如果你明确知道自己用的是老 N 卡或者机器是虚拟机可以提前准备好这个开关省得黑屏之后手忙脚乱。装驱动本身也有讲究。ubuntu-drivers这套工具在 26.04 上还在sudo ubuntu-drivers devices sudo ubuntu-drivers install第二条命令会自动挑推荐版本的驱动装上。注意这一步要在装桌面之后做因为驱动包的 postinst 需要 DKMS 和内核头文件而ubuntu-desktop-minimal会把linux-headers-generic一并拉进来顺序反了容易报编译失败。2.4 用户权限和 root 登录的问题这条很多人忽略GNOME 的 GDM 默认禁止 root 直接图形登录/etc/gdm3/custom.conf里有对应配置。如果你习惯用 root 操作装完桌面会发现自己登不进去以为是装坏了。正确的做法是确保有一个普通用户并且在sudo或adm组里id youruser groups youruser如果当前只有 root先建一个useradd -m -s /bin/bash demo passwd demo usermod -aG sudo demo后面所有桌面相关操作都用这个用户登录需要提权时sudo。这不只是习惯问题很多桌面组件比如用户级的gsettings、扩展目录~/.local/share/gnome-shell/extensions都是按用户维度存配置的root 会话跑起来会有各种权限错乱。3. 从 apt 命令到看见登录界面准备工作做完真正的安装流程其实很短。但“短”不等于“顺利”这一节把命令和每一步的意图都说清楚同时给出卡住时的判断依据。3.1 更新索引与选择元包安装第一步永远是更新索引。别跳过尤其是刚拿到的机器索引可能是几个月前的快照直接装会拉到旧版本包后面升级又是一轮折腾。sudo apt update sudo apt upgrade -yupgrade这一步在全新机器上可以省但在已经跑了一段时间的系统上强烈建议做——避免出现“桌面包装好了但依赖的基础库版本不匹配”的情况。然后安装。以最小化桌面为例sudo apt install -y ubuntu-desktop-minimal这条命令会拉几百个包下载量视源速度而定慢的时候十分钟以上。中途不要 CtrlCapt 的锁机制虽然能恢复但半安装状态处理起来要额外跑dpkg --configure -a。如果你用的是按流量计费的环境先跑一次apt install --simulate ubuntu-desktop-minimal看看总量心里有个底。安装过程中会弹出一个 debconf 界面问你默认的显示管理器选哪个。选项通常是gdm3和lightdm选gdm3——它是 GNOME 的官方配套集成度最高。如果误选了别的后面可以用sudo dpkg-reconfigure gdm3改回来。还有一类交互是 tzdata、keyboard-configuration 这类包的配置提示直接回车用默认值即可装完在设置里还能改。3.2 gdm3 的配置文件该改什么装完之后/etc/gdm3/custom.conf是第一个值得看一眼的文件。默认长这样注释略[daemon] #WaylandEnablefalse #AutomaticLoginEnable true #AutomaticLogin user1三个开关的用途WaylandEnablefalse强制走 Xorg 会话前面说的黑屏、花屏、输入法异常很多都能靠它绕过。AutomaticLoginEnable/AutomaticLogin自动登录家用单用户机器上很实用省去每次输密码。但服务器场景不建议开安全性上不划算。修改后需要重启 gdm3 生效sudo systemctl restart gdm3注意如果你当前就在图形界面的终端里操作这条命令会直接把你踢回登录界面未保存的工作会丢。稳妥点用sudo systemctl isolate multi-user.target切到文本模式再改改完sudo systemctl isolate graphical.target切回来。3.3 重启之后卡在黑屏或者停在 tty 怎么办这是最高频的求助场景。装完重启屏幕黑着按 CtrlAltF2 能切到 tty说明系统活着只是图形会话没起来。按这个顺序排查别乱试第一看 gdm3 服务状态。systemctl status gdm3 --no-pager如果显示failed接着看日志journalctl -u gdm3 -b --no-pager | tail -n 60关键词找Failed to start、no screens found、permission denied。no screens found基本就是显卡驱动或 Wayland 的问题直接改WaylandEnablefalse再重启。第二如果 gdm3 是active (running)但屏幕还是黑的问题可能在显示输出。物理机上检查显示器接的是不是独显接口有些主板核显被禁用虚拟机上检查控制台是否支持图形模式。第三确认graphical.target是不是默认目标。systemctl get-default正常应该输出graphical.target。如果是multi-user.target说明有东西把默认目标改掉了手动设回来sudo systemctl set-default graphical.target第四检查是否有残留的 Xorg 锁文件。非正常关机后/tmp/.X0-lock可能还在导致新会话起不来删掉重启。这四步覆盖了我遇到过的大部分黑屏场景。真正棘手的通常是驱动层面的那就得看dmesg | grep -i -E drm|nvidia|amdgpu里的报错按具体错误去查。3.4 装完怎么验证“装全了”别只看能不能进桌面有些组件缺失是进桌面之后才发现的。跑几条命令做个基础体检# 核心组件是否在位 dpkg -l | grep -E gnome-shell|gdm3|gnome-control-center|nautilus | awk {print $2, $3} # 会话列表 ls /usr/share/xsessions/ /usr/share/wayland-sessions/ # 关键服务 systemctl status NetworkManager --no-pager systemctl status gdm3 --no-pager第二条命令列出的会话文件决定了登录界面右下角那个齿轮里有哪些选项。正常应该能看到ubuntu.desktop可能还有ubuntu-xorg.desktop。如果只有一个说明对应会话的包没装全。NetworkManager这条很关键。最小化镜像装完桌面后网络管理经常还是systemd-networkd或netplan在管桌面右上角没有网络图标点都点不了。处理办法下一节细说。4. 第一次进桌面后必须补的几刀能登录进桌面只是及格线。真正决定这套环境“能不能用”的是登录之后十分钟内你会不会发现一堆东西不对劲。这一节按优先级排。4.1 中文环境和输入法不配好等于没法用默认装完是英文环境中文显示可能一堆方块。先补语言包和字体sudo apt install -y language-pack-zh-hans fonts-noto-cjk fonts-noto-cjk-extrafonts-noto-cjk是基础中文字体-extra那包体积不小几个 G但包含了更多字重和生僻字覆盖做文档排版的话值得装。只是日常使用的话基础包就够。输入法框架现在主流两个选择IBus 和 Fcitx5。GNOME 原生集成 IBus开箱即用但中文输入体验一般Fcitx5 配置更灵活词库和皮肤生态好但要手动接管。sudo apt install -y fcitx5 fcitx5-chinese-addons fcitx5-frontend-gtk3 fcitx5-frontend-qt5 im-config -n fcitx5装完注销重新登录才生效。然后在 Fcitx5 配置里添加“拼音”输入法。这里有个坑im-config写入的是用户级配置~/.xinputrc如果用sudo跑这条命令配置会写到 root 家目录当前用户不生效。去掉sudo再跑一次。切换到中文环境还有个细节/etc/default/locale里改成LANGzh_CN.UTF-8然后sudo locale-gen。但要注意把整个系统切成中文会让终端里的一些命令输出也变中文排查报错时反而不方便。我的习惯是系统语言保持英文只在需要的地方单独设中文——这样搜报错信息命中率更高。4.2 网络图标不见、声音没有、关机变重启这三个是典型的“装完桌面但服务没接管”症状成因各不同。网络图标消失多半是 NetworkManager 没接管网卡。检查systemctl status NetworkManager --no-pager nmcli device status如果nmcli列出的设备状态是unmanaged说明这块网卡被 netplan 或者其他工具占着。Ubuntu 服务器版的 netplan 配置里renderer通常写的是networkd。改成NetworkManagernetwork: version: 2 renderer: NetworkManager ethernets: eth0: dhcp4: true改完sudo netplan apply然后重启 NetworkManager。这一步会短暂断网远程操作的话提前准备好重连。没有声音先确认 PipeWire 或 PulseAudio 在跑systemctl --user status pipewire --no-pager如果提示Failed to connect to bus说明当前会话不是通过 systemd user session 启动的常见于手动startx起的会话。正常走 GDM 登录不会有这个问题。关机变重启或者电源菜单里没有“关机”选项一般是policykit权限或者systemd-logind的配置问题。检查/etc/systemd/logind.conf里的HandlePowerKey、HandleLidSwitch这些项以及当前用户是否在power组之外的正常状态。这类问题排查起来比较碎思路是先看journalctl -b | grep -i logind有没有拒绝记录。4.3 高分屏缩放和字体渲染笔记本高分屏在 GNOME 下的默认缩放经常不对要么字小得看不清要么界面元素大得离谱。GNOME 提供整数倍缩放100%、200%Wayland 会话下还支持分数缩放。设置路径在“设置 → 显示 → 缩放”或者用命令gsettings set org.gnome.mutter experimental-features [scale-monitor-framebuffer]开了这个实验特性缩放选项里才会出现 125%、150% 这些档位。改完注销重进生效。字体渲染方面如果觉得字发虚可以装gnome-tweaks包名gnome-tweaks调抗锯齿和提示hinting。中文字体在默认设置下有点“糊”把 hinting 设成slight、抗锯齿设成grayscale观感会好一些。这个纯属个人偏好多试几个组合。4.4 浏览器和日常软件的补装Ubuntu 的 Firefox 是 snap 分发的最小化系统装完桌面后第一次启动 Firefox 会触发 snap 下载几百兆的内容源慢的话能卡十几分钟很容易让人以为浏览器挂了。如果实在受不了可以换 deb 版的 Chromium 或者其他浏览器。snap list sudo snap refreshsnap list能看到哪些是 snap 包。加速的话检查snap的代理相关配置是否合理以及是否有可用的本地缓存。办公场景下ubuntu-desktop-minimal不带 LibreOffice需要单独装sudo apt install -y libreoffice-writer libreoffice-calc只装需要的组件别一把libreoffice全拉那套东西加起来一个多 G。5. 把桌面“搬”到远程无头机器上的图形方案云主机、机房里没有显示器的机器装完桌面也看不到。这时候要么走远程桌面协议要么用虚拟显示。这两条路差别很大别混。5.1 GNOME 自带的远程桌面GNOME 从 42 开始自带gnome-remote-desktop走 RDP 协议和 Windows 远程桌面客户端兼容。这是目前无头机器上最省事的方案。sudo apt install -y gnome-remote-desktop然后在“设置 → 系统 → 远程桌面”里打开设置用户名密码。命令行也可以配置grdctl rdp enable grdctl rdp set-credentials demo yourpassword这里有个关键限制GNOME 的 RDP 服务是用户级的必须在那个用户的图形会话已经启动的前提下才能连上。也就是说机器开机后必须有人在本地或通过自动登录登进桌面远程桌面才有画面。这和传统 VNC 那种“服务端常驻、随时连”的模式不一样。解决自动登录前面提过的/etc/gdm3/custom.conf里开AutomaticLogin。但机器重启后会自动登录安全性上要自己权衡。5.2 完全没有显示输出时的虚拟显示器如果机器连虚拟显卡都没有比如某些云主机只有串口控制台GDM 可能根本起不来。这时候需要造一个虚拟显示设备sudo apt install -y xserver-xorg-video-dummy然后写一份/etc/X11/xorg.conf指定虚拟分辨率和色深。这份配置的写法比较固定核心是Device段里用dummy驱动Monitor段里给一组Modeline。不过说实话纯虚拟显示的体验相当一般——没有硬件加速动窗口都卡。更实用的做法是直接上tigervnc-standalone-server之类能自建 framebuffer 的方案或者干脆接受“这台机器不需要图形界面”的事实。5.3 Wayland 会话下 RDP 的兼容性问题这是我在第三轮返工里踩的坑。GNOME 的 RDP 在 Wayland 会话下工作得很好但如果你因为显卡问题切到了 Xorg 会话gnome-remote-desktop的行为会变得不稳定有时能连上但黑屏有时直接拒绝连接。处理办法有两个要么回到 Wayland前提是显卡驱动 OK要么用x11vnc这种基于 Xorg 的方案替代。后者配置简单sudo apt install -y x11vnc x11vnc -storepasswd x11vnc -display :0 -auth guess -forever -shared-auth guess会自动找 Xorg 的授权文件省去手动指定路径的麻烦。这个方案在 Xorg 会话下很稳但在 Wayland 下完全不能用——因为 Wayland 的窗口内容对其它进程是不可见的。所以到底用哪套取决于你最终选的会话类型。6. 几个真实报错的排查链路理论和步骤讲再多不如看几个具体的失败现场。下面这三个是我在 26.04 上实际遇到的排查顺序可以照着复现。6.1 apt 中途断掉dpkg 卡在“需要配置”状态现象是下一次执行任何 apt 命令都报错E: dpkg was interrupted, you must manually run dpkg --configure -a to correct the problem.成因通常是安装过程中网络断了、磁盘满了或者你按了 CtrlC。处理链路sudo dpkg --configure -a sudo apt --fix-broken install第一条跑完会尝试把每个处于half-configured状态的包配置完。如果卡在某个包上不动看具体是哪个dpkg -l | grep -E ^i[^i]|^.[^i] | head -n 20第二列不是ii的就是状态异常的包。针对单个包可以sudo dpkg --remove --force-remove-reinstreq 包名 sudo apt install 包名--force-remove-reinstreq是有风险的只在确认这个包不是关键依赖时用。更稳的办法是先把 dpkg 的锁和临时文件清一遍再重试。整个过程别急着autoremove半安装状态下自动清理容易误删。6.2 磁盘满了导致桌面装了一半df -h看到根分区 100%apt 报No space left on device。这时候千万别直接删/var/cache/apt里的东西然后重试——先确认哪些包已经装完哪些只是解压了一半。sudo apt clean sudo journalctl --vacuum-size50M du -sh /var/log/* | sort -rh | head清出空间之后sudo dpkg --configure -a sudo apt install -f如果ubuntu-desktop-minimal本身没装完重新跑一次安装命令apt 会跳过已完成的包继续。这种情况我最建议先扩容——虚拟机上扩根分区不难物理机上清出至少 10 GB 再继续否则装完桌面一堆东西写不进去症状会非常诡异。6.3 想卸载 GNOME 回滚到纯命令行有时候装完发现不合适或者想换别的桌面环境得把 GNOME 清掉。这一步要小心因为ubuntu-desktop的依赖树很深粗暴apt remove ubuntu-desktop只删元包本身组件全留着。相对干净的卸载顺序sudo apt remove --purge ubuntu-desktop ubuntu-desktop-minimal sudo apt autoremove --purge sudo systemctl set-default multi-user.targetautoremove会把不再被依赖的包清掉这一步能回收几个 G。但注意它会顺手动一些你手动装过的、恰好被标记为“自动安装”的包。所以执行前先看一眼模拟结果sudo apt autoremove --purge --simulate确认没有要保留的东西再真跑。另外卸载桌面不会自动清理用户目录下的配置~/.config、~/.local想彻底干净就手动删。还有一个更稳妥的思路在装桌面之前用apt-mark showmanual导出一份当前手动安装的包列表存档。将来要回滚时以这份列表为准反向清理比靠autoremove猜要靠谱得多。apt-mark showmanual ~/manual-before-desktop.txt这条命令花不了两秒但能省掉将来一小时的纠结。最后分享一个小经验装 GNOME 这类大件之前先给系统做个快照或者timeshift备份尤其是虚拟机和云主机回滚成本几乎为零。我吃过一次亏——为了省事跳过备份结果驱动装崩了进了 rescue 模式一个个包往回捋花了整整一个下午。从那以后凡是涉及几百个包的批量安装快照永远是第一步比任何排查技巧都管用。
阅读完成 · 觉得有帮助?
咨询建站