Установка предварительно скомпилированных гемов ruby ​​для правильной версии ruby? - PullRequest
1 голос
/ 30 мая 2019

Мне нужно установить несколько гемов ruby ​​с собственными расширениями на машины без компилятора, и я должен сделать это для нескольких разных версий ruby.

Я планирую создать конвейер CI для загрузки исходного кода gem, компиляции и загрузки в частный репозиторий Rubygems.

Я собираюсь использовать gem-compiler для сборки гемов. Я вижу, что по умолчанию гемы связаны с минорной версией Ruby (например, 2.5) и не будут работать на разных версиях. Есть опция командной строки, чтобы отключить блокировку ABI, но она выглядит страшно и поставляется с предупреждением «не использовать».

Я читал документацию по API и командам Rubygems, но не смог найти способ упорядочить разные двоичные файлы для одной и той же версии гема, чтобы загрузить правильную версию для правильной версии ruby.

Это вообще возможно? Как?

Или я должен просто пойти на что-то более примитивное, например, иметь отдельный закрытый репозиторий для каждой версии Ruby?

1 Ответ

0 голосов
/ 30 мая 2019

Я не уверен, возможно ли это через API rubygems для смешивания различных двоичных файлов.Я думаю, что вы имеете в виду, например, файлы .so в Linux?Если это так, то вы можете попытаться на самом деле скомпилировать на своем локальном компьютере с помощью различных версий ruby ​​(используйте rvm или любой другой способ получить несколько версий ruby; я скомпилирую в каталоги с версиями, такие как /Programs/Ruby/2.5.2 и т. Д.), Затем соберитепривязки.Получив файл .so, вы также можете просто поместить его в рубиновый камень;Я злоупотребляю lib / из-за этого.

Я не уверен, как сделать так, чтобы его можно было легко установить на целевой машине, но вы всегда можете добавить какой-нибудь файл bin / ruby, который выполняет установку.

Полагаю, первым шагом будет то, что вы сможете убедиться, что построена правильная версия;как только это сработает, это станет возможным.Rubygems тоже не делает что-то волшебное.

Редактировать: Возможно, вы имеете в виду окна?Так как вы связались с Луисом, а Луис в прошлом работал с Windows.Windows, вероятно, делает все немного сложнее ... задача, кажется, не тривиальная.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...