Как распространять замороженные бинарные гемы с помощью приложения Ruby (не Rails) - PullRequest
2 голосов
/ 20 сентября 2011

Я написал несколько сценариев Ruby, которые объединяют различные инструменты для создания «рабочего процесса для академиков» . Многие мои друзья были очень заинтересованы в том, чтобы попробовать это, однако их сдерживает то, насколько сложно установить или воспроизвести мою среду.

Хотя Ruby поставляется встроенным в Mac OSX (все приложения, которые я интегрирую, являются приложениями Mac, поэтому, к сожалению, решение может работать только на Mac), я использую несколько бинарных жемчужин, в том числе Appscript (мост к AppleScript). Проблема в том, что для этого требуется XCode, который мои друзья, не являющиеся программистами, не установили (и кажется немного требовательным попросить их установить 3 ГБ программного обеспечения для запуска нескольких килобайт кода).

Я попытался заморозить гемы, установив их с помощью gem -i, в подкаталог исходного кода ( на github ), и попытался удалить весь мой центральный каталог гемов на моем локальном компьютере - он работал нормально, сценарии продолжали работать и т. д. Однако, когда мои друзья попытались запустить сценарии, они получили сообщения об ошибках, касающиеся отсутствующих файлов библиотеки и т. д.

Итак, два моих вопроса: * Насколько специфичны скомпилированные бинарные гемы? они будут работать на других версиях Mac OSX? с другими версиями Ruby? так далее * Как я могу точно узнать, от каких двоичных файлов (расположенных в центральных местах) зависит гем Ruby, и упаковать его в исходный код (и как мне указать гему, где найти эти файлы в нестандартных местах)

Я знаю, что это не может быть "стандартной процедурой", и я должен просто упаковать ее как драгоценный камень и позволить моим друзьям разобраться с проблемами и т. Д. - но я бы очень хотел решить эту проблему, и я уверен, что должно быть какой-то способ сделать это?

Большое спасибо

1 Ответ

0 голосов
/ 07 марта 2013

По моему опыту, скомпилированные гемы не переносимы.Они зависят от точной версии ruby ​​и любых других библиотек, которые они используют.Лучшим решением было бы, чтобы ваши друзья установили версию Xcode «Инструменты командной строки» - это всего лишь 100-150 МБ и включает в себя все необходимое для создания гемов (и другого программного обеспечения).Для загрузки вам понадобится (бесплатный) Apple Developer ID.

https://developer.apple.com/downloads?q=Command%20Line%20Tools

...