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!

