Manjaro Linux 乐于简单

2020年9月中旬更新后fcitx崩溃问题

论坛 技术讨论 2020年9月中旬更新后fcitx崩溃问题

该主题包含 2 个回复,有 1 个参与者,并且由  托马斯吴 于 3 周 6 天 前 最后一次更新。

  • 托马斯吴 回复

    2020年9月10号到17号之间(具体哪一天不太记得了),我随手更新Manjaro之后发现fcitx-sogoupinyin在绝大多数软件(包括firefox, vscode, google-chrome, vim, kate等)中都不能输入了,我个人感觉是这次升级中Manjaro的fcitx出问题了,并且我做了以下测试

    0.9月10号之前的Manjaro版本是可以正常使用fcitx-sogoupinyin的
    1.在firefox, vscode, vim等软件中,不仅fcitx-sogoupinyin不能使用了,fcitx-googlepinyin也不能使用
    2.在deepin-wine-wechat和WPS中,fcitx-sogoupinyin完全可以正常使用
    3.我测试了Xfce和i3-wm两种桌面环境,fcitx-sogoupinyin都不能正常使用了
    4.我在虚拟机中测试了archlinux,也升级到最新版后,发现fcitx-sogoupinyin可以正常使用

    所以我感觉应该是此次Manjaro升级时fcitx的相关依赖包或者组件没有处理好,不知道大家有没有遇到类似的问题,以及各位大佬有没有什么解决办法?

    P.S. 我现在打中文都是在WPS里打好,再copy过去。。。

  • ainstain 回复

    解决了吗解决了吗

  • 托马斯吴 回复

    哈哈哈,我自己已经解决掉啦

    先说结论,应该是Manjaro在9月15号左右的某次升级中,把fcitx-lilydjwg包中关于gtk的接口或者模块弄坏了,导致所有依赖于gtk的程序都无法使用fcitx输入法。
    所以我的解决方法是删除fcitx-lilydjwg,并重新安装fcitx-gtk2和fcitx-gtk3。具体操作是pacman -Rs fcitx-lilydjwg-git (可能还得删除其它依赖于它的包),然后 pacman -S fcitx-gtk2 fcitx-gtk3,安装的时候会提示重定向为fcitx包或fcitx-lilydjwg-git包,这次不要选择fcitx-lilydjwg-git,而是选择另一个。装好之后再把之前删掉的包装回来再重启就好了

    最后说一下我debug的过程。首先看到arch wiki的fcitx词条里提到一个命令fcitx-diagnose,可以用于诊断问题。利用这个命令,我发现了我的gtk模块有好几个Error
    、、、
    ## Gtk:
    1. gtk – ${GTK_IM_MODULE}:

    环境变量 GTK_IM_MODULE 已经正确地设为了 “fcitx”.

    2. gtk-query-immodules:

    1. gtk 2:
    Cannot load module /usr/lib/gtk-2.0/2.10.0/immodules/im-fcitx.so: GModule (/usr/lib/gtk-2.0/2.10.0/immodules/im-fcitx.so) initialization check failed: GLib version too old (micro mismatch)
    /usr/lib/gtk-2.0/2.10.0/immodules/im-fcitx.so does not export GTK+ IM module API: GModule (/usr/lib/gtk-2.0/2.10.0/immodules/im-fcitx.so) initialization check failed: GLib version too old (micro mismatch)

    /usr/bin/gtk-query-immodules-2.0 找到了未知 gtk 版本的 gtk-query-immodules.

    **无法在 /usr/bin/gtk-query-immodules-2.0 的输出重找到 fcitx.**

    /usr/bin/gtk-query-immodules-2.0-32 找到了 gtk 2.24.32gtk-query-immodules.
    版本行:

    # Created by /usr/bin/gtk-query-immodules-2.0-32 from gtk+-2.24.32

    **无法在 /usr/bin/gtk-query-immodules-2.0-32 的输出重找到 fcitx.**

    **无法找到 gtk 2 的 fcitx 输入法模块.**

    2. gtk 3:
    Cannot load module /usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx.so: GModule (/usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx.so) initialization check failed: GLib version too old (micro mismatch)
    /usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx.so does not export GTK+ IM module API: GModule (/usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx.so) initialization check failed: GLib version too old (micro mismatch)

    /usr/bin/gtk-query-immodules-3.0 找到了未知 gtk 版本的 gtk-query-immodules.

    **无法在 /usr/bin/gtk-query-immodules-3.0 的输出重找到 fcitx.**

    **无法找到 gtk 3 的 gtk-query-immodules.**

    **无法找到 gtk 3 的 fcitx 输入法模块.**
    、、、

    而当我删除掉fcitx-lilydjwg并重新安装fcitx-gtk3时,输出是

    、、、
    ## Gtk:
    1. gtk – ${GTK_IM_MODULE}:

    环境变量 GTK_IM_MODULE 已经正确地设为了 “fcitx”.

    2. gtk-query-immodules:

    1. gtk 2:

    /usr/bin/gtk-query-immodules-2.0 找到了 gtk 2.24.32gtk-query-immodules.
    版本行:

    # Created by /usr/bin/gtk-query-immodules-2.0 from gtk+-2.24.32

    已找到 gtk 2.24.32 的 fcitx 输入法模块.

    “/usr/lib/gtk-2.0/2.10.0/immodules/im-fcitx.so”
    “fcitx” “Fcitx (Flexible Input Method Framework)” “fcitx” “/usr/share/locale” “ja:ko:zh:*”

    /usr/bin/gtk-query-immodules-2.0-32 找到了 gtk 2.24.32gtk-query-immodules.
    版本行:

    # Created by /usr/bin/gtk-query-immodules-2.0-32 from gtk+-2.24.32

    **无法在 /usr/bin/gtk-query-immodules-2.0-32 的输出重找到 fcitx.**

    2. gtk 3:

    /usr/bin/gtk-query-immodules-3.0 找到了 gtk 3.24.23gtk-query-immodules.
    版本行:

    # Created by /usr/bin/gtk-query-immodules-3.0 from gtk+-3.24.23

    已找到 gtk 3.24.23 的 fcitx 输入法模块.

    “/usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx.so”
    “fcitx” “Fcitx (Flexible Input Method Framework)” “fcitx” “/usr/share/locale” “ja:ko:zh:*”
    、、、

    可以看到,gtk2仍然有问题,但是gtk3的相应模块已经搞定了,所以至少那些使用gtk3的程序就可以正常使用fcitx了。而使用qt的程序其实本来就能够使用,像WPS、高能物理软件geant4之前就都可以正常使用fcitx的

回复:2020年9月中旬更新后fcitx崩溃问题
您的信息:


«-必填


«-必填,不公开


«-可以推广您的网站

2 + 8 =