¡Esta es una revisión vieja del documento!
Tabla de Contenidos
SlackBuild scripts
Un script de SlackBuild es un script de shell (generalmente compatible con el shell Bourne) que automatiza el proceso de configuración, compilación y creación de un paquete de Slackware (* .tgz, * .txz, * .tbz) desde los archivos de origen.
Descripción general
El proceso básico de crear un paquete Slackware desde la fuente se puede resumir de la siguiente manera, mientras que los detalles pueden variar de un sistema de compilación a otro.
- Descomprima el archivo fuente (generalmente el archivo .tar.gz o .tar.bz2) en un “directorio de trabajo”.
- Cree un archivo
slack-desc
, con la descripción del software en el formato correcto. - Configure la fuente y aplique parches si es necesario.
- Compilar/construir la fuente y generar los binarios.
- Instalar el programa en un directorio temporal. Este paso puede ser un poco complicado, dependiendo de cómo funciona el
make install
(o funcionalidad similar) del sistema de compilación. En los archivos GNU estándar, la variableDESTDIR
que se pasa al comandomake install
debería ser suficiente. En los Makefiles y sistemas de compilación no estándar que no admiten esa opción, esto podría implicar parchear elMakefile
(o archivo similar) o editar una configuración de configuración de compilación del sistema de compilación. - Copie la documentación del programa y otros archivos necesarios (incluidos los scripts posteriores a la instalación) a los subdirectorios apropiados en el directorio de instalación temporal. Estas ubicaciones deben adherirse a la estructura de directorios predeterminada utilizada por Slackware para almacenar aplicaciones instaladas por el administrador de paquetes, a saber. dentro de la carpeta
/usr/
.
- Use la utilidad makepkg
del directorio temporal (ubicación de instalación) para crear un paquete Slackware que luego puede instalarse usando la utilidad installpkg
.
Si bien los pasos anteriores se pueden hacer a mano, el proceso es tedioso, a veces complejo, e implica escribir muchos comandos. La automatización del proceso mediante un script de shell permite al usuario compartir el proceso con la comunidad en general. También tiene sentido utilizar y modificar los scripts existentes de SlackBuild para actualizar el mismo programa a una versión más nueva.
Creating SlackBuild scripts
A good hands-on tutorial on creating a SlackBuild script can be found here, and there are also a few templates available to get a feeling for what is needed from a script.
However, software may be written in different programming languages, use different build systems, or may even simply be written in an interpreted programming language with no obvious way to “install” it. In such cases, many steps involved in writing a SlackBuild script will differ from the standard way. Blindly copying and pasting commands from other SlackBuild scripts may or may not work.
It is recommended that anybody who wishes to write a SlackBuild script, study and understand the build system of a software project before attempting to write a SlackBuild script for it. A degree of proficiency in writing shell scripts is also a definite benefit, as it is the practice to use Bourne shell compatible scripts for SlackBuilds. Ideally, simple C projects which use the standard GNU Make system is a good way to start practicing writing SlackBuild scripts.
Submitting SlackBuild scripts to a public repository such as http://www.slackbuilds.org may additionally require adherence to certain conventions and coding standards. For instance, it would be necessary for the script to determine the target architecture at runtime rather than hard-coding it into the script. These standards attempt to make SlackBuild scripts as portable as possible.
Automated SlackBuild generators
Some tools exist that can assist you with creating a SlackBuild script. Here are a few examples.
- mkslack
A SlackBuild generator script by David Woodfall
External Links
- SlackBuilds Repository - http://www.slackbuilds.org/
- SlackBuild templates - http://slackbuilds.org/templates/
Sources
- Originally written by V.Harishankar for the SlackDocs Wiki Project