У меня установлен Firefox 10.6.3 на Mac OS X Snow Leopard от DMG. Я могу запустить Firefox из терминала, используя /Applications/Firefox.app/Contents/MacOS/firefox-bin . Однако, если я создаю символическую ссылку:

sudo ln -s /Applications/Firefox.app/Contents/MacOS/firefox-bin /bin/firefox

затем он отказывается работать или, по крайней мере, отображать. Когда я запускаю "firefox" из терминала, я вижу процесс сверху, но никогда не получаю графический интерфейс.

ls -lr /bin/firefox 
lrwxr-xr-x  1 root  wheel  52 May  5 15:19 /bin/firefox -> /Applications/Firefox.app/Contents/MacOS/firefox-bin

Есть идеи?

3 ответа3

2

Приложения Mac OS X используют относительные пути для поиска других файлов в своем комплекте приложений. Я не смог воспроизвести вашу проблему, но Firefox, запущенный по символической ссылке, не имел иконки Dock или строки меню для меня. Другие приложения напечатали следующую ошибку:

2011-03-05 15:20:03.083 appname[25356:903] No Info.plist file in application bundle or no NSPrincipalClass in the Info.plist file, exiting

Правильный способ достичь желаемого - создать скрипт, который вызывает исполняемый файл или, что лучше, (если по какой-либо причине у вас не работает несколько разных версий Firefox), используйте Launch Services:

#!/usr/bin/env bash
open -a Firefox

Это запускает экземпляр Firefox, зарегистрированный в Launch Services. Преимущество состоит в том, что вы можете перемещать пакет приложений, и он все равно будет работать, иначе пользователи Firefox могут переименовать бинарный файл, и он все равно продолжит работать.

0

Возможно, это проблема связывания исполняемого файла с общими библиотеками с использованием относительных путей? Это предотвратило символические ссылки на exes, работавшие для меня в прошлом на OSX 10.6.3.

Вы можете проверить абсолютные или относительные пути в определениях, используя,

otool -L /Applications/Firefox.app/Contents/MacOS/firefox-bin

Такие вещи, как @loader_path во встроенных путях к библиотекам, часто не работают, когда exe-файл вызывается по ссылке. Вы можете изменить относительные пути в exe, используя install_name_tool , согласно этому ответу.

0

Некоторое время назад я заметил нечто подобное (Firefox 3.6.3 в Mac OS X 10.4: в нем отображается главное окно, но не строка меню; весь ввод с клавиатуры идет в самое последнее активное приложение, а не в Firefox). Я заменил символическую ссылку на скрипт:

#!/bin/sh
exec '/Applications/Firefox.app/Contents/MacOS/firefox-bin' "$@"

Мне больше понравилась символическая ссылка, но ее недостаточно, чтобы отследить проблему. В Bugzilla Mozilla есть некоторые возможные ошибки (например, « Запуск Firefox, меню не появляется, а ввод текста отключен »), но ничто не выглядело как точное совпадение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .