Debe introducir al menos 3 caracteres en el buscador.
Inicio / Wikis / Tutoriales / RPM - Construcción multi-arquitectura de paquetes RPM

RPM - Construcción multi-arquitectura de paquetes RPM

 ----- 
Copyright Tutorial de Donnie Barnes - 22 de Diciembre de 2006
Temas Relacionados: RedHat
7. Construcción multi-arquitectura de paquetes RPM

Ahora puede usarse RPM para construir paquetes para Intel i386, Digital Alpha ejecutando Linux y Sparc. También se ha informado de su funcionamiento en estaciones de trabajo SGI y HP. Hay varias características que hacen que la construcción de paquetes para todas las plataformas sea fácil. La primera de éstas es la directiva ``optflags'' del fichero /etc/rpmrc. Puede usarse para asignar las opciones usadas durante la construcción del software con valores específicos de cada arquitectura. Otras son las macros ``arch'' en el fichero spec. Pueden usarse para diferentes cosas, en función de la arquitectura para la que se está construyendo. Otra más, es la directiva ``Exclude'' de la cabecera.

7.1 Ejemplo de fichero spec

El siguiente es parte del fichero spec para el paquete ``fileutils''. Está configurado para compilar en Alpha e Intel.

Summary: GNU File Utilities
Name: fileutils
Version: 3.16
Release: 1
Copyright: GPL
Group: Utilities/File
Source0: prep.ai.mit.edu:/pub/gnu/fileutils-3.16.tar.gz
Source1: DIR_COLORS
Patch: fileutils-3.16-mktime.patch

%description
These are the GNU file management utilities.  It includes programs
to copy, move, list, etc, files.

The ls program in this package now incorporates color ls!

%prep
%setup

%ifarch alpha
%patch -p1
autoconf
%endif
%build
configure --prefix=/usr --exec-prefix=/
make CFLAGS="$RPM_OPT_FLAGS" LDFLAGS=-s

%install
rm -f /usr/info/fileutils*
make install
gzip -9nf /usr/info/fileutils*

.
.
.

7.2 Optflags

En este ejemplo puede ver cómo se usa la directiva ``optflags'' desde el fichero /etc/rpmrc. En función de la arquitectura para la que está construyendo, el valor adecuado lo proporciona RPM_OPT_FLAGS. Debe parchear el fichero Makefile de su paquete para usar esta variable en lugar de las directivas normales que puede usar (como -m486 y -O2). Tendrá una mejor perspectiva de lo que necesita hacer instalando este paquete de fuentes, desempaquetando el fichero tar con los fuentes y examinando el fichero Makefile. Examine el parche para el Makefile y compruebe qué cambios son necesarios realizar.

7.3 Macros

La macro %ifarch es muy importante para todo esto. La mayoría de las veces necesitará hacer un parche o dos específicos para una sóla arquitectura. En ese caso, RPM le permitirá aplicar ese parche sólo para una arquitectura.

En el ejemplo anterior, fileutils tiene un parche para máquinas de 64 bits. Obviamente, sólo tiene aplicación en Alpha, por el momento. Entonces, añadimos una macro %ifarch al parche de 64 tal como:

%ifarch axp
%patch1 -p1
%endif

Esto asegurará que el parche no es aplicado en cualquier arquitectura excepto en Alpha.

7.4 Excluyendo arquitectura de los paquetes.

A la vez que puede tener fuentes RPM en un sólo directorio para todas las plataformas, hemos implementado la posibilidad de ``excluir'' paquetes para que no sean construidos en ciertas arquitecturas. Debido a esto, puede hacer cosas como:

rpm --rebuild /usr/src/SRPMS/*.rpm

y conseguir construir los paquetes adecuados. Si todavía no ha portado una aplicación a una determinada plataforma, todo lo que tiene que hacer es añadir una línea como:

ExcludeArch: axp

a la cabecera del fichero spec del paquete de fuentes. Reconstruya entonces el paquete sobre la plataforma para la que está preparado. Como resultado tendrá disponible un paquete compilable sobre Intel pero que es fácilmente omitible sobre Alpha.

7.5 Acabando

Usar RPM para crear paquetes para múltiples arquitecturas es generalmente más sencillo de hacer que conseguir que el paquete compile por sí mismo en todos los casos. Como siempre, la mejor ayuda disponible cuando uno se queda bloqueado al construir un paquete RPM es examinar un paquete de fuentes similar.

Autor y licencia de 'RPM - Construcción multi-arquitectura de paquetes RPM'
Donnie Barnes Extraído de: http://www.insflug.org/COMOs/RPM-Como/RPM-Como.html Copyright
Este documento y sus contenidos están protegidos por las leyes de propiedad intelectual. Se permite la redistribución de este documento siempre que sus contenidos permanezcan intactos y sin cambios. En otras palabras, solamente lo puede reformatear, reimprimir o redistribuir.
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Wikis relacionados con 'RPM - Construcción multi-arquitectura de paquetes RPM'

El siguiente documento deriva del famoso feddi.como que acompaña a los paquetes del FEddi+bt, y... Más »
Las respuestas a tus problemas sobre Linux
Bienvenidos! Y gracias por tu interés en Red Hat Linux. Tenemos la que creemos mejor... Más »
Una de las razones principales para usar Blackbox es que requiere de MUY poca memoria.... Más »
Esta guía no es un documento general de seguridad. Esta guía está específicamente orientada a... Más »
¿Estás seguro de que deseas eliminar este capítulo?