Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa |
es:slackware:package_management_hands_on [2019/08/13 13:58 (UTC)] – [Build a package from source] slackwarespanol | es:slackware:package_management_hands_on [2019/08/13 19:39 (UTC)] (actual) – [Sources] slackwarespanol |
---|
</code> | </code> |
| |
==== Modify an official Slackware package ==== | ==== Modificar un paquete oficial de Slackware ==== |
| |
The main reason for rebuilding an official package is to modify it, for example to add or strip certain functionalities. In the following example, we will rebuild the ''audacious-plugins'' package in order to modify the Audacious audio player. The vanilla application sports two different graphical interfaces, and we will disable one of them. | La razón principal para reconstruir un paquete oficial es modificarlo, por ejemplo, para agregar o quitar ciertas funcionalidades. En el siguiente ejemplo, reconstruiremos el paquete '' audacious-plugins '' para modificar el reproductor de audio Audacious. La aplicación Vanilla tiene dos interfaces gráficas diferentes, y desactivaremos una de ellas. |
| |
Let's begin with removing the package if it is installed: | |
| |
| Comencemos por eliminar el paquete si está instalado: |
<code> | <code> |
# removepkg audacious-plugins | # removepkg audacious-plugins |
</code> | </code> |
| |
Fetch the contents of the ''/source/xap/audacious-plugins'' directory and make the ''audacious-plugins.SlackBuild'' script executable: | Obtenga el contenido del directorio '' /source/xap/audacious-plugins '' y haga que el script '' audacious-plugins.SlackBuild '' sea ejecutable: |
| |
<code> | <code> |
</code> | </code> |
| |
Now edit ''audacious-plugins.SlackBuild'' and add one option: | Ahora edite '' audacious-plugins.SlackBuild '' y agregue una opción: |
| |
<code> | <code> |
</code> | </code> |
| |
Build and install the package: | Compila e instala el paquete: |
| |
<code> | <code> |
</code> | </code> |
| |
==== Choosing your configuration options for compiling ==== | ==== Elegir las opciones de configuración para compilar ==== |
| |
The source configuration script (or more exactly the sometimes very long line in the SlackBuild beginning with ''./configure'') often displays an overview of activated and/or deactivated options. To interrupt the package construction process and display this overview, you can temporarily edit the SlackBuild like this: | El script de configuración de la fuente (o más exactamente la línea a veces muy larga en SlackBuild que comienza con '' ./configure '') a menudo muestra una descripción general de las opciones activadas y/o desactivadas. Para interrumpir el proceso de construcción del paquete y mostrar esta descripción general, puede editar temporalmente el SlackBuild de esta manera: |
| |
<code> | <code> |
</code> | </code> |
| |
Now run the script and wait a few seconds for the configuration overview: | Ahora ejecute el script y espere unos segundos para ver la descripción general de la configuración: |
| |
<code> | <code> |
</code> | </code> |
| |
Use the ''./configure --help'' option to display a list of all the possible options: | Use la opción '' ./configure --help '' para mostrar una lista de todas las opciones posibles: |
| |
<code> | <code> |
</code> | </code> |
| |
<note tip>The SlackBuild script already takes care of automatically uncompressing the source tarball to the ''/tmp'' directory. So you can simply run ''./configure --help | less'' from this directory, without manually uncompressing the source tarball to the current directory.</note> | <note tip>El script SlackBuild ya se encarga de descomprimir automáticamente el archivo tar de origen en el directorio '' /tmp ''. Entonces simplemente puede ejecutar '' ./configure --help | menos '' desde este directorio, sin descomprimir manualmente el tarball fuente al directorio actual.</note> |
| |
<note>In the present case, activating certain functionalities like for example managing proprietary audio formats will depend on the presence of the corresponding libraries on your system.</note> | <note>En el presente caso, la activación de ciertas funcionalidades como, por ejemplo, la administración de formatos de audio propietarios dependerá de la presencia de las bibliotecas correspondientes en su sistema.</note> |
| |
Once you've chosen all your configuration options, get rid of the temporary ''exit 1'' command in your script and launch the build and installation process: | Una vez que haya elegido todas sus opciones de configuración, elimine el comando temporal '' salir 1 '' en su script e inicie el proceso de compilación e instalación: |
| |
<code> | <code> |
</code> | </code> |
| |
===== Building third-party packages ===== | ===== Crear paquetes de terceros ===== |
| |
Slackware offers only a limited choice of packages compared to behemoth distributions like Ubuntu or Debian. More often than not, you'll want to install a package that's not provided by the distribution. In that case, what can a poor boy do? | Slackware ofrece solo una selección limitada de paquetes en comparación con distribuciones gigantes como Ubuntu o Debian. La mayoría de las veces, querrás instalar un paquete que no sea proporcionado por la distribución. En ese caso, ¿qué puede hacer un niño pobre? |
| |
The [[http://slackbuilds.org|SlackBuilds.org website]] is probably the best address to find third-party software. You won't find any packages there, because SlackBuilds.org is //not// a binary package repository nor will it ever be. It's an extremely clean and well organized collection of build scripts, each one reviewed and tested. Using these scripts will enable you to build about every piece of third party software under the sun. | El [[http://slackbuilds.org | sitio web SlackBuilds.org]] es probablemente la mejor dirección para encontrar software de terceros. No encontrará ningún paquete allí, porque SlackBuilds.org // no // es un repositorio de paquetes binarios ni lo será nunca. Es una colección extremadamente limpia y bien organizada de scripts de compilación, cada uno revisado y probado. El uso de estos scripts le permitirá construir sobre cada pieza de software de terceros bajo el sol. |
| ==== Construyendo paquetes usando los scripts de SlackBuilds.org ==== |
==== Building packages using the SlackBuilds.org scripts ==== | |
| |
In the following example, we will build and install the ''cowsay'' package using the build script provided by SlackBuilds.org. | En el siguiente ejemplo, crearemos e instalaremos el paquete '' cowsay '' utilizando el script de compilación proporcionado por SlackBuilds.org. |
| |
For a start, ''cd'' into the build directory we've defined earlier: | Para empezar, '' cd '' en el directorio de compilación que hemos definido anteriormente: |
| |
<code> | <code> |
</code> | </code> |
| |
Download the following components into this directory : | Descargue los siguientes componentes en este directorio: |
| |
- the compressed tarball containing the scripts to build the package; | - el tarball comprimido que contiene los scripts para construir el paquete; |
- the compressed source code tarball. | - el código fuente comprimido tarball. |
| |
In our case: | En nuestro caso: |
| |
<code> | <code> |
</code> | </code> |
| |
- In the Search field in the upper left corner of the screen, type ''cowsay'', move the cursor to ''Search'' (CursorDown key) and confirm by hitting <key>Enter</key>. | - En el campo Buscar en la esquina superior izquierda de la pantalla, escriba '' cowsay '', mueva el cursor a '' Buscar '' (tecla CursorDown) y confirme presionando <key> Enter </key>. |
- Follow the ''cowsay'' link on the search results page. | - Siga el enlace '' cowsay '' en la página de resultados de búsqueda. |
- Once you're on the ''cowsay'' page, download the SlackBuild (''cowsay.tar.gz'') and the source code (''cowsay-3.03.tar.gz'') and quit Links. | - Una vez que esté en la página '' cowsay '', descargue el SlackBuild ('' cowsay.tar.gz '') y el código fuente ('' cowsay-3.03.tar.gz '') y salga de Links. |
| |
<note tip>Alternatively, use ''lynx'' instead of ''links''.</note> | <note tip>Alternativamente, use '' lynx '' en lugar de '' enlaces ''.</note> |
| |
Here's our two downloaded tarballs: | Aquí están nuestros dos tarballs descargados: |
| |
<code> | <code> |
</code> | </code> |
| |
Uncompress the tarball containing the scripts: | Descomprima el tarball que contiene los scripts: |
| |
<code> | <code> |
</code> | </code> |
| |
Eventually, you can do a little cleanup and delete the tarball: | Eventualmente, puede hacer una pequeña limpieza y eliminar el tarball: |
| |
<code> | <code> |
</code> | </code> |
| |
Now move the source tarball to the newly created ''cowsay/'' directory: | Ahora mueva el archivo tar de origen al directorio '' cowsay/ '' recién creado: |
| |
<code> | <code> |
</code> | </code> |
| |
Here's what we have: | Esto es lo que tenemos: |
| |
<code> | <code> |
</code> | </code> |
| |
Now ''cd'' into that directory. Check if the ''cowsay'' SlackBuild is executable, and then launch it to start the package construction: | Ahora '' cd '' en ese directorio. Compruebe si el SlackBuild '' cowsay '' es ejecutable y luego inícielo para comenzar la construcción del paquete: |
| |
<code> | <code> |
</code> | </code> |
| |
If everything goes well, the process spews out a package in ''/tmp'', or more exactly in the ''$OUTPUT'' directory defined by the script: | Si todo va bien, el proceso arroja un paquete en '' / tmp '', o más exactamente en el directorio '' $ OUTPUT '' definido por el script: |
| |
<code> | <code> |
</code> | </code> |
| |
All that's left to do is install the package using ''installpkg'': | Todo lo que queda por hacer es instalar el paquete usando '' installpkg '': |
| |
<code> | <code> |
</code> | </code> |
| |
==== Managing package dependencies ==== | ==== Gestión de dependencias de paquetes ==== |
| |
Some packages require the presence of other packages, either to build (//build dependencies//) and/or to run (//runtime dependencies//) correctly. In some cases, a required package can depend itself on one or more other packages, and so on. | Algunos paquetes requieren la presencia de otros paquetes, ya sea para compilar (// dependencias de compilación //) y / o para ejecutar (// dependencias de tiempo de ejecución //) correctamente. En algunos casos, un paquete requerido puede depender de uno o más paquetes, y así sucesivamente. |
| |
To take an example, let's have a look at the ''libgnomeprint'' page on SlackBuilds.org. The package description is followed by the following caveat: | Para tomar un ejemplo, echemos un vistazo a la página '' libgnomeprint '' en SlackBuilds.org. La descripción del paquete es seguida por la siguiente advertencia: |
| |
<code> | <code> |
</code> | </code> |
| |
Moreover, every script tarball contains an ''*.info'' file which states explicitly all the required package dependencies. If we look at the ''libgnomeprint.info'' file, we'll find a ''REQUIRES'' field: | Además, cada script tarball contiene un archivo '' * .info '' que establece explícitamente todas las dependencias de paquetes requeridas. Si miramos el archivo '' libgnomeprint.info '', encontraremos el campo '' REQUERIMIENTOS '': |
| |
<code> | <code> |
</code> | </code> |
| |
<note>The ''REQUIRES'' field has been introduced with Slackware 14.0.</note> | <note>El campo '' REQUISITOS '' se ha introducido con Slackware 14.0.</note> |
| |
This simply means that before we build the ''libgnomeprint'' package, we have to build and install the ''libgnomecups'' package. | |
| |
Besides strictly required dependencies, a package can also have some optional dependencies to offer some extra functionality. As an example, the Leafpad text editor can be built against the optional ''libgnomeprint'' and ''libgnomeprintui'' dependencies. | |
| |
| Esto simplemente significa que antes de construir el paquete '' libgnomeprint '', tenemos que construir e instalar el paquete '' libgnomecups ''. |
| |
**WORK IN PROGRESS** | Además de las dependencias estrictamente requeridas, un paquete también puede tener algunas dependencias opcionales para ofrecer alguna funcionalidad adicional. Como ejemplo, el editor de texto de Leafpad se puede construir contra las dependencias opcionales '' libgnomeprint '' y '' libgnomeprintui ''. |
| |
====== Sources ====== | <note important> |
| **TRABAJO EN PROGRESO**</note> |
| |
* Originally written by [[wiki:user:kikinovak | Niki Kovacs]] | ====== Funetes ====== |
| * Originalmente escrito por [[wiki:user:kikinovak | Niki Kovacs]] |
| * Traducido por: [[wiki:user: slackwarespanol | Victor]] 2019/08/13 19:37 (UTC) |
| |
<!-- Please do not modify anything below, except adding new tags.--> | <!-- Please do not modify anything below, except adding new tags.--> |
<!-- You must also remove the tag-word "template" below. Otherwise your page will not show up in the Table of Contents --> | <!-- You must also remove the tag-word "template" below. Otherwise your page will not show up in the Table of Contents --> |
{{tag>slackware package management author_kikinovak}} | {{tag>slackware package management author_kikinovak}} |