Deepin输入环境打造(一):rime最新版本安装
Tofloor
poster avatar
ylxdxx
deepin
2019-01-10 02:21
Author
本帖最后由 ylxdxx 于 2019-1-9 18:49 编辑

最近遇到打单字,搜狗输入法输入太不方便,查字需要翻半天。听闻 rime 可以支持辅码,而商店里面的 fcitx 版本太老,作者今年更新了,于是开始动手编译安装最新ibus-rime版本

第一步:安装最新的引擎 librime

https://github.com/rime/librime

1,安装各种依赖包
  1. sudo apt install libopencc-dev cmake debhelper libboost-dev libboost-filesystem-dev libboost-locale-dev libboost-regex-dev libboost-signals-dev libboost-system-dev libboost-thread-dev libgoogle-glog-dev libleveldb-dev libmarisa-dev libopencc-dev libyaml-cpp-dev x11proto-core-dev x11proto-dev zlib1g-dev
Copy the Code


再编译安装:
  1. leveldb-master
  2. marisa-trie
  3. yaml-cpp-master
Copy the Code
https://github.com/hxoht/level-replicator
https://github.com/pytries/marisa-trie
https://github.com/jbeder/yaml-cpp


2,下载源码到本地 make ,编译完成再  sudo make install

错误记录1:
编译检查时报错
  1. CMake Error at cmake/FindGlog.cmake:22
Copy the Code
需安装:
  1. sudo apt install libgoogle-glog-dev libgflags-dev
Copy the Code


错误记录2:
编译检查时报错:
  1. Could not find xxxxx library
Copy the Code
则需要安装 xxxxxx


错误记录3:
编译中途报错,例如下面之类
  1. [ 77%] Linking CXX shared library ../lib/librime.so
  2. /usr/bin/ld: /usr/local/lib/libleveldb.a(repair.cc.o): relocation R_X86_64_PC32 against symbol `_ZN7leveldb10EnvWrapper9CreateDirERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' can not be used when making a shared object; recompile with -fPIC
  3. /usr/bin/ld: 最后的链结失败: 错误的值
  4. collect2: error: ld returned 1 exit status
  5. make[3]: *** [src/CMakeFiles/rime.dir/build.make:1579:lib/librime.so.1.3.2] 错误 1
  6. make[3]: 离开目录“/home/shui/Desktop/librime-master/build”
  7. make[2]: *** [CMakeFiles/Makefile2:118:src/CMakeFiles/rime.dir/all] 错误 2
  8. make[2]: 离开目录“/home/shui/Desktop/librime-master/build”
  9. make[1]: *** [Makefile:141:all] 错误 2
  10. make[1]: 离开目录“/home/shui/Desktop/librime-master/build”
  11. make: *** [Makefile:29:release] 错误 2
Copy the Code


原因为:安装时安装的是静态库(.a),需要安装动态库(.o)
可以进入 /usr/local/lib 看见 libleveldb.a 存在,没有 libleveldb.o
不过,我搜索了一下我的硬盘,里面有,在  /usr/local/lib 里做了连接解决。

注:如果是
  1. [ 76%] Linking CXX shared library ../lib/librime.so
  2. /usr/bin/ld: /home/shui/Desktop/librime-master/thirdparty/lib/libyaml-cpp.a(emitterstate.cpp.o): relocation R_X86_64_PC32 against symbol `_ZNSt6vectorISt10unique_ptrIN4YAML12EmitterState5GroupESt14default_deleteIS3_EESaIS6_EED1Ev' can not be used when making a shared object; recompile with -fPIC
  3. /usr/bin/ld: 最后的链结失败: 错误的值
  4. collect2: error: ld returned 1 exit status
  5. make[3]: *** [src/CMakeFiles/rime.dir/build.make:1579:lib/librime.so.1.3.2] 错误 1
  6. make[3]: 离开目录“/home/shui/Desktop/librime-master/build”
  7. make[2]: *** [CMakeFiles/Makefile2:118:src/CMakeFiles/rime.dir/all] 错误 2
  8. make[2]: 离开目录“/home/shui/Desktop/librime-master/build”
  9. make[1]: *** [Makefile:141:all] 错误 2
  10. make[1]: 离开目录“/home/shui/Desktop/librime-master/build”
  11. make: *** [Makefile:29:release] 错误 2
