注意

由于 Rocky Linux 及其上游 RHEL 的软件仓库包含的软件包较少,所以安装输入法时需要自行编译部分组件,而编译所需的依赖相当繁杂。因此,本文并非一个完整的教程,描述的步骤仅供参考。请根据实际情况进行调整,并善用搜索引擎或者 LLM 来获取更多帮助(例如编译依赖的具体列表和包名等)。本文的目的是记录我个人的安装过程,以供日后参考,且仅适用于 Rocky Linux 10 操作系统(可能适用于 RHEL 10 及其衍生版,但未经过测试)。

请在进行任何操作(例如执行来自网络的命令)前确保理解其含义并了解自己正在进行的操作。

前言

最近我获得了一台 ThinkPad 作为我的 Linux 机,并安装了 Rocky Linux 10 Workstation KDE 版本作为操作系统。

由于我仍然需要偶尔在 Linux 环境下使用中文输入法,我决定尝试安装 fcitx5 输入法框架及其中文输入法引擎。

而因为 fcitx 官方手册缺少一些在 Rocky Linux 下编译安装所需的细节(例如部分需要安装的依赖),所以我决定记录下我的安装过程,以供日后参考。

更新

首先,请确保系统以及软件包都是最新的:

bash
sudo dnf update -y

这能确保我们在安装输入法时不会遇到由于软件包版本过旧而导致的问题。

你可能需要重启系统以应用更新:

bash
sudo reboot

添加 EPEL 仓库

EPEL (Extra Packages for Enterprise Linux) 是一个由 Fedora 社区维护的,为 RHEL 及其衍生版(如 Rocky Linux)提供额外软件包的仓库。我们需要该仓库来获取部分编译 fcitx5 所需的依赖。

执行以下命令来安装 EPEL 10 仓库:

bash
sudo subscription-manager repos --enable codeready-builder-for-rhel-10-$(arch)-rpms && sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-10.noarch.rpm

然后再次更新软件包列表:

bash
sudo dnf update -y

以确保 EPEL 仓库的软件包信息被正确加载,而且系统中的软件包都是最新的。

参考手册

我们接下来会参考 fcitx 官方的 fcitx5 编译手册 (Compiling fcitx5) 来进行编译并安装 fcitx5 及其中文输入法引擎。

安装编译依赖

首先安装 Development Tools 组的软件包:

bash
sudo dnf group install "Development Tools"

这样我们可以确保系统中有基本的编译工具(如 gcc、make 等),简化后续的依赖安装过程。

然后,fcitx 手册列出了以下编译依赖:

  • C Compiler
  • C++ Compiler
  • CMake
  • ECM (Extra CMake Modules)
  • GNU Make
  • XCB (X protocol C-language Binding)
  • Expat
  • PkgConfiggtg for now
  • json-c
  • dbus
  • fmt
  • cldr-emoji-annotation

其中 C 与 C++ 编译器, GNU Make 以及 PkgConfig 都已经包含在 Development Tools 组中,所以我们只需要安装剩下的依赖。

除了 cldr-emoji-annotation 之外,其他依赖都可以通过 dnf 进行安装:

bash
sudo dnf install cmake extra-cmake-modules libxcb-devel expat-devel json-c-devel json-devel dbus-devel fmt-devel

cldr-emoji-annotation

cldr-emoji-annotation 是 fcitx 的可选依赖,用于提供 Emoji 注释。由于 Rocky Linux 的软件仓库中没有该包,我们需要手动编译并安装它。

首先,克隆 cldr-emoji-annotation 的源码仓库:

bash
git clone https://github.com/fujiwarat/cldr-emoji-annotation.git

然后,进入源码目录并安装:

bash
cd cldr-emoji-annotation
./autogen.sh
./configure
make
sudo make install

xcb-imdkit

xcb-imdkit 是一个 xcb 下的 xim (X Input Method) 实现,是 fcitx5 的必需依赖。我们同样需要手动编译并安装它。

首先,我们需要另外两个 XCB 组件:UTIL 以及 KEYSYMS。我们可以通过 dnf 安装它们:

bash
sudo dnf install xcb-util-devel xcb-util-keysyms-devel

然后,克隆 xcb-imdkit 的源码仓库,进入源码目录并安装:

bash
git clone https://github.com/fcitx/xcb-imdkit.git
cd xcb-imdkit
cmake .
make
sudo make install

fcitx5

