How to fake ibus to be removed
前提
因為在「GNOME」的桌面環境,包含「GNOME Shell」或是「GNOME Flashback」。
有整合「ibus」,所以會自動啟動「/usr/bin/ibus-daemon」,
若是採用其他輸入法框架,就會同時啟動,
這時有可能衝突,導致輸入法無法正常運作,
這時候有幾個解法,
解法一
第一種是移除「ibus」,
但是有可能發生一種狀況,就是有些套件,可能是桌面環境,
是依賴「ibus」,這時候移除「ibus」,就會連同移除相關的套件。
所以執行下面指令,移除「ibus」
sudo apt-get remove ibus
會先出現一些提示訊息,先別著急著按下「Enter」,
先看清除會不會連同移除其他的套件。
解法二
因為「GNOME」的實作程式碼,是檢查「/usr/bin/ibus-daemon」是否存在,
若存在,就會自動執行「/usr/bin/ibus-daemon」。
所以只要把「/usr/bin/ibus-daemon」移到別處,就可以解決這個問題。
sudo mv /usr/bin/ibus-daemon /usr/bin/ibus-daemon.distrib
若要移回來,則是執行下面的指令
sudo mv /usr/bin/ibus-daemon.distrib /usr/bin/ibus-daemon
不過在「How to fake ibus to be removed」這篇,
看到一個比較保險的作法,
設定
執行
sudo dpkg-divert --package im-config --rename /usr/bin/ibus-daemon
顯示
Adding 'diversion of /usr/bin/ibus-daemon to /usr/bin/ibus-daemon.distrib by im-config'
確認
執行
file /usr/bin/ibus-daemon
顯示
/usr/bin/ibus-daemon: cannot open `/usr/bin/ibus-daemon' (No such file or directory)
執行
file /usr/bin/ibus-daemon.distrib
顯示
/usr/bin/ibus-daemon.distrib: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=7fcc6f12def48a90f287cc722d60da179af3b6f7, for GNU/Linux 3.2.0, stripped
執行
dpkg -S /usr/bin/ibus-daemon
顯示
diversion by im-config from: /usr/bin/ibus-daemon
diversion by im-config to: /usr/bin/ibus-daemon.distrib
ibus: /usr/bin/ibus-daemon
恢復
執行
sudo dpkg-divert --package im-config --rename --remove /usr/bin/ibus-daemon
顯示
Removing 'diversion of /usr/bin/ibus-daemon to /usr/bin/ibus-daemon.distrib by im-config'
相關文件
- Debian Wiki / InputMethodBuster / How to fake ibus to be removed