Libremakepkg (Español)

From ParabolaWiki
Jump to: navigation, search

Libremakepkg es un script que:

  1. Chequea dependencias no libres en el PKGBUILD
  2. Monta ${SRCDEST} ${PKGDEST} ${SRCPKGDEST} ${WORKDIR}, y opcionalmente copia etc/makepkg.conf etc/pacman.conf etc/mtab para el chroot (Este paso es llamado buildenv en el script)
  3. Actualiza el chroot de donde estás construyendo (opción -u)
  4. Limpia el chroot de forma que ningun paquete es configurado automaticamente como una dependencia (opção-c) y
  5. Finalmente usa makechrootpkg para construir el paquete.

El paquete será colocado en ${PKGDEST}.

Note: ${SRCDEST} ${PKGDEST} ${SRCPKGDEST} ${WORKDIR} son configurados en /etc/makepkg.conf

1 Uso

Note: Antes de usar libremakepkg tendrás que configurar el /etc/libretools.conf primero. Siga las instrucciones en la Guia de Mantenedor del paquete de Parabola GNU/Linux
Warning: libremakepkg no funcionará si no tienes instalado el devtools. Si dispone de la version de [libre-testing], devtools es innecesario (y potencialmente conflictivo)
 # pacman -Sy devtools

1.1 ¿Cuáles son las opciones del libremakepkg?

Libremakepkg tendrá siempre una lista actualizada de opciones que pueden ser listados usando:

$ libremakepkg -h

1.2 Construyendo con libremakepkg

Para construir con libremakepkg deberás cambiar para el directorio de donde PKGBUILD está y tienes que ejecutar

 $ cd /dir/with/PKGBUILD
 # libremakepkg [options] 

Si ninguna opción fue pasado para libremakepkg, buildenv irá construir el paquete sin actualización o limpieza. Esto es útil si una compilación anterior falló y tu alteraste el PKGBUILD para que funcione esta vez.

2 ¿Porque Buildenv?

buildenv está destinado a fullpkg, capaz de adicionar paquetes a un repositorio local y instalarlos también.

3 ¿Como es hecha la limpieza?

makechrootpkg tiene una opción de limpieza con rsync de chroot "raiz" a chroot "copia", y usa el chroot "copia" para la construcción de los paquetes. Cuando estábamos "Porteando paquetes para MIPS" nosotros creamos un script que controlaba las dependencias y construian paquetes (fullpkg). Descubrimos en ese momento que la limpieza por rsync era lenta e ineficiente. Entonces proyectamos un nuevo método de limpieza en un sistema limpio, que usa pacman y una lista de paquetes.

El método de limpieza en el libremakepkg:

  1. copia la lista de paquetes para el chroot (/etc/libretools.d/cleansystem
  2. usa comm para comparar paquetes instalados en el sistema y en el "cleansystem"
  3. remueve todos los paquetes que no están en el "cleansystem".

4 Estoy teniendo problemas con libremakepkg

Relate el problema para el bug tracker. Use [libretools] en el inicio del título para el problema que tu estás teniendo.