LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 960|回复: 15

what's happened? for helps.

[复制链接]
发表于 2011-11-11 10:13:12 | 显示全部楼层 |阅读模式
Something strange occurred after last upgrading my system.
Root terminal and Ibus in gnome desktop couldn't been active.
there is an error report as follows if the command was executed in the user's terminal

  1. $ ibus-setup

  2. (main.py:5621): IBUS-WARNING **: Unable to load /var/lib/dbus/machine-id: 打开文件“/var/lib/dbus/machine-id”失败:没有那个文件或目录
复制代码

what's wrong with my gentoo?
 楼主| 发表于 2011-11-11 12:15:32 | 显示全部楼层
总算在root下能够启动ibus了,
但是不知道什么地方发生问题了?
重新emerge了ibus、python、dbus、gnome-terminal都不管用。
求助啊。
回复 支持 反对

使用道具 举报

发表于 2011-11-11 14:54:09 | 显示全部楼层
嫌ibus反应太慢而用fcitx的表示什么忙也帮不上,除了帮顶。
回复 支持 反对

使用道具 举报

发表于 2011-11-11 16:31:48 | 显示全部楼层
  1. dbus-uuidgen --ensure
复制代码
生成新的machine-id.
回复 支持 反对

使用道具 举报

发表于 2011-11-11 17:59:13 | 显示全部楼层

  • 楼上的方法...最好不要用... 一个系统,两个id是一种很讨厌的情形...原因见帖子最后一条。
  • 这个错误是个warning,似乎是不会影响ibus的正常工作的... 无法激活ibus可能另有原因,例如dbus的session bus未正常启动...
  • 如果ibus是用其他用户身份启动的,使用root身份的GTK+和GTK+ immodule程序就无法使用ibus,因为dbus session bus目前不能跨用户通信,也就是说,假如阁下使用root身份启动的gnome-terminal和其他用户身份启动的ibus,ibus无法激活是正常现象。我个人的解决方法是在对root及其他用户使用xim GTK+ immodule,也就是在/etc/zsh/zshrc(bash用户是/etc/bash/bashrc)中添加:
    1. # == ibus ==
    2. export XMODIFIERS="@im=ibus"
    3. export GTK_IM_MODULE="ibus"
    4. export QT_IM_MODULE="xim"
    5. if [ 1000 = $(id -u) ]; then
    6.         export GTK_IM_MODULE=ibus
    7. else
    8.         export GTK_IM_MODULE=xim
    9. fi
    复制代码
    (当然,如果阁下用于启动ibus的用户id不是1000,请替换一下。)
  • 前几天发现了这个warning后我专门研究了一下,发现这个warning是由dbus ebuild的修改导致的:

    https://bugs.gentoo.org/show_bug.cgi?id=370451

    dbus ebuild中将/var/lib/dbus/machine-id移到了/etc/machine-id,而ibus对这个变化不太适应...

    消除这个warning的方法1:以root身份执行:
    1. ln -s ../../../etc/machine-id /var/lib/dbus/machine-id
    复制代码

    消除这个warning的方法2:新建一个文件 /etc/portage/env/sys-apps/dbus ,加入以下内容:
    1. post_pkg_postinst() {
    2.     einfo 'Creating a symlink for old dbus machine-id location ...'
    3.     ln -s ../../../etc/machine-id "${ROOT}"var/lib/dbus/machine-id
    4. }
    复制代码
    之后重新emerge dbus。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-11-11 21:12:57 | 显示全部楼层