接下来,我们可以开始编译并安装 fcitx5 核心组件了。

首先,克隆 fcitx5 的源码仓库:

bash
git clone https://github.com/fcitx/fcitx5.git

fcitx5 核心组件还需要另外的 XCB 组件 ICCCM 以及 EWMH。我们可以通过 dnf 上的包 xcb-util-wm-devel 来安装这两个组件:

bash
sudo dnf install xcb-util-wm-devel

我们同样需要安装 systemd,libuv,libuuid,cairo,iso-codes,pango 以及 gdk-pixbuf2 的开发包作为依赖:

bash
sudo dnf install systemd-devel libuv-devel libuuid-devel cairo-devel iso-codes-devel pango-devel gdk-pixbuf2-devel

我们还需要 xkbfile,XKBCommon(以及 XKBCommon 的 X11 绑定)以及 XKeyboardConfig 的开发包作为依赖:

bash
sudo dnf install libxkbfile-devel libxkbcommon-devel libxkbcommon-x11-devel xkeyboard-config-devel

注意,fcitx5 的编译脚本拥有两个可选参数 ENABLE_WAYLAND 以及 ENABLE_ENCHANT,分别用于启用 Wayland 以及词语预测。这两个选项默认均为启用状态。如果你不需要这些功能,可以在 cmake 命令中添加 -DENABLE_WAYLAND=Off 或者 -DENABLE_ENCHANT=Off 来禁用它们。

这两个功能均需要额外的依赖,如果你希望启用它们,请确保系统中已经安装了对应的依赖包。

对于 ENABLE_WAYLAND 选项,需要 wayland-devel 以及 wayland-protocols-devel 依赖,分别用于提供 Wayland 支持和协议定义,如果你希望启用该功能,请确保系统中已经安装了这两个包:

bash
sudo dnf install wayland-devel wayland-protocols-devel

ENABLE_ENCHANT 选项需要 enchant 依赖,如果你希望启用该功能,请确保系统中已经安装了 enchant-devel 包:

bash
sudo dnf install enchant-devel

然后,进入源码目录并安装:

bash
cd fcitx5
cmake .
make
sudo make install

fcitx5-qt

接下来,我们需要安装 fcitx5 的 Qt 支持组件 fcitx5-qt,以便在 KDE 以及其他基于 Qt 的应用程序中使用 fcitx5 输入法。

跟 fcitx5 核心组件类似,fcitx5-qt 组件也有多个可选参数,其中我们最需要关注的分别是:

  • ENABLE_QT4:启用对 Qt4 的支持,默认关闭
  • ENABLE_QT5:启用对 Qt5 的支持,默认开启
  • ENABLE_QT6:启用对 Qt6 的支持,默认开启

由于 Rocky Linux 10 自带的 KDE Plasma 版本是基于 Qt6 的,而 Rocky Linux 10 的软件仓库中只有 Qt5 以及 Qt6 的开发包(而没有 Qt4 的开发包),所以我们保持这三个选项的默认值即可。

我们首先安装 Qt5 以及 Qt5 组件的相关开发包:

bash
sudo dnf install qt5-qtbase-devel qt5-qtbase-private-devel

然后安装 Qt6 以及 Qt6 组件的相关开发包:

bash
sudo dnf install qt6-qtbase-devel qt6-qtbase-private-devel qt6-qtwayland-devel

然后克隆 fcitx5-qt 的源码仓库,进入源码目录并安装:

bash
git clone https://github.com/fcitx/fcitx5-qt.git
cd fcitx5-qt
cmake .
make
sudo make install

fcitx5-gtk

同样的,我们还需要安装 fcitx5 的 GTK 支持组件 fcitx5-gtk,以便在基于 GTK 的应用程序中使用 fcitx5 输入法。

首先,我们需要安装 GTK2,GTK3 以及 GTK4 的相关开发包:

bash
sudo dnf install gtk2-devel gtk3-devel gtk4-devel

我们还需要安装启用 GObject Introspection 所需的 gobject-introspection-devel 包:

bash
sudo dnf install gobject-introspection-devel

最后,我们需要克隆 fcitx5-gtk 的源码仓库,进入源码目录并安装:

bash
git clone https://github.com/fcitx/fcitx5-gtk.git
cd fcitx5-gtk
cmake .
make
sudo make install

到目前为止,我们就以及成功编译并安装了 fcitx5 以及其核心组件。接下来,我们将需要安装使用中文输入法所需的引擎以及一些其他组件。

