Makepkg

De Arch Linux Comunidad Hispana

makepkg es usado para compilar tus propios paquetes compatibles para Pacman. Utiliza un sistema de construcción basado en script que puede bajar y validar archivos fuentes, chequear dependencias, configurar la compilación, construir el paquete, instalar el paquete a una raiz temporal, hacer personalizaciones, generar meta-info y el paquete como tal. Como puedes ver makepkg tiene muchas características, aquí se describirán las básicas.

Tabla de contenidos

[editar] Preparando las cosas

[editar] Arch Build System (ABS)

Primero asegúrate de tener todas las herramientas para correr ABS y Makepkg, al igual que las necesarias para compilar software desde las fuentes:

pacman -Sy base-devel

Responde 'Y' o solo presiona Enter.

Ahora puedes correr abs para obtener todos los PKGBUILDs y archivos asociados desde los paquetes donde se construyó Arch:

abs

Esto recrea la jerarquía CVS en tu disco en el directorio /var/abs. Por defecto algunos repositorios son desactivados; tienes que editar /etc/abs/abs.conf removiendo los signos de exclamación.

Debido a que /var/abs normalmente le pertenece a root (es parte del paquete 'filesystem'), mucha gente y esta guía asume que construyes los paquetes en /var/abs/local, y necesitas permitir a tu usuario acceder a él:

groupadd abs
usermod -aG users,slocate,abs usuario
chown root:abs /var/abs/local
chmod 775 /var/abs/local

[editar] Makepkg

Necesitas instalar fakeroot si quieres construir paquetes como un usuario no root:

pacman -Sy fakeroot

Si quieres permitir instalar las dependencias con makepkg como usuario necesitas instalar sudo y agregarte tu mismo a la lista /etc/sudoers usando esta línea:

<user> <hostname>=/usr/sbin/pacman

Lo siguiente es decidir donde crear tus paquetes, por ejemplo, puedes tenerlo dentro de tu carpeta personal en una carpeta separada. Como tu usuario normal haz lo siguiente (reemplazar "usuario" con tu nombre de usuario):

mkdir /home/$USER/packages

Entonces modifica la variable PKGDEST en /etc/makepkg.conf de acuerdo a esto.

Mientras estas allí, puedes mirar las demás variables en makepkg.conf. Por ejemplo, puedes editar PACKAGER, o eliminar el ! de los docs en las lista por defecto de OPTIONS, en caso que no desees el directorio /usr/share/doc/<package> sea borrado por Makekpg. Mira esta página en ingles para mas información.

[editar] Construyendo un Paquete

Para construir un paquete puedes crear uno como se describe en ArchLinux - Creación de paquetes, u obtener uno desde AUR o ABS u otro lado. Se cuidadoso acerca de donde obtienes las fuentes, ya que podrían tener código maligno (Solo obtén paquetes de fuentes confiables)

Digamos que encontramos un excelente paquete en AUR que quisiste bajar e instalar (en el ejemplo usaremos "rufus" un cliente bittorrent hecho en Python). Tu puedes obtener el PKGBUILD y los archivos necesarios desde aquí, click en el enlace "Tarball".

cd /ruta/al/archivo
tar -zxf rufus.tar.gz
cd rufus

Notarás que existen varios archivos dentro del directorio ademas del script PKGBUILD que es usado para crear tu paquete. Para construir el paquete solo ejecuta:

makepkg

El cual hará todo lo necesario para crear el paquete. Si no tienes instalado las dependencias requeridas makepkg te advertirá antes de fallar. Para instalarlas sólo debes usar como root:

makepkg -s

Estas dependencias deben estar en tus repositorios, si no, vas a tener que configurar un repositorio que la contega ó instalarlo por medio del método mencionado anteriormente (usando AUR).

Una vez satisfechas todas las dependencias (puedes usar 'pacman -Sy dependencia1 dependencia2' si deseas) tu paquete se creará con éxito y deberías ahora tener el archivo rufus-0.7.0-1.pkg.tar.gz en el directorio donde ejecutaste makepkg. Para instalarlo (como root) ejecuta:

pacman -A rufus-0.7.0-1.pkg.tar.gz

¡Felicidades! ¡Has instalado tu propio paquete!

[editar] Enlaces Útiles

Herramientas personales