Поиск установленного приложения на Mac / Linux - PullRequest
0 голосов
/ 14 сентября 2011

Если у вас есть приложение, которое использует другое устанавливаемое приложение, в идеале вы хотите, чтобы ваш установщик автоматически нашел этот путь зависимости. В Windows вы можете использовать реестр, но как насчет Mac / Linux? В данном конкретном случае это приложение на C ++, если это имеет значение.

Ответы [ 3 ]

1 голос
/ 14 сентября 2011

В Mac OS X, если вы ищете приложение, которое входит в типичный пакет .app, вы можете использовать Spotlight, чтобы найти его по его идентификатору пакета, используя утилиту командной строки mdfind(1). Например, чтобы узнать, установлен ли Firefox (и где), выполните следующую команду:

mdfind 'kMDItemCFBundleIdentifier == org.mozilla.firefox'
1 голос
/ 14 сентября 2011

Если вы попытаетесь распространить ваше приложение через любой из распространенных менеджеров пакетов в Linux (apt, yum), вы можете добавить приложение в качестве зависимости.Если вы выберете нестандартные сценарии установки, вам нужно прибегнуть к каким-то хакерским действиям.Либо выясните, какой менеджер пакетов используется в системе, и попробуйте выполнить запрос к нему (что может привести к сбою, если другое приложение было установлено без менеджера пакетов), или попробуйте что-то вроде which required_app.

Перейти кво-первых, если вы хотите сделать это правильно.

0 голосов
/ 14 сентября 2011

Как правило, в системах UNIX можно ожидать, что все программы будут находиться в $ PATH вместо того, чтобы распространяться в виде сборной ложки с тупо названными и частично локализованными каталогами.Таким образом, по существу вам не нужно искать какой-либо путь зависимости - вы просто вызываете другое «приложение» (программу) через execvp, а libc заботится о том, чтобы пройтись по записям в $ PATH и найти исполняемый файл.

В классической модели UNIX вы ничего не проверяете в установщике, а просто проверяете во время выполнения, доступен ли исполняемый файл (с которым, например) или нет.

...