Napotkałem problem z Nautilus, dla którego nie znalazłem innego rozwiązania niż pobranie kodu źródłowego, dokonanie pewnych zmian i samodzielne skompilowanie. Mam teraz dwie wersje nautilusa, oficjalną wersję z repozytoriów i moją z kilkoma zmianami. Chciałbym zatrzymać oba.
Jaki byłby dobry sposób, aby powiedzieć aplikacjom, aby korzystały z mojej skompilowanej wersji Nautilusa podczas uruchamiania Nautilusa z poziomu aplikacji? (np. otwieranie folderu Pobrane za pomocą Firefoxa)
Zorientowałem się, że wywołania firefoxa, /usr/bin/nautilus
więc mogłem po prostu zastąpić to dowiązaniem symbolicznym do mojego własnego programu. Uważam jednak, że to dowiązanie symboliczne zostanie zastąpione, gdy tylko zainstaluję aktualizację Nautilus. Czy jest coś jeszcze, co mógłbym zrobić?
/usr/bin/nautilus
wydaje się, że jest w jakiś sposób zakodowany. Jeśli zostanie usunięty, firefox nie robi już nic, gdy próbuję otworzyć folder Pobrane, chociaż w mojej wersji nautilus znajduje się dowiązanie symboliczne do mojej własnej wersji /usr/local/bin
. Moja $PATH
zmienna to/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
strace -f -efile,execve -o firefox_syscalls.txt firefox
aby zobaczyć, co robi ff. Jeśli przeszukujesz dziennik nautilus
, może ci to coś pokazać. (To -e
filtruje wywołania systemowe execve
i pliki open / close / pathname rzeczy, w przeciwnym razie byłoby to zalewanie futex
i gniazdo odczytu / zapisu dla X11).
/usr/local/bin
nie działało? tzn. czy firefox przeszukał twój plik$PATH
i znalazł jego wersję/usr/bin
, czy też to (lub twoje xdg-open rzeczy) na stałe/usr/bin/nautilus
? Instalacja własnej wersji czegoś w / usr / local zwykle działa.