即使选择服务器系统角色也依然安装输入法

大家好,

这个问题我注意到一段时间了,因为不怎么影响实际使用所以也没有过于在意。

我在 VPS 上使用 openSUSE Leap 15.2 运行一个个人网站的服务器,今天更新的适合发现有一堆 gtk 包需要更新,但我在安装时选择的系统角色是服务器,因为不需要用到 gui 软件。

那么这些包是怎么来的呢?其实在安装的时候我就注意到(过去安装过几次都有同样的表现),如果将语言选择为简体中文,那么即使系统角色选择为服务器,Fcitx 和 ibus 也会被安装,这个过程中就可能依赖大量 gui 库。

虽然安装后我删除了 Fcitx 和 ibus,但似乎仍会残留一些 gtk 和 qt 库,甚至还有一些 GNOME 套件中的包。

此外我发现在 YaST 中把语言切换成非英文语种(如日语),即使没有安装桌面环境,Fcitx 和 ibus 也会被安装。

虽然手动删除这些包是一种方法,但这既不方便也存在风险。请问是否有办法确保初始安装时不安装任何 gui 软件呢?

那就安装语言选英文?

1赞

哈哈哈这是个方法。不过这样似乎就舍弃了 YaST 的便利性,如果希望做到等效的操作(把系统语言配置成中文),可能就得多做几个步骤(配置 locale+ 安装必要的包)。

我看了一下zh_CN语言分组下的包,在 CUI 环境下,为了显示中文界面,可能只需要yast2-trans-zh_CN这个包,还有一个desktop-translations不知道是不是必要的。但是如果是刚接触 openSUSE 的人,很难辨别究竟应该安装哪些包。

中文 locale 安装什么包是个包管理范畴内的问题,fcitx/ibus 是 Provides: locale(ja;ko;zh_CN),相应的,就有一个包 Requires: locale(zh_CN) 这样,应该可以用:

zypper se —requires “locale(zh_CN)”

查到。但我的服务器是英文没法验证。不存在所谓的 magic 就是 locale 选了 zh_CN 就自动装什么,即使有也得有一个 dummy 包引入所有的包,然后变更 locale 只强制装一个包就行了。

但是 server 还是 desktop 这个可能是无法通过一个 dummy 包来定义的,这就导致了以上 tweak 并不能免除服务器。

PS:fcitx-fbterm 应该在 tty 里能输入中文,不然你在服务器下没法浏览中文文件夹

有三种办法可以破除它。

第一个是安装的时候最后那个总览里选软件管理,把 fcitx/ibus 去掉。

第二个就是安英文系统手动安 YaST 的中文包

第三个就是如果你真的需要在 tty 下输入中文,可以试试强制删除 fcitx-gtk/qt 相关的包,这样应该就会把 GUI 相关的包删除掉。然后安装 fcitx-fbterm

谢谢大佬。其实我的这个使用场景并不需要在 tty 下输入中文,因为都是用 SSH 远程访问的,只要本地能输入中文就行。所以我才希望把 VPS 上不需要的包去掉。似乎理论上服务器上也不需要安装中文字体,只要本地能显示就行。

感觉第二种方法比较能满足强迫症的需求 :grinning:

中文字体确实没必要的,还特别大

VPS 的话完全可以装英文,然后本机如果是中文,你 SSH 到 VPS 也能显示中文。

这个如果本机是 Linux 确实可行。但我的本机环境比较复杂,有时候会用 SSH for Windows 连接,如果不把远程机设置成中文,那么默认情况下显示的就是英文(刚刚测试了一下目前最新版依然如此)。远程机设置成中文算是个一劳永逸的方式。