构建后运行gvfs

时间:2016-04-19 11:26:47

标签: gnome jhbuild

我正在尝试运行gvfs的本地版本。我已经按照Newcomers文档建立了一个工作的构建环境,从源代码构建了gvfs,现在我正试图弄清楚如何运行它。

文档有关于运行应用程序或GNOME shell的说明,它们说我需要终止当前实例,然后使用jhbuild run启动新构建的二进制文件,如:< / p>

$ killall gnome-weather
$ jhbuild run gnome-weather

或者,在shell的情况下,

$ jhbuild run gnome-shell --replace

对于gvfs,我发现它会产生一系列进程(P1的所有子进程都在我的帐户下运行),其中第一个进程(最低PID)为gvfsd。所以我尝试了以下内容:

$ killall gvfsd
$ jhbuild run gvfs

这给了我错误信息:

jhbuild run: Unable to execute the command 'gvfs': [Errno 2] No such file or directory

如果我试试

$ jhbuild run gvfsd

我收到同样的消息。当我使用--replace尝试上述任何一个时,也是如此。

由于gvfs是一个守护进程而不是一个应用程序,我搜索了一下并遇到了this post,这表示启动守护进程

jhbuild run dbus-launch --exit-with-session name-of-daemon

没有快乐......无论我使用gvfs还是gvfsd作为名称,我都会收到错误消息

Couldn't exec gvfs: No such file or directory

(报告我在命令中指定的名称)。

这是启动gvfs的正确方法吗?如果不是,那是什么?如果是的话,我怎么能找出出了什么问题?

编辑:显然,我打算修改的代码是gvfs-mtp-volume-monitor二进制文件的一部分 - 但这里基本相同。如何启动我自己的二进制版本而不是我的操作系统发行版附带的版本?

1 个答案:

答案 0 :(得分:0)

jhbuild run可以以相同的方式用于gvfs。

对于gvfsd,请执行以下操作:

jhbuild run ~/jhbuild/install/libexec/gvfsd -r

-r开关告诉gvfsd替换任何正在运行的版本。 gvfsd如果已构建gvfsd-fuse也会启动,并且您没有通过命令行开关禁用它。

您还需要更换任何音量监视器(以及您需要的其他进程),例如:

killall gvfs-mtp-volume-monitor
jhbuild run ~/jhbuild/install/libexec/gvfs-mtp-volume-monitor

必须注意通过dbus调用的任何内容:

  • 命名空间可能会在不同版本之间发生变化。如果您的操作系统附带的版本与当前版本之间发生了这种情况,那么除非您调整dbus配置以反映这一点,否则后者将无效。
  • 如果使用dbus生成进程,它将回退到您的操作系统附带的二进制文件。您需要再次修改dbus配置(特别是.service条目)以指向您的二进制文件。