2016-04-19 11 views
0

Ich versuche, einen lokalen Build von gvfs auszuführen. Ich bin dem Dokument Newcomers gefolgt, um eine funktionierende Build-Umgebung einzurichten, habe gvfs aus Quellen erstellt und versuche jetzt herauszufinden, wie es ausgeführt wird.Ausführen von gvfs nach dem Erstellen

Die docs haben Anweisungen auf Anwendungen oder der GNOME-Shell ausgeführt wird, die sagen, dass ich die aktuelle Instanz töten müssen, dann starten Sie den neu aufgebauten binären mit jhbuild run, wie in:

$ killall gnome-weather 
$ jhbuild run gnome-weather 

oder, im Fall der Schale,

$ jhbuild run gnome-shell --replace 

Für gvfs sehe ich, dass es eine Reihe von Prozessen (alle Kinder von P1 laufen unter meinem Konto) laicht, die erste von ihnen (niedrigste PID) Sein gvfsd. Also habe ich versucht, die folgenden:

$ killall gvfsd 
$ jhbuild run gvfs 

die mir die Fehlermeldung gibt:

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

Wenn stattdessen ich versuche

$ jhbuild run gvfsd 

ich die gleiche Meldung. Gleiches wenn ich eins der oben genannten zwei mit --replace versuche.

Da gvfs ein Dämon ist eher als eine Anwendung, suchte ich ein bisschen herum und stieß auf this post, die Start-Daemons mit

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

Keine Freude schlägt vor, entweder ... egal, ob ich gvfs oder gvfsd für den Namen bekomme ich die Fehlermeldung

Couldn't exec gvfs: No such file or directory 

(Berichterstattung über den Namen, den ich im Befehl angegeben).

Ist dies der richtige Weg, um gvfs überhaupt zu starten? Wenn nicht, was ist? Wenn ja, wie kann ich herausfinden, was schief läuft?

EDIT: Offenbar ist der Code, den ich ändern möchte, Teil der Binärdatei gvfs-mtp-volume-monitor - aber im Wesentlichen das gleiche gilt hier. Wie starte ich meine eigene Version der Binärdatei und nicht die, die mit meiner Betriebssystem-Distribution geliefert wurde?

Antwort

0

jhbuild run kann für gvfs auf die gleiche Weise verwendet werden.

Für gvfsd wie folgt vor:

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

Der -r Schalter gvfsd sagt alle laufenden Version zu ersetzen. gvfsd startet auch gvfsd-fuse, wenn es erstellt wurde und Sie es nicht über einen Befehlszeilenschalter deaktiviert haben.

Sie müssen auch, wie alle Volumen-Monitore (Sie brauchen, und andere Prozesse) ersetzen:

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

Es muss mit etwas genommen werden, die über dbus aufgerufen wird:

  • Namespaces kann zwischen den Versionen wechseln. Wenn dies zwischen der Version, die mit Ihrem Betriebssystem geliefert wurde, und der aktuellen Version geschieht, funktioniert letzteres nur, wenn Sie Ihre dbus-Konfiguration anpassen, um dies zu berücksichtigen.
  • Wenn dbus zum Erstellen von Prozessen verwendet wird, greift es auf die Binärdateien zurück, die mit dem Betriebssystem geliefert werden. Auch hier müssten Sie Ihre dbus config (speziell .service Einträge) ändern, um auf Ihre Binärdateien zu zeigen.
Verwandte Themen