前几年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
实测有效,谢谢大佬
Featured Collection
Popular Ranking
Popular Events
前几年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