[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

¡Esta es una revisión vieja del documento!


Construyendo un paquete

Este es un esquema aproximado para construir paquetes de Slackware. Algunos pasos pueden no ser necesarios, use la página de discusión para al margen, como el uso de slacktrack (Cuando DESTDIR falle) y otras herramientas como checkinstall.

El camino bueno y decente

Configurar y compilar el código fuente como normalmente lo hace:

./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc
make

Crear un directorio temporal de destino:

mkdir /tmp/build

Instalar en el directorio temporal:

make install DESTDIR=/tmp/build

Poner los libs/bins dentro del directorio temporal:

strip -s /tmp/build/usr/lib/* /tmp/build/usr/bin/*

También deseará asegurarse que cualquier cosa en <tt>/usr/man</tt> sea comprimida antes de hacer el paquete.

gzip -9 /tmp/build/usr/man/man?/*.?

Crear el directorio <tt>install</tt>, aquí es donde se almacenará la descripción y el script de instalación:

cd /tmp/build
mkdir install
cd install

El mismo código en una linea (para las personas de copiar y pegar)

cd /tmp/build; mkdir install; cd install

Usando un editor de texto (or a tool), crea un archivo llamado slack-desc, con el siguiente contenido:

slack-desc
       |-----regla del archivo------------------------------------------------------|
appname: Nombre de la aplicación (Corta descripción de la aplicación)
appname:      <esta linea normalmente es dejada en blanco>
appname: Descripción de la aplicación - esta decripción debe ser bastante
appname: profunda; en otras palabras, dejar claro lo que hacer el paqute (y
appname: tal ves incluir links relevantes y/o instrucciones si lo requiere),
appname: pero no dar demasiados detalles.
appname: Este archivo puede tener un máximo de once (11) lineas de texto seguido por
appname: el nombre de la aplicación "appname: " designado.  
appname:
appname: Es también, una buena idea, incluir un link de la página oficial de la aplicación.
appname:

La cadena de texto “appname” debe coincidir *exactamente* con la parte del nombre del paquete de Slackware (por ejemplo, un paquete titulado “gaim-1.5-i486-1.tgz” debe tener un archivo slack-desc con la cadena <appname> “gaim ” en lugar de “Gaim ” or “GAIM ” o algo mas.

La primera linea debe mostrar el nombre de la aplicación seguido por una corta descripción (encerrada en parentesis).

Crear el paquete actual:

cd /tmp/build
makepkg ../app-version-arch-tag.tgz

(The dashes should appear as above, so if the version has a subversion like say “1.0 RC2” make sure you use 1.0_RC2 not 1.0-RC2. The arch should be something like “i486” for example. The tag should consist of the build number and your initals, e.g. 1zb for Zaphod Beeblebrox's first build, 2zb for his second build, etc. Official slackware packages have only numbers as tags.)

When prompted to recreate symbolic links, say <tt>yes</tt><br> When prompted to reset permissions, say <tt>no</tt>

Note: Using makepkg -l y -c n will give you the same behaviour as answering yes to the symlinks question, and no to the permissions question.

If all went well, you can now install the package. cd .. installpkg app-version-arch-tag.tgz

The "I don't have time" way

Fortunately, Slackware are pretty flexible too. If you don't mind much about what is the source (beware!) that you're compiling you can burn some stages and do something like this:

./configure --prefix=/usr
make install DESTDIR=$(pwd)/PACKAGE
cd $(pwd)/PACKAGE
makepkg -l y -c n ../app-version-arch-tag.tgz
installpkg ../app-version-arch-tag.tgz

Of course, you will have a package without description, (probably) uncompressed man pages and unstripped binaries.

Sources

 es:howtos:slackware_admin:building_a_package ()
Esta traducción es más antigua que la página original y podría estar obsoleta. Ver lo que ha cambiado.