Ambos lados, revisión anterior
Revisión previa
Próxima revisión
|
Revisión previa
Última revisión
Ambos lados, revisión siguiente
|
es:slackware:package_management_hands_on [2019/08/13 12:53 (UTC)] slackwarespanol [Upgrading packages] |
es:slackware:package_management_hands_on [2019/08/13 19:37 (UTC)] slackwarespanol [Gestión de dependencias de paquetes] |
====== Gestión de paquetes: una explicación práctica ====== | ====== Gestión de paquetes: una explicación práctica ====== |
| |
**TRABAJO EN PROGRESO** | <note important>**TRABAJO EN PROGRESO**</note> |
===== Anatomía de un paquete de Slackware ===== | ===== Anatomía de un paquete de Slackware ===== |
| |
</code> | </code> |
| |
==== Search for specific packages or files ==== | ==== Buscar paquetes o archivos específicos ==== |
| |
Search for a specific package: | Busque un paquete específico: |
| |
<code> | <code> |
</code> | </code> |
| |
If the package is already installed, here's what you get: | Si el paquete ya está instalado, esto es lo que obtienes: |
| |
<code> | <code> |
</code> | </code> |
| |
You can also search for individual files. The search will eventually display on or several packages containing the file in question: | También puede buscar archivos individuales. La búsqueda finalmente se mostrará en o varios paquetes que contengan el archivo en cuestión: |
| |
<code> | <code> |
</code> | </code> |
| |
If you want to know more about the content of a package: | Si desea saber más sobre el contenido de un paquete: |
| |
<code> | <code> |
</code> | </code> |
| |
==== Cleaning the system ==== | ==== Limpieza del sistema ==== |
| |
Remove all third-party packages: | Eliminar todos los paquetes de terceros: |
| |
<code> | <code> |
</code> | </code> |
| |
If you decide to keep some of the packages, simply unselect them in the subsequent screen. | Si decide conservar algunos de los paquetes, simplemente desactívelos en la pantalla siguiente. |
| |
You can also use ''slackpkg'' to repair a damaged package. Let's say I accidentally deleted the file ''/usr/bin/glxgears''. First, I have to search for the package providing that file: | También puede usar '' slackpkg '' para reparar un paquete dañado. Digamos que borré accidentalmente el archivo '' / usr / bin / glxgears ''. Primero, tengo que buscar el paquete que proporciona ese archivo: |
| |
<code> | <code> |
</code> | </code> |
| |
With this information, I can simply reinstall the package: | Con esta información, simplemente puedo reinstalar el paquete: |
| |
<code> | <code> |
</code> | </code> |
| |
===== Rebuild official packages ===== | ===== Reconstruir paquetes oficiales ===== |
| |
Slackware provides the entire system's source code in the ''source'' directory. Every binary system package will have his corresponding source directory. These source directories usually contain: | Slackware proporciona el código fuente de todo el sistema en el directorio '' fuente ''. Cada paquete de sistema binario tendrá su directorio fuente correspondiente. Estos directorios fuente generalmente contienen: |
| |
* the source code for the application or the library; | * el código fuente de la aplicación o la biblioteca; |
* its fabrication recipe in the shape of a ''*.SlackBuild'' file; | * su receta de fabricación en forma de archivo '' * .SlackBuild ''; |
* the package description in a ''slack-desc'' file; | * la descripción del paquete en un archivo '' slack-desc ''; |
* eventually, a post-installation script named ''doinst.sh''; | * eventualmente, un script posterior a la instalación llamado '' doinst.sh ''; |
* various other files like patches, custom menu entries, etc. | * varios otros archivos como parches, entradas de menú personalizadas, etc. |
| |
==== Build a package from source ==== | ==== Construir un paquete desde la fuente ==== |
| |
In the example below, we will build the ''Terminal'' application from the source code provided by Slackware. You might want to remove the corresponding package if it is installed. | En el siguiente ejemplo, crearemos la aplicación '' Terminal '' a partir del código fuente proporcionado por Slackware. Es posible que desee eliminar el paquete correspondiente si está instalado. |
| |
<note tip>The ''Terminal'' package is Xfce's terminal. In Slackware 14.1, the package has been renamed to ''xfce4-terminal''.</note> | <note tip>El paquete '' Terminal '' es el terminal de Xfce. En Slackware 14.1, el paquete ha cambiado de nombre a "xfce4-terminal".</note> |
| |
<code> | <code> |
</code> | </code> |
| |
Choose an appropriate place on your system to store the source code and the scripts, for example: | Elija un lugar apropiado en su sistema para almacenar el código fuente y los scripts, por ejemplo: |
| |
<code> | <code> |
</code> | </code> |
| |
Fetch the content from the ''source/xfce/Terminal'' directory on a Slackware mirror. Here's what we get: | Obtenga el contenido del directorio '' source/xfce/Terminal '' en un espejo de Slackware. Esto es lo que obtenemos: |
| |
<code> | <code> |
</code> | </code> |
| |
Make the ''Terminal.SlackBuild'' file executable and start the building process: | Haga que el archivo '' Terminal.SlackBuild '' sea ejecutable e inicie el proceso de construcción: |
| |
<code> | <code> |
</code> | </code> |
| |
The script initiates the package compilation. If everything goes as expected, the operation exits with the following message: | El script inicia la compilación del paquete. Si todo sale como se esperaba, la operación sale con el siguiente mensaje: |
| |
<code> | <code> |
</code> | </code> |
| |
Now we can install the resulting package: | Ahora podemos instalar el paquete resultante: |
| |
<code> | <code> |
</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 ''. |
| |
| 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 ''. |
| |
**WORK IN PROGRESS** | <note important> |
| **TRABAJO EN PROGRESO**</note> |
| |
====== Sources ====== | ====== Sources ====== |