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に独自のバージョンをインストールすると、通常は機能します。