Ich bin auf ein Problem mit Nautilus gestoßen, für das ich keine andere Lösung gefunden habe, als den Quellcode herunterzuladen, einige Änderungen vorzunehmen und ihn selbst zu kompilieren. Jetzt habe ich zwei Versionen von Nautilus, die offizielle Version aus den Repositories und meine mit ein paar Änderungen. Ich möchte beides behalten.
Was wäre eine gute Möglichkeit, Anwendungen anzuweisen, meine eigene kompilierte Version von Nautilus zu verwenden, wenn Nautilus innerhalb der Anwendung gestartet wird? (zB Öffnen des Downloads-Ordners mit Firefox)
Ich habe herausgefunden, dass Firefox aufruft, /usr/bin/nautilus
damit ich dies einfach durch einen Symlink zu meinem eigenen Programm ersetzen kann. Ich glaube jedoch, dass dieser Symlink überschrieben wird, sobald ich ein Update für Nautilus installiere. Kann ich sonst noch etwas tun?
/usr/bin/nautilus
scheint aber irgendwie fest codiert zu sein. Wenn es entfernt wird, macht Firefox nichts mehr, wenn ich versuche, den Download-Ordner zu öffnen, obwohl es einen Symlink zu meiner eigenen Version von Nautilus in gibt /usr/local/bin
. Meine $PATH
Variable ist/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
strace -f -efile,execve -o firefox_syscalls.txt firefox
zu sehen, was ff tut. Wenn Sie im Protokoll nach suchen nautilus
, wird Ihnen möglicherweise etwas angezeigt. ( -e
Dadurch werden die Systemaufrufe gefiltert execve
und Open / Close / Pfadnamen-Dateien abgelegt, andernfalls wäre dies eine Flut von futex
Lese- / Schreibvorgängen für X11.)
/usr/local/bin
hat nicht funktioniert? dh hat Firefox Ihre durchsucht$PATH
und die Version in gefunden/usr/bin
, oder ist es (oder Ihr xdg-offenes Zeug) Hardcode/usr/bin/nautilus
? Die Installation einer eigenen Version von etwas in / usr / local funktioniert normalerweise.