[Share Experiences] RStudio无法输入中文的解决办法-重编译
Tofloor
poster avatar
探索
deepin
2021-07-12 08:39
Author

前几年deepin都是基于ubuntu,那时想使用最新版R时,都是参考CRAN的说明修改软件源。后来有几年deepin依赖的linux基础版本经常变,所以改用了编译安装,但编译安装后升级比较麻烦。前两天突然又想到老办法,于是参考CRAN的说明修改软件源后,将系统中的R升级到了最新版(4.1.0)。

具体步骤可参考:debian安装最新版的R

但是,在用R作图时,提示RStudio版本不合适。于是下载最新版的RStudio(1.4.1717)进行安装。安装后就发现了一个老问题:无法输入中文。好在之前解决该问题时还是比较顺利,于是采用老办法,即复制libfcitxplatforminputcontextplugin.so 文件到RStudio中,但这次问题没有解决。于是,重新查找资料,发现有一个更基础,但也更麻烦的解决方法,即重编译libfcitxplatforminputcontextplugin.so

 

原理如下:

由于RStudio使用的Qt和系统的Qt版本不一,因此无法直接使用依赖系统Qt的程序,如fcitx。因此可利用RStudio中的库文件重新编译fcitx中的libfcitxplatforminputcontextplugin.so,然后复制到RStudio中。

 

操作步骤:

1 检查Qt版本

RStudio中的Qt可用命令:strings /usr/lib/rstudio/lib/libQt5Core.so.5 | grep "Qt 5"

显示版本为:5.12.8

系统中的Qt可用命令:qmake -v

显示版本为:5.15.1

 

2 安装Qt 5.12.8

下载地址:https://download.qt.io/official_releases/qt/

找到对应的版本,下载文件:qt-everywhere-src-5.12.8.tar.xz

我在home下建立了一个文件夹Qt,用于后续操作。文件下载后都解压至该文件夹。

编译安装:

1)检查环境

./configure --prefix=/home/(me)/Qt

可能由于系统已安装有Qt,未出现问题

2)编译安装

make    #约3小时

make install

 

3 准备其它软件

1)fcitx-qt5

下载后解压:https://github.com/fcitx/fcitx-qt5 

2)cmake

下载后解压:https://cmake.org/download/

3)其它

sudo apt install extra-cmake-modules

sudo apt install libxkbcommon-dev

sudo apt install fcitx-libs-dev

 

4 编译fcitx

1)设置环境参数

export PATH=/home/(me)/Qt/bin:$PATH

export LD_LIBRARY_PATH=/usr/lib/rstudio/lib:$LD_LIBRARY_PATH

 

2)编译fcitx-qt5中的文件

cd /path/to/fcitx-qt5

/path/to/cmake .

make

 

5 复制目标文件

将 platforminputcontext 目录新下生成的 libfcitxplatforminputcontextplugin.so 复制到

/usr/lib/rstudio/plugins/platforminputcontexts

并赋予可执行程序权限

 

总结:

1 虽然结果是好的,但总感觉过程中有一些地方不太清楚。如:

安装的Qt到底是在哪一步起了作用,还是根本就没有起作用?

PATH的设置是否是必需的?

2 个人感觉这个问题的解决对于RStudio官方来说应该不算一个太大的问题,之所以多年未能解决,还是中文在编程界的地位太低了。

3 最后,附上最新生成的 libfcitxplatforminputcontextplugin.so

 

 

 

 

 

Reply Favorite View the author
All Replies
LIU
deepin
2022-07-08 23:26
#1

实测有效,谢谢大佬kissing_heart

Reply View the author