Libremakepkg (Español) - ParabolaWiki

# Libremakepkg (Español)

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

## 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

     # pacman -Sy devtools

### ¿Cuáles son las opciones del libremakepkg?

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

    $ libremakepkg -h

### 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.

## ¿Porque Buildenv?

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

## ¿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".

## 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.

Categories:

- Hacking
- Packaging
- Libretools