libime

libime 是 fcitx 开发的一个用于支持通用输入法引擎的库。我们需要先编译并安装它才可以安装中文输入法引擎。

要编译 libime,我们需要先安装一些依赖:

bash
sudo dnf install boost-devel libiconv-devel libzip-devel

接下来,我们首先克隆 libime 的源码仓库并进入源码目录:

bash
git clone https://github.com/fcitx/libime.git
cd libime

然后,由于 libime 使用了一个 git 子模块,我们需要初始化并更新该子模块:

bash
git submodule update --init --recursive

接下来,我们就可以编译并安装 libime 了:

bash
cmake .
make
sudo make install

OpenCC

在安装中文输入法引擎之前,我们还需要自行编译并安装 OpenCC(开放中文转换),以便进行简体和繁体中文之间的转换。

首先,克隆 OpenCC 的源码仓库:

bash
git clone https://github.com/BYVoid/OpenCC.git

然后,进入源码目录并安装:

bash
cd OpenCC
cmake .
make
sudo make install

同时,请记住 sudo make install 命令输出的 OpenCC 的安装路径,因为我们在安装 fcitx5-chinese-addons 时需要用到它。

fcitx5-chinese-addons

我们接下来需要安装 fcitx5 的中文输入法引擎以及一些其他的中文相关组件,这些都包含在 fcitx5-chinese-addons 仓库中。

首先,我们还需要安装一些依赖:

bash
sudo dnf install curl-devel qt6-qtwebengine-devel

然后,克隆 fcitx5-chinese-addons 的源码仓库,进入源码目录并安装:

bash
git clone https://github.com/fcitx/fcitx5-chinese-addons.git
cd fcitx5-chinese-addons
# 注意,我们在此处需要指定 OpenCC 的安装路径
cmake . -DOPENCC_PREFIX=/usr/local -DOPENCC_INCLUDE_DIR=/usr/local/include/opencc/
make
sudo make install

fcitx5-configtool

最后,我们还需要安装 fcitx5 的配置工具 fcitx5-configtool,以便我们可以方便地配置输入法。这个组件将允许我们直接从 KDE Plasma 的系统设置中配置 fcitx5。

首先,我们需要安装一些 KDE Plasma 相关的依赖:

bash
sudo dnf install qt6-qtsvg-devel kf6-kcoreaddons-devel kf6-kdbusaddons-devel kf6-ki18n-devel kf6-kpackage-devel kf6-kdeclarative-devel kf6-kitemviews-devel kf6-kiconthemes-devel kf6-kirigami-devel kf6-plasma-devel kf6-ksvg-devel kf6-kcmutils-devel

然后,克隆 fcitx5-configtool 的源码仓库,进入源码目录并安装:

bash
git clone https://github.com/fcitx/fcitx5-configtool.git
cd fcitx5-configtool
# 注意,fcitx5-configtool 不支持在源码目录中直接编译,所以我们需要创建一个单独的构建目录
mkdir build
cd build
cmake ..
make
sudo make install

配置中文输入法

到此为止,我们已经成功编译并安装了 fcitx5 以及其中文输入法引擎。接下来,我们需要进行一些配置以启用中文输入法。

首先,重启系统以确保所有组件都正确加载:

bash
sudo reboot

然后,打开 KDE Plasma 的系统设置,找到 Keyboard -> Virtual Keyboard 界面,将输入法框架设置为 fcitx5,然后应用更改并重启系统。

接下来,再次进入 KDE Plasma 的系统设置,找到 Input Method 界面,点击 "Add Input Method..." 按钮,选择 "Chinese (China)" 分类下的 "Pinyin" 输入法引擎,然后点击 "Add" 添加输入法并应用更改。

接下来你就可以开始使用 fcitx5 中文输入法了!你可以通过按下 Ctrl + Space 快捷键来切换输入法,或者在 "Configure global options..." 界面中自定义快捷键。

如果你希望使用云输入法,你还可以在 "Configure addons..." 界面中的 Input Method -> Pinyin 选项中启用 "Enable Cloud Pinyin" 选项。

结语

到此为止,我们已经成功在 Rocky Linux 10 Workstation KDE 上安装并配置了 fcitx5 中文输入法。希望这篇文章能对你有所帮助!

GL & HF!

CommentsPrivacy Policy
What do you think?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
Comments
  • Latest
  • Oldest
  • Hottest
Powered by Waline v3.7.1