Post by RichardGv;2154831

  • 楼上的方法...最好不要用... 一个系统,两个id是一种很讨厌的情形...原因见帖子最后一条。

  • 前几天发现了这个warning后我专门研究了一下,发现这个warning是由dbus ebuild的修改导致的:

    https://bugs.gentoo.org/show_bug.cgi?id=370451

    dbus ebuild中将/var/lib/dbus/machine-id移到了/etc/machine-id,而ibus对这个变化不太适应...

    消除这个warning的方法1:以root身份执行:
    1. ln -s ../../../etc/machine-id /var/lib/dbus/machine-id
    复制代码

    消除这个warning的方法2:新建一个文件 /etc/portage/env/sys-apps/dbus ,加入以下内容:
    1. post_pkg_postinst() {
    2.     einfo 'Creating a symlink for old dbus machine-id location ...'
    3.     ln -s ../../../etc/machine-id "${ROOT}"var/lib/dbus/machine-id
    4. }
    复制代码
    之后重新emerge dbus。

非常感谢,普通用户的ibus也正常使用了。
看来我还不太适应~x86的要求,完全无法解决问题,
ebuild还没有能力完全看懂。

还想请教几个问题:

1.gnome中dconf是不是必须的?
dconf不知道什么时候被作为依赖装在了系统里,
但是我基本上不需要它。其实,系统也有好多其他被迫安装的包,
例如,fltk也是在不知情的情况下被装上的。

2.elogviewer、cursor selection等的icon不知为什么消失了?
不论怎么更新系统,甚至emerge -ave world,所有用户的程序栏中的elogviewer、cursor selection是没有图标的。当然,已经将elogviewer的权限添加给普通用户。

3.能不能将terminal下的提示符换成Fedora的样式?
当然,这个只是个shell的配置问题,属于本人比较弱,
大概的了解过一点点,但具体的写法以及配置就不知道了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-11-11 21:14:54 | 显示全部楼层
Post by zhou3345;2154815
嫌ibus反应太慢而用fcitx的表示什么忙也帮不上,除了帮顶。


感动啊,谢了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-11-11 21:17:46 | 显示全部楼层
Post by mathfeel;2154827
  1. dbus-uuidgen --ensure
复制代码

生成新的machine-id.


感谢你的建议。
回复 支持 反对

使用道具 举报

发表于 2011-11-12 07:50:23 | 显示全部楼层
Post by easior lars;2154852
非常感谢,普通用户的ibus也正常使用了。
看来我还不太适应~x86的要求,完全无法解决问题,
ebuild还没有能力完全看懂。

还想请教几个问题:

1.gnome中dconf是不是必须的?
dconf不知道什么时候被作为依赖装在了系统里,
但是我基本上不需要它。其实,系统也有好多其他被迫安装的包,
例如,fltk也是在不知情的情况下被装上的。

2.elogviewer、cursor selection等的icon不知为什么消失了?
不论怎么更新系统,甚至emerge -ave world,所有用户的程序栏中的elogviewer、cursor selection是没有图标的。当然,已经将elogviewer的权限添加给普通用户。

3.能不能将terminal下的提示符换成Fedora的样式?
当然,这个只是个shell的配置问题,属于本人比较弱,
大概的了解过一点点,但具体的写法以及配置就不知道了。


1. euqery d dconf
3. 在 fedora 里面 echo $PS1,然后在 gentoo 你的 .bashrc 里面写上 PS1=xxx(上面打印的那个),我反而觉得 gentoo 里的还有颜色,挺好的,呵呵
回复 支持 反对

使用道具 举报

发表于 2011-11-12 07:54:27 | 显示全部楼层
我也碰到这个 warning 了。我的 ibus 是在 .xprofile 里面设置启动的,如下

export XMODIFIERS="@im=ibus"
#export XIM="ibus"
export GTK_IM_MODULE="ibus"
export QT_IM_MODULE="ibus"
ibus-daemon -d -x

现在系统登录之后,ibus 里面切换不出输入法,在里面做设置也保存不了。但是开 term,自己输入命令启动的,可以输入没问题。

以前一直这么启动的,就是最近我升级了一下 python 2.6 -> 2.7,好像就出了问题。已经执行过 python-updater,虽然有几个包反复需要编译,但里面没有 ibus 相关的,ibus 也反复编译过,没效果。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表