cree rápidamente paquetes ruby ​​nativos con fpm + rbenv

tres cosas son necesarias para esto:

@ jordansissel’s increíble fpm

Los igualmente maravillosos rbenv y ruby-build de @sstephenson

Esto supone que tiene una configuración de rbenv en funcionamiento.

$ CONFIGURE_OPTS='--enable-shared' rbenv install 1.9.3-p392
$ cd
~/.rbenv/versions/1.9.3-p392
$ fpm
-s dir -t rpm --prefix /usr -n ruby
--version 1.9.3 .

Eso es todo literalmente. Terminarás con un paquete llamado

ruby-1.9.3-1.x86_64.rpm

Para verificar qué instalará este RPM:

rpm -qpl ruby-1.9.3-1.x86_64.rpm

El número de versión podría necesitar algunos ajustes (ver fpm -h) pero en aras de la brevedad lo he mantenido breve. Una advertencia:

  • Si usa la ruta completa del directorio en lugar de cd, el paquete RPM lo reflejará y tendrá el árbol rbenv en / usr en su paquete.
  • rbenv por defecto compila libyaml, pero no las libs ruby ​​compartidas.

Tenga en cuenta que fpm es una gran herramienta y puede cambiar fácilmente varios formatos de salida de empaquetado (.deb es la alternativa obvia).

¿Por qué harías esto?

  • si tiene que bloquear el ‘ruby del sistema’ o anularlo de alguna manera, lo que a menudo es necesario para garantizar el uso de una determinada versión sin escribir scripts de envoltura y enlaces simbólicos (que viene con su propio conjunto de problemas).

  • Sabe que sus otros paquetes funcionarán con el Ruby que está construyendo y no se preocupan por las dependencias. En ese caso use:

    --provides ruby --provides ruby-libs --provides ruby-irb

  • Probablemente no deberías usar . Siempre.--provides ruby(abi)

  • Generalmente sabes lo que estás haciendo. Esta es solo una forma rápida de hacerlo. =]

  • Esta es una cuerda más que suficiente para ahorcarte. =]

¡Disfrutar!