FlaPer87 - import freedom; print everything

  • galería de imagenes
  • presentaciones
  • proyectos
  • copyright
  • contacto
  • acerca de...
Home

Google Adsense

Navigation

  • Recent posts

User login

  • Request new password

Crear paquete para Archlinux

Submitted by flaper87 on Mon, 04/14/2008 - 05:35.

Este es un pequeño y simple howto acerca de como crear un paquete para Archlinux...

Los paquetes de archlinux son simples .tar.gz, la mayoria con 3 archivos dentro (2 de ellos opcional) que gestionan la descarga e instalación de la aplicación, digo la mayoria porque también existen paquetes que ademas de traer estos 2 archivos traen las fuentes de la aplicación (vease el caso de eclipse, netbean, Firefox3, entre otros) y que por ende son más pesados.

Estos dos archivos que mencionon son el PKGBUILD (Obligatorio), un .install con algunas reglas extras como pre_instalacion, post_instalacion, pre_desisntalacion o post_desisntalacion y un archivo .filelist que contine la lista de archivos el cual es usado para la desisntalación del paquete o para buscar conflictos con archivos. El archivo .install se dice que es opcional ya que el paquete no depende directamente de el, pero si no se especifican estas reglas el paquete a la hora de ser desisntalado (por ejemplo) sera eliminado solamente de la base de datos dejando todos los archivos en las carpetas de instalación ya que no existe ninguna regla para desinstalarlo y lo mismo se aplica para el archivo .filelist

Para este ejemplo utilizare el paquete de Ulipad que en estos momentos mantengo. Comencemos con el PKGBUILD:

El PKGBUILD es un archivo que contiene tanto la información completa del paquete como la
funcion de construcción (build) del paquete, por ejemplo:

# Maintainer: Flavio Percoco <flaper87 at archlinux dot com dot ve>
# Contributor: Flavio Percoco <flaper87 at archlinux dot com dot ve>
pkgname=ulipad
pkgver=3.8.1
pkgrel=1
pkgdesc="UliPad is en editor written in python and wxPython."
arch=('i686' 'x86_64')
license=('GPL')
install=ulipad.install
url="http://code.google.com/p/ulipad/"
depends=(python wxpython unzip)
source=("http://ulipad.googlecode.com/files/ulipad.$pkgver.zip")
md5sums=('9bfb7c6000c3b1a61e65840385c2be03')

build() {
cp -Rf $startdir/src/ulipad /usr/share/
echo "#!/bin/bash" > /usr/bin/ulipad
echo "python /usr/share/ulipad/UliPad.py" >> /usr/bin/ulipad
chmod 777 /usr/share/ulipad/ -Rf
chmod a+x /usr/bin/ulipad
}

Expliquemos el PKGBUILD:

Los parametros para proporcionar la informacón del paquete son faciles de entender, sin embargo acá les coloco la explicación de los que utilice, para verlos todos vean este link

  • pkgname: El nombre del paquete.
  • pkgver: La versión del paquete.
  • pkgrel: El numero de release del paquete, el cual debe ser modificado cada vez que se le hagan cambios al
  • PKGBUILD.
  • pkgdesc: La descripción del paquete.
  • arch: la architectura para la cual esta permitida el paquete.
  • license: La licencia del paquete.
  • install: El archivo .install a incluir el cual debe encontrarse en la misma carpeta del PKGBUILD.
  • url: La pagina principal del paquete.
  • depends: Las dependencias del paquete.
  • source: De donde se obtendran las fuentes, puede ser local como http o ftp.
  • md5sum: El md5sum de las fuentes del paquete.

La función build también es bastante simple por el tipo de paquete que estamos creando, Ulipad es un IDE para python hecho en python y utilizando wxwidgets, y su instalación se hace simplemente copiando la carpeta a donde queramos, sin necesidad de compilar o algo por el estilo.

cp -Rf $startdir/src/ulipad /usr/share/

Con este comando copiamos la carpeta de ulipad a /usr/share/ que sera nuestro path de instalación.

echo "#!/bin/bash" > /usr/bin/ulipad
echo "python /usr/share/ulipad/UliPad.py" >> /usr/bin/ulipad
chmod 777 /usr/share/ulipad/ -R
chmod a+x /usr/bin/ulipad

Esto era realmente opcional y lo hice para ofrecer un lanzador para ulipad ya que este no lo trae, simplemente creo un archivo llamado ulipad bajo /usr/bin el cual ejecutara el comando python /usr/share/UliPad.py al ser ejecutado y le otorgo permisos de ejecución.

Ahora pasemos a explicar el arhcivo ulipad.install del paquete el cual por la simplicidad del paquete es aun mas facil que el mismo PKGBUILD :-D

post_remove() {
rm -Rf /usr/share/ulipad/
rm /usr/bin/ulipad
}

La unica función que le agregue fue la de post_remove (post_desinstalacion) la cual eliminara todos los archivos que fueron agregados durante la instalación obviando los de configuracion del usuario por supuesto. En este caso esos archivos son /usr/share/ulipad y /usr/bin/ulipad.

