ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

银河麒麟V10最小化环境补装UKUI图形界面与排错

银河麒麟V10最小化环境补装UKUI图形界面与排错 1. 最小化服务器补图形界面先想清楚这几件事前几天有个做运维的朋友问我他手上那台银河麒麟高级服务器操作系统V10当初装系统时图干净选的是最小化环境现在业务侧要用一个带界面的工具问我能不能在不动系统、不重装的前提下补一套图形界面上去。这问题在运维圈里出现频率其实挺高——很多人第一反应是服务器要什么图形界面但真到需要的时候又得老老实实把它装上。这篇内容就把我在麒麟软件服务器V10最小化环境上安装图形界面的完整思路和实操过程摊开讲从方案选型一直讲到启动验证和排错适合手上有麒麟V10服务器、想补图形界面又不想重装系统的运维同学也适合刚接触麒麟V10、对软件源和软件组概念还比较模糊的新手。先把结论说在前面麒麟V10服务器版最小化安装之后图形界面是完全可以后补的核心动作就三步——备好可用的软件源、用软件组把桌面环境装进去、把系统默认启动目标切到图形模式。真正容易卡住人的不是这三步本身而是软件组名字对不上、软件源没配好、装完了登录界面起不来这些细节。下面我会把这些坑挨个拆开把我试过的命令和验证方法都写清楚你照着抄基本就能跑通。那么在动手前先花几分钟把几个关键选择想清楚比上来就敲命令要省事得多。1.1 为什么有人偏要在服务器上装图形界面先说个现实情况银河麒麟服务器V10的最小化环境默认是纯命令行没有 X Window System没有桌面也没有登录管理器。这么设计的原因很简单——服务器追求资源占用低、攻击面小、稳定性高图形界面会额外拉起一堆常驻进程占内存、占CPU、还可能引入额外的安全面。这是所有主流服务器发行版的共识不是麒麟特有的做法。但应该和实际之间总有差距。我遇到过需要图形界面的场景大概有这么几类一是某些国产化业务软件只提供图形化安装向导纯命令行装起来特别别扭二是本地测试环境或者内网演示环境需要直观的桌面来跑工具、看报表三是有些硬件自带的监控工具、录播设备管理工具界面就是浏览器或者本地窗口命令行替代不了。这些场景下给服务器补一个图形界面反而是最省事的方案没必要为了纯命令行的执念去折腾替代工具。另外一个常被忽略的点是麒麟V10的桌面环境UKUI本身和系统集成度很高装了图形界面之后一些系统自带的配置工具、软件源管理界面也能用起来对不熟悉命令行的同事反而降低了上手门槛。当然这得建立在你能接受多出来的资源占用这个前提上我后面会讲怎么把这部分控制在合理范围。1.2 三种主流实现路径的取舍真正开始装之前得先决定用什么方式把图形界面的包搞到本地。我把常见的三条路列出来对比一下你可以根据自己的网络环境挑。实现路径适用场景优点需要注意的点官方网络源直接装服务器能访问对应的软件源最省事一条命令搞定依赖网络稳定源地址要配对版本和架构ISO镜像挂本地源内网隔离、无外网不依赖网络包完整需要挂载镜像、手写repo文件局域网内自建源多台机器批量部署一次搭建多台复用前期搭建成本高适合成规模的机房大部分个人或者小规模场景我建议优先用官方网络源配好之后yum直接拉包省心。只有内网完全隔离、又必须装图形界面的情况下才去挂ISO做本地源。这里有个容易踩的坑ISO本地源虽然不依赖外网但你必须挂对应版本、对应架构的镜像拿x86_64的ISO去给ARM64的机器做源包名能对上但依赖会崩后面报一堆无法解决的依赖排查起来很费劲。1.3 桌面环境选UKUI还是GNOME麒麟V10里你能装的桌面环境不止一种UKUI是麒麟自家的桌面环境和系统贴合最紧默认配套的登录管理器、主题、图标都调好了GNOME是通用选择在很多发行版上都能见。我的建议是既然是麒麟系统优先装UKUI一是软件组、包依赖都是官方适配过的冲突少二是后面遇到问题官方文档和社区里对应UKUI的资料更集中。除非你有明确的理由必须用别的桌面否则没必要给自己找麻烦。这里有个认知要纠正装图形界面不等于一定要用UKUI也不等于越全越好。有些教程会让你把整个 Server with UKUI 软件组连同开发工具、办公套件全装上几百个包刷下去磁盘直接少好几个G。如果你只是要一个能启动、能登录、能跑单个工具的最小桌面完全可以只装桌面环境的核心包。这个取舍在你磁盘紧张或者只是临时用一下的时候特别重要。2. 动手前的准备与检查清单方案想清楚之后别急着敲安装命令。先把下面三件准备工作做完能省掉后面大量的返工。2.1 确认系统版本、架构和当前启动目标第一步永远是搞清楚自己在什么系统上干活。执行下面几条命令把版本、架构、当前默认启动目标都记下来# 查看系统版本信息 cat /etc/kylin-release cat /etc/os-release # 查看CPU架构x86_64 还是 aarch64 uname -m # 查看当前默认启动目标 systemctl get-default # 查看是否已经装了图形相关组件 rpm -qa | grep -iE xorg|ukui|lightdm|gdm | headsystemctl get-default大概率会返回multi-user.target这就是命令行多用户模式说明系统当前没有往图形界面走。记住这个值万一手滑改错了还能改回去。uname -m的结果直接决定你该用哪个架构的软件源x86_64 和 aarch64 的包不能混用这是硬约束。注意这一步看着简单但我在实际排查别人问题的时候十次里有三次是因为拿错了架构的镜像或者源。先确认再动手别嫌麻烦。2.2 准备可用的软件源如果服务器能访问对外的软件源检查一下/etc/yum.repos.d/目录下的 repo 文件是否配置正确enabled1且地址能通就可以跳过本地源这一步。判断源通不通最快的办法是yum repolist all yum makecache如果repolist能正常列出仓库、makecache不报错说明源是好的。如果服务器在内网、没有对外源就走ISO本地源。挂载镜像、写repo文件的操作大概是这样# 创建挂载点 mkdir -p /mnt/iso # 挂载ISO镜像注意替换成你实际的镜像路径 mount -o loop /opt/Kylin-Server-V10-SP3-x86_64.iso /mnt/iso # 查看镜像里的仓库结构 ls /mnt/iso挂载好之后写一个本地repo文件内容大致如下具体路径以你镜像里实际的repodata所在目录为准[kylin-local] nameKylin Local ISO baseurlfile:///mnt/iso enabled1 gpgcheck0把上面内容保存为/etc/yum.repos.d/kylin-local.repo然后清一下缓存重新生成yum clean all yum makecachegpgcheck0是为了避免本地源没有正确导入密钥导致校验失败内网本地源场景下可以这样处理如果走官方网络源建议保留GPG校验安全性更有保障。2.3 磁盘空间和软件组确认图形界面装下来占的空间不算小先把磁盘余量看一眼df -h /usr /var /root我的经验是只装桌面环境核心加上必要的X组件大概需要预留1.5G到2.5G的空间如果软件组里连带字体、输入法、办公组件全装能吃到4G以上。/usr目录余量低于2G的话先清理或者扩容再动手。然后是确认软件组的真实名字这一步很多人会跳过结果命令敲下去报no group named ...。用下面命令列出所有可选组yum grouplist不同版本、不同SP的麒麟V10图形界面软件组的名字会有差异常见的有Server with UKUI、UKUI Desktop之类。列表里通常还会有一行提示告诉你要看隐藏组得加hidden参数。把带图形、带桌面的那几个组名记下来后面直接用。如果某个名称对不上先别急着换命令回到这一步重新核对多半是名字写错了或者源里根本没有这个组。提示如果yum grouplist里压根找不到任何带桌面的组说明你挂的源不是完整镜像或者挂错了架构。这种时候不要硬装零散的包去凑桌面退回去把源修好比后面手动解决依赖地狱轻松得多。3. 图形界面安装全流程实操准备做完了进入真正的安装环节。我会按顺序把每一步、每条命令以及背后的意图都讲清楚。3.1 安装X基础组件与桌面软件组图形界面的底座是 X Window System最小化环境里是没有的所以先补基础组件再上桌面软件组。虽然软件组一般会把依赖一起拉进来但显式装一次能避免个别版本依赖没拉全的情况yum install -y xorg-x11-server-Xorg xorg-x11-xinit xorg-x11-utils接着装桌面软件组。这里用你在grouplist里确认过的组名示例用Server with UKUIyum groupinstall -y Server with UKUI如果这个组名在你系统上不存在退而求其次可以直接装桌面元包yum install -y ukui-desktop命令跑起来之后yum 会开始解算依赖并下载安装。这一步是整个过程里最耗时的包多的时候几分钟到十几分钟都很正常耐心等它跑完不要中途CtrlC。跑完之后确认几个关键组件是否到位rpm -qa | grep -iE ukui-session|lightdm|gdm|xorg-x11-server-Xorg能列出lightdm或gdm和会话管理相关的包就说明桌面主体装进去了。注意事项yum groupinstall装的是软件组里的默认包一般不含可选包。如果你要中文输入法、额外的字体包得单独装或者用带可选包的方式装。别以为装完组就万事大吉中文显示乱码多半是字体没装全。3.2 切换默认启动目标并首次启动软件装好了但系统默认还是多用户命令行模式得把启动目标切过去# 切换默认启动目标为图形界面 systemctl set-default graphical.target # 确认切换成功 systemctl get-defaultget-default返回graphical.target就对了。接下来有两种进入图形界面的方式一种是直接重启稳妥但慢另一种是不重启临时切过去看一眼出问题好回退# 不重启临时切到图形模式 systemctl isolate graphical.targetisolate会尝试启动图形目标如果一切正常屏幕上会起来登录界面或者直接进桌面。如果卡住、黑屏或者报错用CtrlAltF2切回字符终端再把默认目标改回multi-user.target排查问题这样不耽误你继续用命令行模式干活。这里解释一下启动目标这个概念方便理解为什么改这一个值就够了。systemd 里multi-user.target和graphical.target是两类预定义的系统状态graphical.target依赖multi-user.target只是额外要求启动显示管理器和图形会话。所以切过去本质上就是告诉系统我这次要多拉那几个图形相关的单元。理解了这一层你就知道排查图形界面起不来时重点应该看显示管理器这个服务和X相关的日志。重启方式的话reboot重启后如果正常你会看到图形登录界面。首次进图形界面系统可能会做一些初始化比如生成用户配置目录、加载主题这个过程慢一点是正常的别以为是死机。3.3 中文语言、字体与输入法补齐进到图形界面之后很多人第一眼看到的是满屏方块或者乱码这不是装错了基本是字体不全。把中文显示处理好桌面才算真能用# 安装中文语言包 yum install -y langpacks-zh_CN # 安装常用中文字体 yum install -y wqy-zenhei-fonts wqy-microhei-fonts # 刷新字体缓存 fc-cache -fv如果你还需要中文输入法可以装对应的输入法框架和引擎常见的是装fcitx或者系统自带的输入法方案装完在桌面设置里把输入源加上就行。这一步的取舍看你实际用途只是看个界面、跑个工具字体装全可能就够了要打字办公输入法少不了。语言环境的设置也可以用命令行完成检查当前localelocalectl status如果还是LANGC或者en_US.UTF-8想让桌面默认走中文可以设置localectl set-locale LANGzh_CN.UTF-8改完最好重启一下图形会话让它生效。顺带说一句locale设置会影响命令行下面很多工具的输出语言如果你平时习惯看英文报错也可以就保持英文只在桌面里单独配中文输入不冲突。3.4 登录界面与远程接入验证图形界面起来之后最后一步是验证登录和接入方式。本地直接登录当然是最直接的但服务器场景下很多人其实是通过远程方式接进来的所以这里分两种情况说。本地登录的话注意登录管理器默认可能不允许 root 直接登桌面这个我在下一节单独讲。普通用户登录基本没问题。验证桌面是否完整可以看开始菜单、终端、文件管理器能不能正常打开。远程接入方面如果服务器是放在机房的你不可能每次都跑到机器前面去常见做法是配好本地显示或者用支持图形转发的工具。纯字符的 SSH 本身不传图形要在字符连接里跑单个图形程序需要服务端装好 X 相关组件并在客户端做相应配置要整个桌面远程通常走的是专门的远程桌面方案配好之后连上就能看到完整桌面。这块的具体配置要看你们的网络环境和安全要求来定配之前先想清楚对外开放的端口和权限别为了图方便把管理面暴露出去。验证完本地和远程两条路都能走通整个安装才算闭环。我一般会在装完之后把systemctl get-default、rpm -qa | grep ukui这几个结果再确认一遍留个记录以后哪台机器出问题好对照。4. 常见问题与排查实录这一节是整篇里最有价值的部分——都是我在实际动手时踩过或者帮别人处理过的问题手册里不一定写但几乎必遇到。4.1 软件组找不到或包名对不上报错长这样Warning: Group Server with UKUI does not have any packages to install或者no group named xxx。原因基本就三个软件组名字写错了、源里没有这个组、源是残缺的。排查顺序我一般是这样的先yum grouplist | grep -i ukui看真实组名名字对不上就改用真实名字名字对但是源里没包就yum repolist看仓库是否都启用、yum makecache能不能过如果源本身就不全回到2.2节重新配源。这里强调一下不要看到报错就去网上抄别人写的组名不同版本、不同SP的组名真的会差一个字以你自己机器grouplist的输出为准最靠谱。还有一个隐蔽的情况软件组其实装了但命令报没有包。有些组的默认包列表是空的全部包都在可选包里这种时候得手动指定可选包装或者干脆换成直接装桌面的元包。遇到这种别纠结绕过去用yum install ukui-desktop这类方式往往更快。4.2 依赖冲突与源校验失败装的过程中如果卡在依赖上报一堆Error: Package xxx requires yyy八成是源混用了——比如同时启用了两个版本不一致的源或者本地源和网络源指向了不同SP。处理办法是回到/etc/yum.repos.d/把不需要的repo文件临时改掉后缀或者设enabled0只留一个干净、对应版本的源然后yum clean all yum makecache重新装。GPG校验失败也常见于本地ISO源报错信息里带GPG字样本地源场景下把gpgcheck0就能绕过去网络源则建议导入正确的密钥而不是关校验。这里给个判断原则生产环境尽量保持GPG校验开启只在可控的内网本地源场景下才关校验。图省事关校验后面装到被篡改的包都不知道。4.3 启动后黑屏、卡在登录界面这是图形界面最容易让人头大的问题。黑屏和卡登录界面原因很多我按排查优先级列一下。第一步先看显示管理器服务是不是起的systemctl status lightdm # 如果没有lightdm可能是gdm systemctl status gdm服务没起来看它的日志journalctl -u lightdm -e日志里的报错一般能直接指向原因比如某个配置参数不认、显卡驱动没装、X server 起不来。X 的日志通常在/var/log/Xorg.0.log里面(EE)开头的行是关键错误重点看这几行。第二步看显卡。服务器上如果装的是独显而且没装对应驱动X server 可能起不来表现为黑屏或者走到一半退回来。虚拟机上一般用通用驱动就能跑物理机尤其是带独显的机器要额外注意驱动适配。第三步看资源。内存太小图形会话拉起来的时候会被 OOM killer 干掉现象就是登录界面闪一下又回到字符界面。用free -h看下内存余量最小化环境一般内存本来就紧装图形界面之前评估一下。4.4 root登录图形界面被拒绝这个问题的表现是输入 root 密码明明是对的但登录界面就是不让你进或者提示验证失败。原因不是密码错了是登录管理器默认通过 PAM 限制了 root 直接登桌面这是出于安全考虑的默认行为。如果想允许 root 登录仅建议在受控的本地测试环境这么做需要改 PAM 配置里针对该显示管理器的限制项。以 lightdm 为例编辑/etc/pam.d/lightdm找到限制非本地或者限制 root 的那一行通常是类似auth required pam_succeed_if.so user ! root quiet的配置按需调整。改之前务必备份原文件改错了可能连登录都进不去cp /etc/pam.d/lightdm /etc/pam.d/lightdm.bak强烈提醒生产环境不建议开放 root 图形登录。要用图形界面创建一个普通用户需要高权限时用sudo或者切换到 root 会话这是更稳妥的做法。我在机房见过因为图方便直接放开 root 桌面登录、结果管理面被人随手试密码的情况教训不小。4.5 常见问题速查表把上面这些整理成一张表方便你在现场对着排查现象大概率原因处理方向找不到软件组组名错/源不含组用 grouplist 核对真实组名检查源完整性依赖冲突报错多源混用/版本不一致只留一个对应版本的源clean 后重试GPG校验失败本地源无密钥本地源可关 gpgcheck网络源导入密钥黑屏或卡登录显示管理器/X/显卡问题查 journalctl、Xorg.0.log装显卡驱动登录界面闪退内存不足被 OOMfree -h 检查扩容或减负root登不进桌面PAM 默认限制备份后按需调整生产环境不建议放开中文显示方块字体未安装装 wqy 字体并刷新缓存5. 实操心得与后续维护建议5.1 图形界面和服务器稳定性的关系装完之后很多人会担心图形界面会不会拖慢服务器、影响业务稳定性。我的看法是影响有但可控。真正吃资源的是桌面常驻进程和显示管理器如果你装完只是偶尔用一下平时可以再把默认启动目标切回multi-user.target需要图形时用systemctl isolate graphical.target临时拉起来用完切回去。这样既不占用常驻资源又保留了随时能用的能力是我比较推荐的用法。另外图形界面本身也是软件装完不是就完了。系统升级、软件源更新的时候图形相关的包如果版本不一致可能引发依赖问题。所以装完之后后续的yum update尽量保持整体一致别只更新一半的组件。5.2 我总结的几条经验第一条动手前先看清系统和源别上来就复制粘贴命令。我帮人排查的问题里超过一半是源配错了或者架构搞混了而这些在动手前三分钟就能避免。第二条能不重装就不重装麒麟V10后补图形界面这条路很成熟没必要为了一个界面把整台服务器的环境推倒重来。第三条凡是要改配置文件的先备份cp xxx xxx.bak花不了几秒出事的时候能救命。第四条生产环境对界面和权限都要收着点能普通用户就别用 root能临时启动就别设成默认安全上的事多一道防线总没错。还有个小细节装完图形界面之后如果你还要在这台机器上跑其他服务记得确认一下新增的进程有没有占用你想用的端口或者资源。桌面环境会拉起一些后台服务个别版本里它们和服务端软件的端口有重叠的可能虽然不常见但排查问题的时候值得想一想。
返回列表