ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

RedHat 7.6 图形界面安装全流程:从本地源配置到GNOME桌面部署

RedHat 7.6 图形界面安装全流程:从本地源配置到GNOME桌面部署 我上周在机房里给一台 RedHat 7.6 服务器补装图形界面原本以为是一条 yum 命令就能搞定的事结果硬是折腾了小半天。这台机器当初为了省资源选了 Minimal 最小化安装一路都是黑底白字的命令行同事后来要做数据库可视化运维打开浏览器就想要个桌面板的操作界面我这才意识到RedHat 7.6 的图形界面安装还真不是敲一条命令那么简单。这篇文章就围绕 RedHat 7.6 的图形界面安装把从环境检查、本地源配置、GNOME 桌面安装、运行级别切换再到常见故障排查的完整流程走一遍。不管你是刚接触 Linux 系统的新手还是临时被拉去装系统的运维都能直接照着抄作业。装完之后的体验我也会多聊几句包括哪些坑该避开、哪些配置建议保留尽量让你少走弯路。1. 安装前的情境与方案选择1.1 为什么有的 RedHat 7.6 连个桌面都没有很多人在安装 RedHat 7.6 时安装程序会让你选择软件包组合默认给的几个选项里有Minimal Install、Server、Server with GUI、Workstation等等。一旦图省事选了 Minimal最终得到的系统就只有内核加上最基本的一些命令行工具既没有 X Window也没有 GNOME 或 KDE 这些桌面环境连 firefox 都找不到。在命令行环境下你很难直观判断系统到底有没有图形组件。我习惯用下面几条命令先摸底systemctl get-default runlevel rpm -qa | grep gnome如果systemctl get-default输出的是multi-user.target说明系统开机直接进入命令行多用户模式runlevel输出N 3也验证这一点。再看rpm -qa | grep gnome基本没东西那就可以确定当前是一个干净的最小化环境桌面组件需要从零装起。从系统设计角度看服务器默认不装 GUI 其实是有意为之减少攻击面、节省内存、少跑一堆后台进程。但实际办公场景里GUI 又经常绕不开——比如要在服务器上直接打开浏览器访问某个网管系统或者跑一个只有图形化界面的商业软件甚至只是个人用不惯命令行需要图形文件管理器这时候就必须补装图形界面。1.2 两条安装路径怎么选给 RedHat 7.6 装图形界面一般有两条路装系统时选对软件包或者系统装好后用 yum 补装。安装路径适用场景优点缺点安装时选择 Server with GUI全新装机一步到位组件完整依赖关系自动处理安装时间较长装机时就要确认需求安装后用 yum groupinstall 补装现网已有系统不用重装系统可按需选择桌面组件需要先配置好可用的软件源依赖包多时耗时较长安装轻量级桌面如 XFCE内存和磁盘有限占用资源更少RHEL 7.6 默认源不一定有需要额外配置 EPEL 等第三方源对于已经跑着业务的系统路径 B 是唯一选择也是本文重点讲的方案。路径 A 适合新装环境如果你正好在安装向导那一步直接勾选Server with GUI就行不用再折腾后面这些事。另外提醒一句不要试图手动逐个安装 xorg、gdm、gnome-shell 这些包。桌面环境依赖关系极其复杂手装包大概率会遇到缺依赖缺到怀疑人生的情况直接用包组安装让 yum 去处理依赖才是正经做法。1.3 装机前的硬件与镜像准备RedHat 7.6 的 GNOME 桌面装完大概要占用 3GB 左右的磁盘空间运行起来建议内存不低于 2GB否则会明显卡顿。如果你是在虚拟机上操作建议分配处理器 2 核、内存 4GB、磁盘 40GB这样桌面跑起来比较从容。镜像方面准备一个rhel-server-7.6-x86_64-dvd.iso大概 4GB 大小。这个 ISO 里面自带完整的软件仓库安装桌面时不需要联网也不需要注册订阅用本地源就能解决依赖问题。虚拟机环境建议用 VMware Workstation 或 VirtualBox创建虚拟机时操作系统类型选“Red Hat Enterprise Linux 7 64-bit”。物理机的话先确认/boot分区剩余空间df -h /boot看一下一般 500MB 足够。操作前能拍快照就拍快照虚拟机的快照是后悔药物理机如果数据重要至少把/etc/yum.repos.d/目录备份一下。2. 补装图形界面前的环境准备2.1 先确认系统状态再动手动手之前先把系统家底摸清楚我用一套组合命令完成这一步cat /etc/redhat-release df -h / free -h nproccat /etc/redhat-release输出Red Hat Enterprise Linux Server release 7.6 (Maipo)确认系统确实是对应版本。df -h看根分区剩余空间是否充足桌面组件下载加安装需要 3GB 左右。free -h确认内存低于 2GB 建议先加内存再装。如果系统还在跑数据库或者重要应用最好在业务低峰期操作。桌面组件安装过程中会更新不少系统库文件极少数场景下可能影响现有服务。我见过有人直接在正在跑生产的服务器上装 GNOME装到一半内存吃紧导致应用卡顿最后只能回滚快照。这一步还有个常被忽略的点就是确认网络和源的状态。执行yum repolist看看当前有哪些仓库可用如果提示找不到 valid baseurl那就要先解决源的问题否则后面所有安装都会卡壳。2.2 挂载 ISO 镜像配置本地 yum 源最容易翻车的一步很多朋友在买了书之后直接执行yum groupinstall GNOME Desktop结果报错 “Cannot retrieve metalink for repository”。原因很简单RedHat 系统默认没有注册订阅或者服务器根本连不上外网。最稳妥的办法是用 ISO 做一个本地软件仓库。先在虚拟机设置里把rhel-server-7.6-x86_64-dvd.iso挂载到光驱然后进系统手动挂载mkdir -p /mnt/cdrom mount /dev/cdrom /mnt/cdrom ls /mnt/cdrom/Packages | head有些系统里光驱设备是/dev/sr0不是/dev/cdrom会有一条符号链接指向它一般两个名称都能用。看到 Packages 目录里有大量.rpm文件说明挂载成功。注意 RedHat 7 的 rpm 包都集中在Packages/目录下不像 RedHat 8 拆了 BaseOS 和 AppStream这里不用管那些。接下来创建本地源配置文件cat /etc/yum.repos.d/local.repo EOF [local] nameRedHat 7.6 Local Repository baseurlfile:///mnt/cdrom enabled1 gpgcheck0 EOF刷新缓存并验证源yum clean all yum makecache yum repolist注意gpgcheck0只适合本地可信 ISO 源因为镜像是自己手里的不校对签名也没问题。如果是下载的第三方源或不明来源的包千万不要关掉 GPG 校验。如果报错说找不到repodata/repomd.xml大概率是挂载路径不对。可以先df -h看光驱挂载在哪里或者lsblk看设备名。挂载失败时先执行umount /mnt/cdrom再重新挂载。2.3 要不要先升级内核安装桌面之前不需要强制升级系统我也不建议在生产环境随手执行yum update -y。RedHat 7.6 的内核版本是 3.10.0-957升级之后可能变成 3.10.0-1062 甚至更高需要重启内核才生效这对于正在跑业务的机器不是件小事。桌面组件包组在安装时会自动拉取它需要的依赖不会依赖你手动升级系统。如果系统已经很久没有打补丁yum groupinstall有概率碰到依赖冲突这时可以先尝试只更新必要的软件包或者临时禁用 EPEL 等第三方源再装yum --disablerepoepel groupinstall -y GNOME Desktop还有一种情况是之前安装中断留下残留事务导致后面装包一直报错。可以用yum-complete-transaction清理残留的未完成事务再重新安装。依赖冲突这种事情越急越容易出错先yum check看清楚问题不要直接加--skip-broken强行安装否则很容易装出一个启动不了的半残桌面。3. GNOME 桌面环境的安装与启动3.1 先看看有几个桌面可选RedHat 7.6 的默认软件源里可安装的桌面环境包组主要有这些GNOME DesktopRedHat 默认桌面环境最常用提供标准 GNOME 模式。Server with GUI在 GNOME Desktop 基础上额外带一些图形化系统管理工具适合服务器运维场景。KDE Plasma WorkspacesKDE 桌面界面更接近 Windows自定义项多但相对臃肿。Graphical Administration Tools只是一些图形化管理小工具不包含完整桌面。查看当前源里有哪些桌面组可以执行yum grouplist hidden | grep -Ei desktop|guihidden参数很关键不加的话很多隐藏组显示不全。想确认某个组具体包含哪些软件包用yum groupinfo GNOME Desktop查详细信息。对于多数人来说直接选GNOME Desktop就够了。如果你打算把服务器当图形化运维工作站想顺手拿到防火墙图形配置、打印机配置、用户管理这类工具那Server with GUI更省事。3.2 正式安装 GNOME Desktop默认用户在最小化安装后的 RedHat 7.6 上执行yum groupinstall -y GNOME Desktop这一步会拉入大约 500 多个软件包总大小 2GB 左右。本地 ISO 源安装比网络源快很多而且不会因为网速波动中断。安装过程中会输出大量 “Installing / Updating” 日志耐心等就好千万别按 CtrlC否则事务中断会很麻烦。装完之后验证核心组件rpm -qa | grep -E gnome-shell|gdm|nautilus|gnome-terminal | head这四条输出分别对应桌面外壳、登录管理器、文件管理器、终端模拟器。如果都有结果说明桌面组件基本齐全。顺手把中文字体也装上避免进入桌面后中文全是方块字yum install -y wqy-microhei-fonts wqy-zenhei-fonts langpacks-zh_CN如果碰到依赖错误先看一下是不是有源配置冲突比如redhat.repo没有订阅导致网络源失效。可以先把非本地源临时禁用只留 local.repo再执行安装。装的过程中如果报某个包找不到很可能是 ISO 里的包不完整或挂载位置不对回到第 2.2 节的检查流程去查。3.3 修改默认运行级别让开机直接进桌面安装完桌面组件后系统默认仍然进入命令行。需要把默认运行目标改成 graphical.targetsystemctl set-default graphical.target reboot重启后如果出现 GDM 登录界面说明安装基本成功。如果不想立刻重启也可以执行systemctl isolate graphical.target在当前会话直接切换到图形模式但这样做不改变开机默认状态等下次重启还是会回到命令行所以正式的设置别忘了做。还有一个临时方案执行startx启动 X 会话。这种方式不启动完整的 GDM 登录管理器适合快速验证图形环境是否正常但日常使用体验不佳会话管理不完整所以我一般只把它当测试手段真正使用还是通过图形目标开机引导。关于这步我要多说一句multi-user.target和graphical.target都是 systemd 的引导目标RedHat 6 及以前用的是/etc/inittab里的id:5:initdefault:两者对应关系是一样的。如果你将来要维护更老的 RedHat 系统记住3对应multi-user5对应graphical思路是相通的。3.4 语言设置与桌面基础软件进入图形界面后如果系统语言还是英文可以在终端里执行localectl set-locale LANGzh_CN.UTF-8重新登录后GNOME 界面、菜单和部分应用就会变成中文。注意在执行之前确认已经安装了langpacks-zh_CN否则 locale 设置不生效还会在启动时刷一堆警告。桌面装好后部分常用 GUI 工具不是默认自带。比如想连远程 Windows 桌面可以装 Remmina想用图形化防火墙配置可以装firewall-config想截图可以先装gnome-screenshot。这些都是小工具按需补充就行。如果桌面用着用着发现组件缺失或者崩得厉害最省事的修复办法是把桌面组整个卸载再重装yum groupremove -y GNOME Desktop yum groupinstall -y GNOME Desktop比一个个排查 rpm 包依赖省心得多。4. 常见问题与排查思路4.1 装完重启还是命令行界面这个问题出现频率极高。先检查默认目标有没有改成功systemctl get-default如果输出还是multi-user.target重新执行systemctl set-default graphical.target。如果已经改成了graphical.target但还是进不了桌面那就看 GDM 登录管理器有没有正常起来了systemctl status gdm journalctl -u gdmjournalctl会输出 GDM 的日志常见报错是 “Failed to start Login Service”多和 locale 配置或 PAM 配置有关。检查一下localectl status如果 locale 指向了一个不存在的编码GDM 启动可能直接失败。还有可能是虚拟机显存或分辨率问题。VMware 环境下把虚拟机的显示设置加大一点或者把显存调到 128MB 再试。如果你在启动时黑屏只有鼠标光标多半是显卡驱动问题直接看 4.3 节。4.2 分辨率不对与 VMware Tools装完桌面后窗口分辨率固定成 800x600鼠标滚轮速度也很奇怪多半是没装虚拟机增强工具。VMware 环境执行yum install -y open-vm-tools systemctl restart vmtoolsd需要剪贴板互通、文件拖拽功能的话再装/usr包yum install -y open-vm-tools-desktop装完重启vmtoolsd分辨率就能随 VMware 窗口自动适应了。VirtualBox 环境装的是VirtualBox Guest Additions挂载VBoxGuestAdditions.iso后运行./VBoxLinuxAdditions.run。注意编译内核模块需要先装gcc和kernel-devel不然会报错。装之前先重启到最新内核再运行安装脚本。我之前见过有人费劲手动下载 vmware-tools-distrib 编译安装其实 RedHat 7.6 上直接用 open-vm-tools 更省事别绕远路。4.3 黑屏、花屏和桌面打不开现象是重启后屏幕黑屏或者只有鼠标光标能移动也可能是花屏。这种情况多半和显卡驱动加载异常有关。最常用的解决办法是加nomodeset内核参数让系统跳过内核模式的设置改用兼容模式启动显示vi /etc/default/grub在GRUB_CMDLINE_LINUX这一行里追加nomodeset然后重新生成 GRUB 配置grub2-mkconfig -o /boot/grub2/grub.cfg reboot如果装了 NVIDIA 或 AMD 专有驱动RHEL 7 上需要去官网下载对应驱动包手动编译安装而且每次内核升级后都要重新编译非常麻烦。普通桌面办公场景先用开源驱动就够了没必要折腾专有驱动。如果你想快速确认是桌面问题还是驱动问题可以按 CtrlAltF2 切到命令行看系统是否还能正常响应然后查journalctl -b | grep -i error。4.4 依赖错误与 yum 源异常报错关键词通常是Cannot find a valid baseurl、repolist: 0、404 not found。排查步骤我整理成了一个速查表故障现象可能原因解决思路repolist 显示 0 个仓库本地源配置没生效或 ISO 没挂载重新 mount检查 /etc/yum.repos.d/local.repo找不到 repodata/repomd.xml挂载路径不对或镜像不完整用 lsblk 确认设备名检查 ISO 完整性安装时提示 missing dependency多张光盘的包不完整把多张 ISO 合并为同一本地源更新源时连接超时默认网络源无法访问禁用 redhat.repo只用本地源与网络源冲突机器未注册订阅备份并禁用 /etc/yum.repos.d/redhat.repo这里特别提醒RedHat 7 的 ISO 如果是分卷 DVDdvd1、dvd2第二张盘里的软件包不会进入repolist。安装桌面时如果提示某个包找不到可以临时把第二张盘挂载到单独目录再配置一个 secondary repo或者直接把两张盘的 Packages 目录合并到一个本地目录再建源。4.5 root 登录图形界面设置防止踩坑RedHat 7.6 的 GDM 默认配置里root 用户在图形登录界面输密码可能直接被拒绝。原因在/etc/pam.d/gdm-password里有一行auth required pam_succeed_if.so user ! root quiet_success意思是用户如果不是 root 才允许通过。如果你确实需要 root 在图形界面登录可以把这个文件里对应行注释掉然后重启 GDMvi /etc/pam.d/gdm-password systemctl restart gdm不过我得说句实话放开 root 图形登录有安全风险生产环境不建议这么干。更好的做法是创建一个普通用户需要管理操作时再su -或者sudo。国产的 openEuler、银河麒麟在修改 root 图形登录时也是类似的思路PAM 设计一脉相承会改 RedHat 7.6 的人到那边基本能直接上手。5. 一些经验与扩展建议5.1 装好之后我建议先做三件事第一打开 GNOME 终端把中文字体和输入法基础配置确认一遍不然聊天和写文档都会很难受。第二除非是专用工作站我不建议启用 GDM 自动登录开机直接进桌面虽然方便但在办公环境容易泄露信息。第三如果桌面主要用来远程管理可以考虑开启 VNC 服务比如systemctl start vncserver:1这样远程也能看到图形界面而不需要直接坐在服务器前面。另外装完桌面之后df -h再看一眼磁盘如果空间紧张执行journalctl --vacuum-size200M清理系统日志能腾出一些空间。桌面环境跑起来会有一堆后台进程比如 Xorg、gdm、gnome-shell占内存是必然的物理机内存低于 4GB 的话建议只保留一个桌面会话。5.2 如果不想用 GNOME还可以选别的桌面RedHat 7.6 默认源里的 KDE 桌面也值得一说yum groupinstall -y KDE Plasma WorkspacesKDE 的界面风格更贴近 Windows很多人从 Windows 迁移过来会更习惯。但 KDE 的包数量比 GNOME 多不少安装完占更多磁盘空间和内存在资源有限的虚拟机里体验不如 GNOME 流畅。还有一种更轻量级的选择是 XFCE但 RedHat 7.6 默认源里没有需要先扩展 EPEL 源配置过程多一层麻烦。我的看法是除非你的机器真的只有 1GB 内存否则默认 GNOME 其实已经足够没必要再折腾其他桌面。5.3 生产服务器到底要不要开图形界面这个问题我纠结过很多次。如果服务器只跑 Nginx、MySQL、Redis 这类服务我强烈建议保持字符界面不要开桌面。桌面会引入额外的进程和网络监听安全基线和等保检查很可能不允许。真要图形化操作用 VNC 或 X11 转发在需要时临时启动用完就关这样既满足需求又不影响业务。但也有例外。比如某些国产化替代场景里业务系统只有图形客户端必须在本地机器上跑那这时候就绕不开桌面环境。好在现代 Linux 图形界面已经足够成熟RedHat 7.6 的 GNOME 日常使用基本能替代 Windows 桌面的大部分场景。5.4 最后分享一个小技巧装图形界面前一定记得做快照或者备份。虚拟机最方便拍个快照一个命令的事物理机至少把/etc/yum.repos.d/目录和/etc/grub2.cfg备份出来出问题能快速回去。RedHat 7.6 图形界面安装里面大量坑都出在源配置和 GRUB 参数上只要把这两块弄明白哪怕以后去装 CentOS 7、OpenEuler、银河麒麟之类同根同源的系统流程也八九不离十。万一折腾到最后桌面还是进不去别慌按 CtrlAltF2 进命令行先查 GDM 和 Xorg 的日志大部分问题五分钟内能找到线索。我遇到过最玄学的一次是登录界面一直重启结果发现是时区配置和 NTP 冲突导致 PAM 认证报错这种问题不靠日志基本查不出来。
返回列表