Nautilusで問題が発生しました。ソースコードをダウンロードし、変更を加えて自分でコンパイルする以外に解決策は見つかりませんでした。だから今、私はnautilusの2つのバージョンを持っています。リポジトリからの公式バージョンといくつかの変更を加えたものです。両方残しておきたいです。
アプリケーション内からNautilusを起動するときに、独自にコンパイルしたバージョンのNautilusを使用するようにアプリケーションに指示する良い方法は何でしょうか?(FirefoxでDownloadsフォルダーを開くなど)
私は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
とファイルのオープン/クローズ/パス名などをフィルタリングします。それ以外の場合はfutex
、X11のソケットの読み取り/書き込みのフラッドになります)。
/usr/local/bin
うまくいきませんでしたか?つまり、Firefoxがあなた$PATH
を検索してでバージョンを見つけました/usr/bin
か、それとも(またはあなたのxdg-openのもの)ハードコードしました/usr/bin/nautilus
か?/ usr / localに独自のバージョンをインストールすると、通常は機能します。