2016年5月31日 星期二

[Gentoo][ibus] How to install cangjie into Gentoo

1. Install ibus at the first
emerge ibus

2. For ibus-table-chinese
# vim /etc/portage/package.use/ibus-table-chinese
Add following string
>=dev-lang/python-2.7.10-r1:2.7

# vim /etc/portage/package.accept_keywords/ibus-table-chinese
Add following string
app-i18n/ibus-table-chinese ~amd64

3. select python 2.7 for this package to compile
# eselect python list
Available Python interpreters:
[1] python2.7
[2] python3.4 *

# sudo eselect python set 1

4. Start to compile and install
sudo USE="sqlite" emerge ibus-table

Don't need to install this one, if you install following method.
sudo emerge ibus-table-chinese

5. ibus settings
ibus-setup

6. Start ibus as daemon
ibus-daemon -d -x


(ibus use python 3.4 to execute the engin of ibus-table to add more input db which under table of ibus-table.)
   ibus 
     +  
     |  
ibus-table
     |
     |
     +---->engin

Method 1 (Good one):
If above ibus-table don't work, then execute following step.
Download ibus-table.tgz
tar ibus-table.tgz under /usr/share/ to replace the origin one(ibus-table).

This step can skip.
If you need ibus module for python2.7.
Download python 2.7 - ibus module
tar python-ibus-module.tgz under /usr/lib64/python2.7/site-packages/ to add ibus module for python 2.7.

select python 3.4 for this package to compile
# eselect python list
Available Python interpreters:
[1] python2.7 *
[2] python3.4
# sudo eselect python set 2

Execute the following command.
# /usr/libexec/ibus-engine-table --xml

When you got the error message like error 1.
Please see the solution about error 1.

Above command show in /usr/share/ibus/component/table.xml
<component>
    <engines exec='/usr/libexec/ibus-engine-table --xml'/>
</component>


Method 2:
If above ibus-table don't work, then install following string.
sudo emerge ibus-cangjie
sudo emerge libcangjie

Reference:

Error 1:
Q:
freeman@localhost /usr/share $ sudo eselect python set 2
freeman@localhost /usr/share $ sudo /usr/libexec/ibus-engine-table --xml 
/usr/share/ibus-table/engine/main.py:27: PyGIWarning: IBus was imported without specifying a version first. Use gi.require_version('IBus', '1.0') before import to ensure that the right version gets loaded.
  from gi.repository import IBus
Traceback (most recent call last):
  File "/usr/share/ibus-table/engine/main.py", line 32, in <module>
    import factory
  File "/usr/share/ibus-table/engine/factory.py", line 27, in <module>
    import tabsqlitedb
  File "/usr/share/ibus-table/engine/tabsqlitedb.py", line 32, in <module>
    import sqlite3
ImportError: No module named 'sqlite3'
A:
Please reinstall python like following command.
sudo USE="sqlite" emerge dev-lang/python

If no use USE="sqlite" will become following
 * Disabled modules: _sqlite _tkinter
After use USE=”sqlite” will become following
 * Disabled modules: _tkinter

0 意見:

張貼留言