Ok ahora empaquetemos todo lo que acabamos de hacer, creemos una carpeta con el nombre de la aplicación en la cual deberan ser guardados los archivos:

$ mkdir ulipad && cd ulipad
$ vim PKGBUILD // Para crear el PKGBUILD, pueden usar su editor favorito.
$ vim ulipad.install // Para crear el ulipad.install, pueden usar su editor favorito.

Ahora quedan dos cosas por hacer una es crear el paquete para subirlo a los repositorios de AUR ( Archlinux User-Community Repository ) y crear el paquete instalable. El primero nos servira simplemente para subirlo a AUR y que otros lo puedan instalar mediante yaourt (hasta que tenga suficientes votos para entrar en community y poder ser instalado mediante el uso de pacman ), este es un paquete que contiene los dos archivos que creamos y el cual sera construido cuando el usuario intente instalarlo; el segundo es un paquete ya construido y listo para instalar.

$ tar -cvvf ulipad-3.8.1.tar.gz ../       //Este es el que podra ser subido en los repositorios de AUR

# makepkg --asroot                        // Este debe ser ejecutado como root y con el comando --asroot

Ok... Hemos construido nuestros paquetes, el segundo es opcional pero siempre es bueno probarlo antes de subirlo al repositorio, asi que probemoslo. Como lo tenemos en nuestro computador lo podemos instalar con pacman.

# pacman -A ulipad-3.8.1-1-i686.pkg.tar.gz

Si todo va bien entonces es hora de entrar a la pagina de AUR, iniciar nuestra sesión y subir nuestro paquete ulipad-3.8.1.tar.gz

Espero que les sirva este pequeño howto de como crear un paquete para Archlinux...

  • ArchLinux
  • GNU/Linux

Excelente pana, :D explicas

Submitted by Skatox (not verified) on Mon, 04/14/2008 - 10:51.

Excelente pana, :D explicas todo bien, estas invitado a traduir articulos en la wiki de archlinux-es.org

  • reply

Hola, lamento que te hayas

Submitted by milmazz (not verified) on Mon, 04/14/2008 - 10:56.

Hola, lamento que te hayas alejado del mundo Debian, pero me contenta que estés haciendo aportes a la comunidad de Arch.

Tal vez esto sea un consejo para futuras ocasiones cuando tengas que hacer ficheros de configuración algo extensos, así que en vez colocar cosas como:

echo "#!/bin/bash" > /usr/bin/ulipad
echo "python /usr/share/ulipad/UliPad.py" >> /usr/bin/ulipad

Puedes hacer esto:

cat > /usr/bin/ulipad <<EOF
#!/bin/bash

python /usr/share/ulipad/UliPad.py
EOF

  • reply

@Skatox Epale, me alegra que

Submitted by flaper87 (not verified) on Mon, 04/14/2008 - 19:56.

@Skatox Epale, me alegra que se halla entendido todo, Gracias por la invitación con gusto lo haré. :-D

@milmazz Me da gusto leerte... Gracias por el consejo, se me había olvidado por completo ese método, en la próxima actualización del paquete lo agrego. :-D

  • reply

Excelente aporte flavio, ya

Submitted by Richerve (not verified) on Tue, 04/15/2008 - 10:27.

Excelente aporte flavio, ya lo voy a leer con detenimiento para pulir mis (pocos) conocimientos en creación de pkbuild.

  • reply

@richerve Gracias, me alegra

Submitted by flaper87 (not verified) on Tue, 04/15/2008 - 17:49.

@richerve Gracias, me alegra que te halla gustado, cualquier cosa, pega el grito... :-D

  • reply

Flavio!, veo que aprendes

Submitted by angvp (not verified) on Wed, 04/16/2008 - 23:42.

Flavio!, veo que aprendes rápido padawan ;-).

Ya había leído el artículo pero no te había dicho nada por aquí, saludos!.

  • reply

@angvp looooooool :-D Thanks

Submitted by flaper87 (not verified) on Fri, 04/18/2008 - 00:37.

@angvp looooooool :-D

Thanks

  • reply

Muy buen articulo, lo voy a

Submitted by braianet (not verified) on Fri, 06/27/2008 - 09:52.

Muy buen articulo, lo voy a subir a mi blog. Como me gusta Arch XD. Veo que a vos tmb. Saludos!

  • reply

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
13 + 1 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.

Search

  • a11y-en
  • a11y-es
  • Anuncios
  • ArchLinux
  • curiosidades
  • Debian
  • Docbook
  • Drupal
  • English
  • Enlightenment
  • Español
  • Eventos
  • GNU/Linux
  • Italiano
  • Latex
  • mouseTrap
  • opencv
  • Poesias
  • Python
  • Reflexiones
  • Subversion
  • Tiflotecnología
  • Ubuntu
  • Uncategorized
  • Web
  • wordpress

Twitter Updates

Twitter Logo

    follow me on Twitter



    • galería de imagenes
    • presentaciones
    • proyectos
    • copyright
    • contacto
    • acerca de...