Copy the Code


在安装 yaml-cpp 时,用下面这条命令编译安装
  1. cmake -DBUILD_SHARED_LIBS=OFF] ..
Copy the Code


第二步:安装 ibus 客户端

  1. sudo apt install ibus-clutter ibus-doc ibus-qt4 ibus-gtk ibus-gtk3
Copy the Code


第三步: 安装最新的 ibus-rime

https://github.com/rime/ibus-rime

直接下载源码:make
再 sudo make install

错误记录1:
出现:
  1. --   Found rime, version 1.3.2
  2. -- Found Rime: /usr/lib/librime.so  
  3. CMake Error at /usr/share/cmake-3.11/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  4.   Could NOT find RimeData (missing: RIME_DATA_DIR)
  5. Call Stack (most recent call first):
  6.   /usr/share/cmake-3.11/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  7.   cmake/FindRimeData.cmake:22 (find_package_handle_standard_args)
  8.   CMakeLists.txt:27 (find_package)


  9. -- Configuring incomplete, errors occurred!
  10. See also "/home/shui/Desktop/ibus-rime-master/build/CMakeFiles/CMakeOutput.log".
  11. make: *** [Makefile:15:ibus-engine-rime] 错误 1
Copy the Code


重启系统可解决

错误记录2:
出现:
  1. mkdir -p build
  2. (cd build; cmake -DCMAKE_BUILD_TYPE=Release .. && make)
  3. CMake Error at /usr/share/cmake-3.11/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  4.   Could NOT find RimeData (missing: RIME_DATA_DIR)
  5. Call Stack (most recent call first):
  6.   /usr/share/cmake-3.11/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  7.   cmake/FindRimeData.cmake:22 (find_package_handle_standard_args)
  8.   CMakeLists.txt:27 (find_package)


  9. -- Configuring incomplete, errors occurred!
  10. See also "/home/shui/Desktop/ibus-rime-master/build/CMakeFiles/CMakeOutput.log".
  11. make: *** [Makefile:15:ibus-engine-rime] 错误 1
Copy the Code


在上一步的librime编译中的build/bin文件里有配置文件,新建目录:/usr/share/rime-data 把相关配置文件复制进去



至此,编译安装完成,可以使用

唉,前前后后折腾了几天





Reply Favorite View the author
All Replies
avatar
nero28
deepin
2019-01-10 03:43
#1
看着好累,我还是用fcitx-table-wbpy
Reply View the author
avatar
imali
deepin
2019-04-10 00:18
#2
https://github.com/rime/home/wiki/RimeWithIBus#build-and-install-ibus-rime

这里有直接安装ibus-rime简单步骤,省去上面一些繁琐依赖的安装,可以参考
Reply View the author
avatar
宾利
deepin
2019-04-10 01:03
#3
继续使用fcitx-rime.没有感觉到差别。
Reply View the author
avatar
151******42
deepin
2019-04-10 02:06
#4
ibus能用了?
Reply View the author
avatar
ylxdxx
deepin
2019-04-10 07:59
#5
imali 发表于 2019-4-9 16:18
https://github.com/rime/home/wiki/RimeWithIBus#build-and-install-ibus-rime

这里有直接安装ibus-rime ...

以前跟着里面的教程安装的时候出错了
Reply View the author
avatar
ylxdxx
deepin
2019-04-10 08:04
#6
coolbengo 发表于 2019-4-9 17:03
继续使用fcitx-rime.没有感觉到差别。

当词库的条数达到七八百万甚至上千万的时候,fcitx-rime基本上就game over
Reply View the author
avatar
宾利
deepin
2019-04-10 16:56
#7
https://bbs.deepin.org/post/173488
当词库的条数达到七八百万甚至上千万的时候,fcitx-rime基本上就game over

也没必要如此大的词库了,几十万足够有余了。再说了,真要到了需要使用那么大的词库再换嘛。
Reply View the author