Red Hat Training

A Red Hat training course is available for RHEL 8

4.6.3. Creación de paquetes RPM a partir de paquetes RubyGems

Esta sección describe cómo crear paquetes RPM a partir de paquetes creados por RubyGems.

Para crear un RPM fuente para un paquete RubyGems, se necesitan dos archivos:

  • Un archivo de gemas
  • Un archivo RPM SPEC

4.6.3.1. Convenciones de los archivos SPEC de RubyGems

Un archivo SPEC de RubyGems debe cumplir las siguientes convenciones:

  • Contiene una definición de %{gem_name}, que es el nombre de la especificación de la gema.
  • El origen del paquete debe ser la URL completa del archivo de la gema liberada; la versión del paquete debe ser la versión de la gema.
  • Contiene el BuildRequires: una directiva definida de la siguiente manera para poder tirar de las macros necesarias para construir.

    BuildRequires:rubygems-devel
  • No contener ninguna RubyGems Requires o Provides, porque son autogeneradas.
  • No contener la directiva BuildRequires: definida como sigue, a menos que quiera especificar explícitamente la compatibilidad con la versión de Ruby:

    Requiere: ruby(release)

    La dependencia generada automáticamente de RubyGems (Requires: ruby(rubygems)) es suficiente.

Macros

Las macros útiles para los paquetes creados por RubyGems son proporcionadas por los paquetes rubygems-devel.

Tabla 4.3. Macros de RubyGems

Nombre de la macroRuta ampliadaUso

%{gem_dir}

/usr/share/gems

Directorio superior para la estructura de la gema.

%{gem_instdir}

%{gem_dir}/gems/%{gem_name}-%{version}

Directorio con el contenido real de la gema.

%{gem_libdir}

%{gem_instdir}/lib

El directorio de la biblioteca de la gema.

%{gem_cache}

%{gem_dir}/cache/%{gem_name}-%{version}.gem

La gema en caché.

%{gem_spec}

%{gem_dir}/especificaciones/%{gem_name}-%{version}.gemspec

El archivo de especificación de gemas.

%{gem_docdir}

%{gem_dir}/doc/%{gem_name}-%{version}

La documentación RDoc de la gema.

%{gem_extdir_mri}

%{_libdir}/gems/ruby/%{gem_name}-%{version}

El directorio para la extensión de la gema.