PDF de programación - Construcción archivos src.rpm por Hoyt Duff

Imágen de pdf Construcción archivos src.rpm por Hoyt Duff

Construcción archivos src.rpm por Hoyt Duffgráfica de visualizaciones

Publicado el 22 de Junio del 2017
861 visualizaciones desde el 22 de Junio del 2017
138,1 KB
4 paginas
Creado hace 18a (30/09/2005)
Construcción archivos src.rpm por Hoyt Duff
TUTORIAL: Construyendo desde archivos src.rpm – Modificando “Freetype”
(http://fedoranews.org/hoyt/rpm/)
Por Hoyt Duff el 26-01-2004

Desde que leíste HOWTO: How to create rpmbuild directory tenías una construcción instalada
basada, toda ella, en RPM, ahora vamos a ponerla en uso. (Nota: “fedora-buildrpmtree” no crea la
arquitectura específica de sub-directorios en /BUILD, pero no os preocupeis, porque esto no supone
ningún problema).

La referencia canónica para RPM es el libro “Maximum RPM” (tristemente anticuado, la última
actualización fue en el 2000), pero todavía es una buena referencia y se hace necesaria su lectura
para construcciones serias de RPM.

Allí puedes encontrar tres lugares (cuatro actualmente, si usas la opción de especificar cualquier
localización aleatoria) que la configuración de la construcción RPM guarda. Las macros de la
arquitectura específica son guardados en: /usr/lib/rpm//macros. Encontrarás también los archivos
macros en el directorio /redhat. Aquel parece la plantilla principal, llena de variables que los otros
archivos del config fijaron. Es bastante recomendable que no modifiques ninguno de estos archivos
hasta que seas capaz hacer cambios con una entrada a ~/.rpmmacros.

Si quieres hacer algún cambio en el “system-level”, estarán en /etc/rpm/macros.*; los archivos son
'macros.prelink', 'macros.solve', 'macros.specspo', y 'macros.up2date' más un archivo adicional
denominado 'platform'. No estoy completamente seguro de la fuente que explica el funcionamiento
de estos archivos en /etc/rpm.

Los cambios específicos que hace el usuario se guardan en ~/.rpmmacros. Puedes, por ejemplo,
añadir "%optflags-funroll-loops" al archivo ~./rpmmacros y luego "rpmbuild --showrc | grep unroll"
para ver el “optflag” formar parte del ambiente (hacer esto antes y después para ver el cambio; mirar
también usando --showrc. Fíjate en que puedes tener varios archivos .rpmmacro y especifica cual
quieres usar con el directorio --rcfile).

Los archivos están comentados (sin embargo los archivos .rpmmacros no lo están), por tanto puedes
ponerlos en un procesador de texto y ver que es lo que hacen. Puedes también referirte a ellos en
“Appendix B in Maximum RPM” en: http://ftp.redhat.com/pub/redhat/linux/9/en/doc/RH-
DOCS/maximum-rpm-1.0/html/ch-rpmrc-file.html.

Las páginas del hombre para “rpm, rpmbuild, y gcc” serán prácticas.

Puedes ver los valores prefijados actuales con:

$ rpmbuild --showrc

El formato de las entradas es el siguiente:

name value

Cuando arranques “fedora-buildtree”, te creará un archivo ~.rpmmacros con los siguientes
contenidos:

%_topdir %(echo $HOME)/rpmbuild

Puede que quieras añadir:

%_tmppath %(echo $HOME)/tmp

Para dirigirlo hacia tu propio directorio /tmp, y

%optflags -march=athlon
%_vendor fedora

Y cualquier otra variable que creas apropiada. Con la opción --rcfile, puedes experimentar con
diferentes .rpmmacros.

Construyendo un archivo RPM desde un archivo *.src.rpm

Usaremos un ejemplo muy típico para recompilar el archivo src.rpm para “Freetype” de modo que
el bytecode normalmente deshabilitado es habilitado, proveyéndonos una fuente más agradable para
la vista.

Paso 1

Instala el freetype-2.1.4-5.src.rpm. Lo pondrá en tu directorio ~/rpmbuild/SOURCES y
~/rpmbuild/SPECS. Lo pondrá en tu fuente rpms como non-root.

Paso 2



Abre el archivo .spec en el subdirectorio /SPECS en cualquier procesador de texto. Las tres
primeras líneas se parecerán a esto:

# Disables freetype 1 and 2 bytecode interpreter. Setting to 0 enables # the
bytecode interpreter in both freetype 1 and 2. %define
without_bytecode_interpreter 1

Cambia el valor de ‘1’ a ‘0’ para habilitar el intérprete bytecode, salva y cierra el archivo. Es una
buena idea que anotes en el campo de descripción lo que has cambiado.

Paso 3

Construye el nuevo RPM con:

$ rpmbuild -bb ~/rpmbuild/SPECS/freetype.spec

y encontrarás nuevos archivos binarios RPM en el subdirectorio /RPM. Nota: Si quieres eliminar la
opción de la arquitectura, por ejemplo, puedes poner esto en el comando:

$ rpmbuild -bb --target=athlon ~/rpmbuild/SPECS/freetype.spec

Paso 4

Instala el nuevo archivo RPM con:

# rpm -Uvh --replacepkgs ~/rpmbuild//freetype-2.1.4-5*rpm

El '--replacepkgs' te permite “actualizar” la misma versión del paquete.

Paso 5



Actualmente, conocemos la variable llamada 'withhout_bytecode_interpreter', podemos
reconstruirla con el archivo src.rpm pasando el valor cambiado a la línea del comando de este
modo:

$ rpmbuild -bb --with withhout_bytecode_interpreter=0
~/rpmbuild/SPECS/freetype.spec

Como puedes ver RPM es poderosa y flexible. Que lo disfrutes!

LINKS
RPM.Org - http://www.rpm.org/
Maximum RPM download- http://www.redhat.com/docs/books/max-rpm/max-rpm.pdf
Maximum RPM - http://ftp.redhat.com/pub/redhat/linux/9/en/doc/RH-DOCS/maximum-rpm-
1.0/html/
Fedora RPMDev Tools - http://www.fedora.us/wiki/FedoraRPMDevTools
Fedora RPMDev Tools download -
http://download.fedora.us/fedora/fedora/1/i386/RPMS.stable/fedora-rpmdevtools-0.1.6-
0.fdr.1.1.noarch.rpm
RPM related documentation - file:/usr/share/doc/rpm-devel-4.2.1/apidocs/html/pages.html Write to
me at [email protected].

Copyright © 2004 Hoyt Duff. Permission granted for use on FedoraNEWS.ORG. All rights

reserved.

Traducido por Vassago para Fent Linux

Liberada bajo licencia

http://creativecommons.org/licenses/by-nc-sa/2.5/
  • Links de descarga
http://lwp-l.com/pdf4561

Comentarios de: Construcción archivos src.rpm por Hoyt Duff (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad