Использование PackageMaker (OS X) для создания установщика для проекта make

Итак, предыстория, я скачал себе копию http://www.opensource.apple.com/source/curl/curl-68/ и я настроил, скомпилировал и установил его на свой компьютер, теперь я хочу сделать простой распространяемый компонент в виде пакет, чтобы я мог использовать его как требование для своего собственного пакета, который я создаю как часть приложения. Обратите внимание, причина, по которой я это делаю, заключается в том, что это более новая версия curl, чем та, что есть у горного льва.

Как лучше всего это сделать?

мне просто создать структуру папок внутри дистрибутива, которая помещает все созданные файлы в нужное место с нужными разрешениями?

or

Нужно ли мне создавать сценарий, потому что в конечном итоге кажется, что цель «make install» помещает большинство файлов туда, где они должны быть, с помощью «/usr/bin/install», и я не знаком с этой концепцией из Linux?

обратите внимание, что я также очень плохо знаком с концепцией PackageMaker, поэтому вам нужно четко понимать все функции, которые вы упоминаете. Еще один крошечный вопрос, я предполагаю, что нет ленивого способа заставить цель make создать структуру папок для меня, а не воссоздавать ее самостоятельно?


person Peter Fox    schedule 23.03.2013    source источник


Ответы (1)


Вам, вероятно, придется использовать первый подход, потому что на целевой машине может не быть утилиты make (насколько я знаю, это часть утилит командной строки Xcode)

Отредактировано: и, возможно, вам не следует предоставлять новейшую версию curl клиенту, просто добавьте требования к документации. И пользователь может установить его по своему усмотрению (например, с помощью brew). Или, может быть, статическая ссылка - ваше решение (но я не знаю, как вы используете завиток).

Редактировать 2: для статической компоновки просто запустите curl-config --static-libs и добавьте вывод в флаги компоновщика. Вы можете просмотреть зависимости с помощью команды otool -L <your_binary> и если нет curl - то вы слинковались с ним статически

person cody    schedule 23.03.2013
comment
Нет, это правда, извините, возможно, было неясно, что я имел в виду, например, при выполнении make install он выполняет большую часть установки файлов с помощью таких команд, как: /usr/bin/install -c .libs/libcurl.4.dylib /usr /local/lib/libcurl.4.dylib Нужно ли, чтобы пакет установщика делал то же самое, чтобы не повредить какой-то индекс, который OS X имеет для файлов? - person Peter Fox; 23.03.2013
comment
Нет, потому что я бы предпочел использовать официальный исходный код установки Apple, а не использовать, скажем, варку или порты, поскольку я хочу, чтобы процесс установки был простым, а варка и порты используют /opt, чтобы все, что я компилирую, было связано с разными библиотеками. - person Peter Fox; 23.03.2013
comment
Я не думаю, что это хорошая идея - заменять системные библиотеки вашими. Некоторые другие приложения могут зависеть от этой версии curl. Может быть, просто поместить его в какую-то другую папку и использовать вместо системной? - person cody; 23.03.2013
comment
ну, я вижу, вы используете библиотеки, а не двоичные файлы. Так что просто свяжите статически нужную версию. - person cody; 23.03.2013
comment
потенциально верно, но я не вижу проблемы в том, чтобы просто пойти с идеей создания пакета установщика, это собственная установка Apple curl, поэтому есть вероятность, что она была очень хорошо протестирована для использования в горном льве, поэтому я не беспокоюсь об этом фронт. Статическая ссылка кажется дополнительным усилием, которое, вероятно, не требуется. - person Peter Fox; 23.03.2013
comment
Я имею в виду, что пользователи могли установить другие приложения, использующие curl, разработанные с предположением, что будет стандартная библиотека curl. И после вашей установки эти приложения могут перестать работать. Кроме того, я вижу дополнительные усилия по созданию дополнительного установочного пакета и уведомлению пользователей о необходимости его установки. В то время как статическое связывание с помощью curl просто увеличит размер вашего двоичного файла примерно на полмегабайта. - person cody; 23.03.2013