this チュートリアルのように、PATHにFirefoxを追加しようとしています。 MacブックエアのGUIの[アプリケーション]フォルダーにFirefoxがあります。パスに場所を追加することに慣れています。しかし、自分のマシンで実行可能なfirefoxを見つける方法がわかりません。アプリケーションフォルダーは、Firefox実行可能ファイルをどこに探しに行くのですか?
バイナリはアプリケーションバンドル内にあります。例えば、
$ 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 と対話するためのコマンドラインツールです。
コマンド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
OSXのlocate
機能にアクセスできない場合は、mdfind
を使用してfirefox
の発生を検索することもできます。
まったく同じ問題ではありませんが、グーグルでこの答えを見つけたので、ここでも解決策を提供しています。
私はキュウリ/セレンテストのようなスクリプトからそれを実行するための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) }'
あなたはこのようにそれを行うことができます:
$ readlink -f $(type -p firefox)
firefox
がPATHにない場合:
$ find / -name firefox 2>/dev/null