Основные правила сборки приложений и модулей ruby изложены в Ruby Packaging Policy. Цель же этого документа – об'яснить на простых примерах как следует поступать в различных ситуациях а также показать как можно собирать простые модули.
Я не рассматриваю rubygems, так как эта система включает в себя свой пакетный менеджер, не совместимый с дистрибутивным. Про отношение Debian к rubygems можно прочитать тут, рекомендации апстриму изложены тут. У нас ситуация в общем аналогичная.
Тут пока находится поток сознания, который я буду приводить к нормальному виду.
Есть два способа сборки модулей. При помощи rubygems (который мы не рассматриваем по ряду причин), и «нативная» сборка, с помещением файлов в специальные каталоги, которые находятся в $LOAD_PATH.
Сборка пакета включает в себя:
Модули устанавливаются в так называемый vendor dir. В ALT Linux это /usr/share/ruby/vendor_ruby/RUBY.VERSION и /usr/lib/ruby/RUBY.VERSION/ARCHITECTURE. Поскольку по умолчанию установка модулей идёт в site dir, при сборке пакета надо использовать модуль vendor_specific, вызывая интерпретатор ruby как ruby -rvendor_specific. Для этого есть макрос %ruby.
Внутри тарбола с модулем (или программой) могут находиться следующие файлы и каталоги:
Существует несколько, различного уровня «стандартности», способов сборки модулей ruby.
Аналог configure, использует модуль mkmf, входящий в стандартную поставку ruby. Внутри скрипта проверяется наличие необходимых заголовочных файлов и библиотек, на выходе генерится Makefile, который обрабатывается стандартным make.
...