[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!


En proceso. Victor

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.

  1. Descomprima el archivo fuente (generalmente el archivo .tar.gz o .tar.bz2) en un “directorio de trabajo”.
  2. Cree un archivo slack-desc , con la descripción del software en el formato correcto.
  3. Configure la fuente y aplique parches si es necesario.
  4. Compilar/construir la fuente y generar los binarios.
  5. 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 variable DESTDIR que se pasa al comando make 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 el Makefile (o archivo similar) o editar una configuración de configuración de compilación del sistema de compilación.
  6. 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.

For new script writers, it is a good idea to perform the above steps manually to create the package from source, before actually writing a SlackBuild script. This reduces the chances of bugs and unexpected behaviour in the script.

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.

Sources

  • Originally written by V.Harishankar for the SlackDocs Wiki Project

 es:slackware:slackbuild_scripts ()