Как распространять замороженные бинарные гемы с помощью приложения Ruby (не Rails)
Я написал несколько сценариев Ruby, которые объединяют различные инструменты для создания "рабочего процесса для ученых". Многие мои друзья были очень заинтересованы в этом, однако их сдерживает то, насколько сложно установить или воспроизвести мою среду.
Хотя Ruby встроен в Mac OSX (все приложения, которые я интегрирую, это приложения Mac, поэтому, к сожалению, решение может работать только на Mac), я использую несколько бинарных жемчужин, в том числе Appscript (мост к AppleScript). Проблема в том, что для этого требуется XCode, который мои друзья, не являющиеся программистами, не установили (и, кажется, немного требовательно попросить их установить 3 ГБ программного обеспечения для запуска нескольких килобайт кода).
Я попытался заморозить гемы, установив их с помощью gem -i в подкаталог исходного кода ( на github), и попытался удалить весь мой центральный каталог гемов на моем локальном компьютере - он работал нормально, скрипты все еще работали и т. Д. Однако, когда мои друзья пытались запустить сценарии, они получали сообщения об ошибках отсутствующих файлов библиотеки и т. д.
Итак, два моих вопроса: * Насколько специфичны скомпилированные бинарные гемы? они будут работать на других версиях Mac OSX? с другими версиями Ruby? и т. д. * как я могу точно определить, от каких двоичных файлов (расположенных в центральных местах) зависит гем Ruby, и упаковать его в исходный код (и как мне указать гему, где найти эти файлы в нестандартных местах)
Я знаю, что это не может быть "стандартной процедурой", и я должен просто упаковать ее как драгоценный камень и позволить моим друзьям разобраться с проблемами и т. Д. - но я бы очень хотел решить эту проблему, и я уверен, что должен быть какой-то способ делая это?
большое спасибо
1 ответ
По моему опыту, скомпилированные гемы не переносимы. Они зависят от точной версии ruby и любых других библиотек, которые они используют. Лучшим решением было бы, чтобы ваши друзья установили версию Xcode "Инструменты командной строки" - это всего лишь 100-150 МБ и включает в себя все, что вам нужно для создания гемов (и другого программного обеспечения). Вам понадобится (бесплатный) Apple Developer ID, чтобы загрузить его.
https://developer.apple.com/downloads?q=Command%20Line%20Tools