Я столкнулся с проблемой с Nautilus, для которой я не нашел никакого решения, кроме как загрузить исходный код, внести некоторые изменения и скомпилировать его самостоятельно. Так что теперь у меня есть две версии nautilus, официальная версия из репозиториев и моя с некоторыми изменениями. Я хотел бы сохранить оба.
Что может быть хорошим способом сказать приложениям использовать мою собственную скомпилированную версию Nautilus при запуске Nautilus из приложения? (например, открытие папки загрузок с помощью Firefox)
Я понял, что вызовы firefox позволяют /usr/bin/nautilusмне просто заменить это символической ссылкой на мою собственную программу. Однако я полагаю, что эта символическая ссылка будет перезаписана, как только я установлю обновление для Nautilus. Есть ли что-нибудь еще, что я мог сделать?
/usr/bin/nautilusпохоже, как-то жестко запрограммирован. Если он удален, Firefox больше ничего не делает, когда я пытаюсь открыть папку «Downloads», хотя есть символическая ссылка на мою собственную версию nautilus в /usr/local/bin. Моя $PATHпеременная/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
strace -f -efile,execve -o firefox_syscalls.txt firefoxпосмотреть, что делает ff. Если вы ищете в журнале nautilus, это может вам кое-что показать. (Это -eфильтрует системные вызовы execveи файл open / close / pathname, в противном случае это будет поток futexи чтение / запись сокета для X11).
/usr/local/binне сработало? т. е. Firefox проверил ваш файл$PATHи нашел его версию/usr/bin, или он (или ваш материал в xdg-open) содержит жесткий код/usr/bin/nautilus? Установка собственной версии чего-либо в / usr / local обычно работает.