web-dev-qa-db-ja.com

Firefoxのビンがどこにあるかを知るにはどうすればよいですか?

this チュートリアルのように、PATHにFirefoxを追加しようとしています。 MacブックエアのGUIの[アプリケーション]フォルダーにFirefoxがあります。パスに場所を追加することに慣れています。しかし、自分のマシンで実行可能なfirefoxを見つける方法がわかりません。アプリケーションフォルダーは、Firefox実行可能ファイルをどこに探しに行くのですか?

4
bernie2436

バイナリはアプリケーションバンドル内にあります。例えば、

$ file /Applications/Firefox.app/Contents/MacOS/firefox-bin 
/Applications/Firefox.app/Contents/MacOS/firefox-bin: Mach-O universal binary with 2 architectures
/Applications/Firefox.app/Contents/MacOS/firefox-bin (for architecture x86_64):Mach-O 64-bit executable x86_64
/Applications/Firefox.app/Contents/MacOS/firefox-bin (for architecture i386): Mach-O executable i386

あなた/Applications/Firefox.app/Contents/MacOS/firefoxを実行してFirefoxを起動し、あなたができた/Applications/Firefox.app/Contents/MacOS$PATHに入れて、タイピングの手間を省きます。ただし、コマンドラインからアプリケーションを起動するMac OS Xの方法は

open -a Firefox

open(1)Launch Services と対話するためのコマンドラインツールです。

9
200_success

タイプの使用

コマンドtypeを使用して、実行可能ファイルがファイルシステムのどこから来ているかを見つけることができます。

$ type -a firefox
firefox is /usr/bin/firefox

ロケートの使用

firefoxがまだPATH上にない場合は、locateコマンドを使用して検索データベースに問い合わせることが他の唯一のオプションとなる場合があります。ただし、最近インストールされたアイテムは、updatedbコマンドがこれらの新しく追加されたファイルをファイルシステムにインデックスする機会があるまで、そこに表示されない場合があります。

$ locate firefox | grep 'firefox$'
/home/saml/.cache/mozilla/firefox
/home/saml/.mozilla/firefox
/home/saml/.rvm/gems/Ruby-1.9.2-p180/doc/Selenium-webdriver-2.5.0/rdoc/lib/Selenium/webdriver/firefox
/home/saml/.rvm/gems/Ruby-1.9.2-p180/gems/Selenium-webdriver-2.31.0/lib/Selenium/webdriver/firefox
/home/saml/.rvm/gems/Ruby-1.9.2-p180/gems/Selenium-webdriver-2.5.0/lib/Selenium/webdriver/firefox
/home/saml/Downloads/MISC/youtubexbmc/youtubexbmc-7c51c2b201a7/extensions/youtube-firefox
/home/saml/SparkleShare/personal_repo/APPS/installed/firefox
/usr/bin/firefox
/usr/lib64/firefox
/usr/lib64/firefox/firefox

mdfind

OSXのlocate機能にアクセスできない場合は、mdfindを使用してfirefoxの発生を検索することもできます。

3
slm

まったく同じ問題ではありませんが、グーグルでこの答えを見つけたので、ここでも解決策を提供しています。

私はキュウリ/セレンテストのようなスクリプトからそれを実行するためのFirefox実行可能ファイルを見つけようとしています。これが私がすることです:

Spotlightで見つける

firefox_paths = %x[mdfind "kMDItemFSName = Firefox.app"]
firefox_path = firefox_paths.split('\n').first.chomp
firefox_executable_path = File.join(firefox_path, '/Contents/MacOS/firefox')

Selenium::WebDriver::Firefox::Binary.path=firefox_executable_path

別の方法は、起動サービスデータベースをダンプし、そこにgrepすることです。

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -dump \
  | grep -n7 org.mozilla.firefox \
  | grep path: \
  | awk '{ print($3) }'
1
user132837

あなたはこのようにそれを行うことができます:

$ readlink -f $(type -p firefox)

firefoxがPATHにない場合:

$ find / -name firefox 2>/dev/null
1
Gilles Quenot