Paquetes
Slackware Linux se divide en series de paquetes:
- a: la base del sistema operativo, aplicaciones comunes en un sistema operativo GNU/Linux necesario para que inicie.
- ap: aplicaciones en modo texto o línea de comandos.
- d: herramientas de desarrollo (compiladores, interpretes, ensambladores, etc).
- e: el editor de texto emacs.
- f: documentación de distintos temas con respecto a la administración y uso de GNU/Linux.
- k: el kernel Linux.
- kde: el entorno de escritorio KDE.
- kdei: soporte de internacionalización de KDE.
- l: librerías o bibliotecas necesarias por las demás aplicaciones.
- n: programas relacionados a redes o servicios de red.
- t: soporte para TeX
- tcl: el lenguaje de programación Tcl.
- x: el X Window System (X.Org)
- xap: aplicaciones en modo gráfico, en contraste con la serie ap.
- xfce: el entorno de escritorio Xfce.
- y: juegos en la línea de comandos.
El sistema de paquetes de Slackware Linux es relativamente simple en comparación al de otras distribuciones de GNU/Linux.
Un paquete de Slackware Linux es un archivo comprimido en formato XZ (en la actualidad) con extención txz
:
El formato de compresión XZ, creado y mantenido por Lasse Collin, utiliza el algoritmo de compresión LZMA2, a través de la biblioteca liblzma. Es el formato utilizado hoy en día para la compresión de archivos TAR de códigos fuente, aunque GZIP aún es el formato más utilizado a la fecha para distribución de código fuente de Software Libre. - Joel Barrios Dueñas
El directorio /var/log/packages/
contiene archivos en texto plano que llevan por nombre el paquete que se encuentra
instalado:
root@servidor:~# ls /var/log/packages/
ConsoleKit2-1.0.0-x86_64-3 tstool-2.0.2-x86_64-1 pth-2.0.7-x86_64-1
Cython-0.23.4-x86_64-1 iw-4.3-x86_64-1 pulseaudio-9.0-x86_64-1
GConf-3.2.6-x86_64-3 asper-1.900.1-x86_64-5 pycairo-1.10.0-x86_64-1
...
...
...
ipw2200-fw-3.1-fw-1 procmail-3.22-x86_64-2 zoo-2.10_22-x86_64-1
irssi-0.8.19-x86_64-1 procps-ng-3.3.11-x86_64-1 zsh-5.2-x86_64-1
iso-codes-3.67-noarch-1 proftpd-1.3.5b-x86_64-1
ispell-3.2.06-x86_64-1 pssh-2.3.1-x86_64-1
El nombre de dichos archivos informa sobre el nombre del paquete, su versión, arquitectura, el número de veces compilado y, opcionalmente, una etiqueta usada para indicar si es una actualización o un paquete creado por otra persona. Por ejemplo:
/var/log/packages/bash-4.3.046-x86_64-1
/var/log/packages/nano-2.6.0-x86_64-1
/var/log/packages/git-2.9.0-x86_64-1
/var/log/packages/openssh-7.3p1-x86_64-1_slack14.2
/var/log/packages/php-5.6.24-x86_64-1_slack14.2
El contenido de alguno de los archivos mencionados indica que fue instalado, reflejando la estructura jerarquica del sistema de archivos desde la /, entre otra información relacionada al paquete:
root@servidor:~# cat /var/log/packages/nano-2.6.0-x86_64-1
PACKAGE NAME: nano-2.6.0-x86_64-1
COMPRESSED PACKAGE SIZE: 454.0K
UNCOMPRESSED PACKAGE SIZE: 2.1M
PACKAGE LOCATION: /var/log/mount/slackware64/ap/nano-2.6.0-x86_64-1.txz
PACKAGE DESCRIPTION:
nano: nano (Nano's ANOther editor, an enhanced free Pico clone)
nano:
nano: nano is a small, free, and friendly editor. It aims to copy Pico's
nano: look and feel while providing additional (or disabled by default)
nano: features that are missing from Pico, such as "search and replace" or
nano: "go to line and column number".
nano:
nano: Chris Allegretta is Nano's author.
nano:
nano: Homepage: http://www.nano-editor.org
nano:
FILE LIST:
./
etc/
etc/nanorc.new
install/
install/doinst.sh
install/slack-desc
usr/
usr/bin/
usr/bin/nano
usr/doc/
usr/doc/nano-2.6.0/
usr/doc/nano-2.6.0/ABOUT-NLS
...
...
...
usr/share/nano/python.nanorc
usr/share/nano/ruby.nanorc
usr/share/nano/sh.nanorc
usr/share/nano/spec.nanorc
usr/share/nano/tcl.nanorc
usr/share/nano/tex.nanorc
usr/share/nano/texinfo.nanorc
usr/share/nano/xml.nanorc
De esta forma la instalación de un paquete en Slackware Linux es descomprimir su contenido en la /
.
Slackware Linux incorporta las siguientes herramientas para la administración de paquetes:
- installpkg: para la instalación de un paquete.
- removepkg: para remover un paquete.
- upgradepkg: para actualizar un paquete.
slackpkg, previamente visto para la actualización de Slackware Linux, internamente hace uso de las anteriores herramientas.
Otra herramienta, muy importante, es makepkg que permite crear un paquete a partir del contenido de un directorio que incluye los archivos que conformarán el paquete.
La creación de un paquete de forma manual está fuera del alcance de este documento ya que requiere de una mayor familiaridad con el sistema operativo, aún así en las siguientes instrucciones se hará uso de makepkg de forma indirecta.
Extras
Slackware Linux incluye algunos paquetes extras que no son instalados durante su instalación completa, algunos de ellos son: aspell, bash-completion y tigervnc (similar a TightVNC).
Para la instalación de todos estos paquetes ejecuta como usuario root: slackpkg install extra
.
SlackBuilds
El proceso de compilar y empaquetar un programa puede ser algo tedioso y propenso a errores al realizarse de forma manual. Por lo anterior los paquetes de Slackware Linux, y de muchas otras distribuciones, se realiza mediante scripts para programar la compilación y creación de paquetes.
Por ejemplo el paquete ntfs-3g es quien permite el acceso de lectura/escritura a dispositivos o particiones con el sistema de archivo NTFS (sistema operativo Windows/DOS). Puedes encontrar en el siguiente URL el SlackBuild que permite su compilación: http://mirrors.slackware.com/slackware/slackware64-14.2/source/a/ntfs-3g/.
Del URL dado encontrarás el archivo ntfs-3g.SlackBuild
que es un script de shell de Bash y contiene todas las instrucciones
o comandos para compilar y crear un paquete para ntfs-3g mediante makepkg (al final del mismo).
Para contrastar un SlackBuild con lo ofrecido por otras distribuciones de GNU/Linux:
- Gentoo Linux: https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-fs/ntfs3g/ntfs3g-2016.2.22-r1.ebuild
- Arch Linux: https://git.archlinux.org/svntogit/packages.git/plain/trunk/PKGBUILD?h=packages/ntfs-3g
- Void Linux: https://raw.githubusercontent.com/voidlinux/void-packages/master/srcpkgs/ntfs-3g/template
- CRUX Linux: https://crux.nu/ports/crux-3.2/contrib/ntfs-3g/Pkgfile
- openSUSE Linux: https://build.opensuse.org/package/view_file/openSUSE:11.4/ntfs-3g/ntfs-3g.spec
- NixOS Linux: https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/tools/filesystems/ntfs-3g/default.nix
- GuixSD GNU/Linux: http://git.savannah.gnu.org/cgit/guix.git/commit/gnu/packages?id=91231156ce321058d82e6272135a4457e004f438
SlackBuilds.org
El proyecto SlackBuilds.org o SBo, independiente a Slackware Linux, lleva varios años ofreciendo un gran repositorio de SlackBuilds para el empaquetado de programas: https://slackbuilds.org/repository/14.2/. Por ejemplo los siguientes servidores web:
- bozohttpd: https://slackbuilds.org/repository/14.2/network/bozohttpd/
- lighttpd: https://slackbuilds.org/repository/14.2/network/lighttpd/
- thttpd: https://slackbuilds.org/repository/14.2/network/thttpd/
- nginx: https://slackbuilds.org/repository/14.2/network/nginx/
sbopkg
sbopkg es un proyecto independiente a Slackware Linux que ofrece una forma comoda para la instalación/actualización de paquetes no oficiales en Slackware Linux haciendo uso de los SlackBuilds ofrecidos por el proyecto SBo.
Descarga la versión más reciente de sbopkg encontrada en https://www.sbopkg.org/downloads.php, 0.38.0 es este momento:
root@servidor:~# wget https://github.com/sbopkg/sbopkg/releases/download/0.38.0/sbopkg-0.38.0-noarch-1_wsr.tgz --2016-08-24 10:01:56-- https://github.com/sbopkg/sbopkg/releases/download/0.38.0/sbopkg-0.38.0-noarch-1_wsr.tgz Resolving github.com (github.com)... 192.30.253.113 Connecting to github.com (github.com)|192.30.253.113|:443... connected. HTTP request sent, awaiting response... 302 Found ... HTTP request sent, awaiting response... 200 OK Length: 116062 (113K) [application/octet-stream] Saving to: ‘sbopkg-0.38.0-noarch-1_wsr.tgz’ sbopkg-0.38.0-noarch-1_wsr.tgz 100%[================================>] 113.34K 266KB/s in 0.4s 2016-08-24 10:01:58 (266 KB/s) - ‘sbopkg-0.38.0-noarch-1_wsr.tgz’ saved [116062/116062]
Verifica la integridad del paquete descargado:
root@servidor:~# md5sum sbopkg-0.38.0-noarch-1_wsr.tgz && echo 8b88ddab4f8948a26a759c3492619c33 8b88ddab4f8948a26a759c3492619c33 sbopkg-0.38.0-noarch-1_wsr.tgz 8b88ddab4f8948a26a759c3492619c33 root@servidor:~# echo '8b88ddab4f8948a26a759c3492619c33 sbopkg-0.38.0-noarch-1_wsr.tgz' | md5sum -c - sbopkg-0.38.0-noarch-1_wsr.tgz: OK
Instala a
sbopkg
:root@servidor:~# installpkg sbopkg-0.38.0-noarch-1_wsr.tgz Verifying package sbopkg-0.38.0-noarch-1_wsr.tgz. Installing package sbopkg-0.38.0-noarch-1_wsr.tgz: PACKAGE DESCRIPTION: # sbopkg (SlackBuilds.org Package Browser) # # Sbopkg is a command-line and dialog-based tool to interact with the # SlackBuilds.org repository, a collection of third-party SlackBuild # scripts to build Slackware packages. # # Homepage : https://www.sbopkg.org # Development: https://github.com/sbopkg/sbopkg # Executing install script for sbopkg-0.38.0-noarch-1_wsr.tgz. Package sbopkg-0.38.0-noarch-1_wsr.tgz installed.
El paquete de
sbopkg
creará los siguientes archivos, siendo/etc/sbopkg/sbopkg.conf
su archivo de configuración:root@servidor:~# tree -aF /etc/sbopkg/ /etc/sbopkg/ ├── renames.d/ │ ├── 50-default.renames │ └── README -> /usr/doc/sbopkg-0.38.0/README-renames ├── repos.d/ │ ├── 40-sbo.repo │ ├── 50-local.repo │ ├── 60-SBo-current.repo │ ├── 90-SBo-master.repo │ └── README -> /usr/doc/sbopkg-0.38.0/README-repos └── sbopkg.conf 2 directories, 8 files
Descarga la colección de SlackBuilds:
root@servidor:~# sbopkg -r The following directories do not exist: Variable Assignment -------- ---------- REPO_{ROOT,NAME,BRANCH} -> /var/lib/sbopkg/,SBo/,14.2 LOGFILE directory -------> /var/log/sbopkg QUEUEDIR ----------------> /var/lib/sbopkg/queues SRCDIR ------------------> /var/cache/sbopkg TMP ---------------------> /tmp/SBo You can have sbopkg create them or, if these values are incorrect, you can abort to edit your config files or pass different flags. (C)reate or (A)bort?:
Ingresa
c
y aprieta la tecla deEnter
:(C)reate or (A)bort?: c Syncing with the remote repository into /var/lib/sbopkg/SBo/14.2. receiving incremental file list ./ CHECKSUMS.md5 ChangeLog.txt README SLACKBUILDS.TXT ... ... ... sent 809,766 bytes received 82,955,499 bytes 482,796.92 bytes/sec total size is 80,060,236 speedup is 0.96 Rsync with the SBo repository for Slackware 14.2 complete. Importing SBo repository for Slackware 14.2 GPG Key... Import done. ***SYNC COMPLETE***
Sobre el comportamiento de sbopkg
sbopkg
administra algunos directorio para poder realizar su trabajo:
/var/lib/sbopkg/SBo/14.2
: el repositorio local o directorio con los SlackBuilds mantenidos por el proyecto SBo. Este directorio se actualiza cuando uno ejecutasbopkg -r
./var/log/sbopkg
: registros o logs sobre la ejecución de un SlackBuild./var/cache/sbopkg
: directorio donde se mantiene el código fuente o archivos necesarios para compilar-construir un paquete./tmp/SBo
: directorio temporal usado para compilar-construir un paquete./var/lib/sbopkg/queues
: directorio con queues. Un queue es un archivo que instruye asbopkg
sobre el orden y las opciones que debe usar para compilar-contruir una cola (colección) de paquete.
Busqueda de SlackBuilds
Para realizar la busqueda de un SlackBuild en base a su nombre se tienen las opciones -g
y -s
:
Buscar SlackBuilds que tengan en su nombre la palabra web:
root@servidor:~# sbopkg -g web Searching for web Found the following matches for web: desktop/wmwebcam development/WebStorm development/google-webdesigner development/noweb graphics/gnome-web-photo libraries/WebOb libraries/libwebp libraries/libwebsocketpp libraries/libwebsockets libraries/qt5-webkit libraries/web.py libraries/webkit2gtk libraries/webkitgtk libraries/webkitgtk3 network/EarthReader-Web network/pidgin-skypeweb network/webalizer network/webkit-sharp network/weboob perl/perl-WebService-MusicBrainz python/python-twisted-web2 python/pywebkitgtk python/webassets python/websocket-client system/graphite-web system/icinga-web system/icingaweb2 system/webcore-fonts system/webmin
Buscar SlackBuilds que tengan en su nombre la palabra http:
root@servidor:~# sbopkg -g http Searching for http Found the following matches for http: haskell/haskell-HTTP haskell/haskell-http-client haskell/haskell-http-client-tls haskell/haskell-http-types libraries/http-parser libraries/libmicrohttpd network/bozohttpd network/darkhttpd network/httpie network/httping network/httptunnel network/lighttpd network/lighttpd2 network/nghttp2 network/slowhttptest network/thttpd perl/perl-AnyEvent-HTTP perl/perl-HTTP-Cache-Transparent perl/perl-HTTP-Proxy perl/perl-LWP-Protocol-https perl/perl-http-cookies perl/perl-http-daemon perl/perl-http-date perl/perl-http-message perl/perl-http-negotiate perl/perl-http-response-encoding perl/perl-http-server-simple perl/perl-net-http python/httplib2 python/ndg_httpsclient ruby/rubygem-http_parser.rb
Buscar SlackBuilds que tengan en su nombre la palabra virt:
root@servidor:~# sbopkg -g virt Searching for virt Found the following matches for virt: games/virtualjaguar-libretro libraries/libvirt libraries/libvirt-glib libraries/libvirt-python python/virtualenv python/virtualenv-clone python/virtualenvwrapper system/virt-manager system/virt-viewer system/virtualbox system/virtualbox-addons system/virtualbox-extension-pack system/virtualbox-kernel system/virtualbox-kernel-addons
Instalación de paquetes
La instalación un de paquete consta principalmente de:
Reconocer sus dependencias: es uno de los temas más cruciales para las distribuciones de GNU/Linux y sus usuarios.
Una dependencia es un paquete que debe de estar instalado previa compilación o construcción de un paquete. La dependencia puede ser una biblioteca (o librería) o bien un programa. Por ejemplo: feh es un programa, en la línea de comandos, que permite visualizar imagenes así como colocar una imagen como fondo de pantalla.
Buscando a feh mediante
sbopkg
:root@servidor:~# sbopkg -g feh Searching for feh Found the following matches for feh: graphics/feh
El contenido de
/var/lib/sbopkg/SBo/14.2/graphics/feh/
:root@servidor:~# tree /var/lib/sbopkg/SBo/14.2/graphics/feh/ /var/lib/sbopkg/SBo/14.2/graphics/feh/ ├── README ├── feh.SlackBuild ├── feh.info └── slack-desc 0 directories, 4 files
- El archivo
README
contiene información sobre el paquete y en ocasiones algunas recomendaciones para su uso. - El archivo
feh.SlackBuild
es un shell script de Bash para compilar y construir el paquete de feh. - El archivo
feh.info
contiene declaración de variables con información necesaria sobre feh.
El contenido de
/var/lib/sbopkg/SBo/14.2/graphics/feh/feh.info
:PRGNAM="feh" VERSION="2.14" HOMEPAGE="http://feh.finalrewind.org" DOWNLOAD="http://feh.finalrewind.org/feh-2.14.tar.bz2" MD5SUM="79c2e287f00071066b2857ade0b03560" DOWNLOAD_x86_64="" MD5SUM_x86_64="" REQUIRES="imlib2" MAINTAINER="Luka Novsak" EMAIL="lnovsak@gmail.com"
La línea más sobresaliente es
REQUIRES="imlib2"
la cual indica que feh requiere de imlib2 para su funcionamiento.Buscando a imlib2 mediante
sbopkg
:root@servidor:~# sbopkg -g imlib2 Searching for imlib2 Found the following matches for imlib2: libraries/imlib2
El contenido de
/var/lib/sbopkg/SBo/14.2/libraries/imlib2/imlib2.info
nos hace ver que imlib2 ya no requiere de algo más, por lo que concluiremos con que feh es instalado después de imlib2:root@servidor:~# sbopkg -i imlib2 -i feh ########################################### New queue process started on: Mon Aug 29 21:22:06 CDT 2016 ########################################### +++++++++++++++++++++++++++++++++++++++++++ PRE-CHECK LOG Using the SBo repository for Slackware 14.2 Queue Process: Download, build, and install imlib2: Checking GPG for imlib2.tar.gz ... OK Processing imlib2 1.4.9-1 Using original .info file Using original SlackBuild file No build options selected. feh: Checking GPG for feh.tar.gz ... OK Processing feh 2.14-1 Using original .info file Using original SlackBuild file No build options selected. +++++++++++++++++++++++++++++++++++++++++++ Pre-check complete. Do you wish to proceed based on the search results above? Packages not found will be skipped during the process. (P)roceed or (Q)uit?:
Responde con p para proceder:
Processing imlib2 imlib2: imlib2 not found in /var/cache/sbopkg. --2016-08-29 21:22:51-- http://downloads.sourceforge.net/enlightenment/imlib2-1.4.9.tar.gz ... ... ... Slackware package /tmp/sbopkg.n2PGe7/sbopkg-sbooutputdir/imlib2-1.4.9-x86_64-1_SBo.tgz created. Done building package for imlib2. Built package: imlib2-1.4.9-x86_64-1_SBo.tgz +============================================================================== | Installing new package /tmp/imlib2-1.4.9-x86_64-1_SBo.tgz +============================================================================== ... ... ... Processing feh feh: feh not found in /var/cache/sbopkg. --2016-08-29 21:23:33-- http://feh.finalrewind.org/feh-2.14.tar.bz2 ... ... ... Slackware package /tmp/sbopkg.n2PGe7/sbopkg-sbooutputdir/feh-2.14-x86_64-1_SBo.tgz created. Done building package for feh. Built package: feh-2.14-x86_64-1_SBo.tgz +============================================================================== | Installing new package /tmp/feh-2.14-x86_64-1_SBo.tgz +============================================================================== ... ... ... ########################################### Queue process complete! ###########################################
- El archivo
Reconocer sus requerimientos: algunos paquetes requieren no solo la resolución de dependencias si no también algunos cambios en la configuración actual del sistema operativo. Este tema de igual forma diferencia a las distribucionesde GNU/Linux ya que algunas pueden tomar demasiadas decisiones por uno, el administrador.
Los requerimientos pueden ser:
- Cambios en la configuración de ejecución del kernel Linux.
- Creación de cuentas de usuarios o grupos previa compilación, construcción, instalación o ejecución de un paquete.
- Ejecución de algún programa para permitir la compilación o construcción del paquete en cuestión.
Como siempre, la mejor opción es leer la documentación sobre el paquete o programa que se quiere integrar o ejecutar al sistema operativo.
Por ejemplo: PostgreSQL, el sistema gestor de base de datos.
Buscando a PostgreSQL mediante
sbopkg
:root@servidor:~# sbopkg -g postgresql Searching for postgresql Found the following matches for postgresql: system/postgresql
El contenido de
/var/lib/sbopkg/SBo/14.2/system/postgresql/
:root@servidor:~# tree /var/lib/sbopkg/SBo/14.2/system/postgresql/ /var/lib/sbopkg/SBo/14.2/system/postgresql/ ├── README ├── README.SBo ├── doinst.sh ├── postgresql.SlackBuild ├── postgresql.info ├── postgresql.logrotate ├── rc.postgresql.new ├── setup.postgresql └── slack-desc 0 directories, 9 files
Leyendo el contenido de los archivos
README
yREADME.SBo
uno podrá informarse de como integrar a PostgreSQL a Slackware Linux:- Se necesita el grupo de usuarios postgres para su uso.
- Se necesita el usuario postgres, siendo propietario del directorio
/var/lib/pgsql
. - Se necesita crear el conjunto de archivos propios de postgresql para su ejecución en
/var/lib/pgsql
mediante el comandoinitdb
. - Se contará con un script de shell para administrar el inicio, la detención y el reinicio de PostgreSQL:
/etc/rc.d/rc.postgresql
. - Si se quiere que el sistema operativo se encargue de ininiciar y detener de forma automatica a PostgreSQL se tiene que modificar
el archivo
/etc/rc.d/rc.local
. - Se dan otras opciones para integrar algunas extensiones así como consideraciones para actualizar de versión mayor a PostgreSQL.
Actualización de sbopkg
sbopkg puede actualizado mediante el parámetro -u
.
Para obtener la versión instalada de
sbopkg
:root@servidor:~# sbopkg -v 0.38.0
La versión actualmente instalada es 0.38.0.
Actualizando a
sbopkg
:root@servidor:~# sbopkg -u Checking http://www.sbopkg.org for an update... Your version of sbopkg: 0.38.0 Latest version of sbopkg found on sbopkg.org: 0.38.1 Different versions reported. (D)ownload the remote package or (Q)uit?:
sbopkg
indica que existe una nueva versión: 0.38.1. Ingresando Q y apretando la teclaEnter
descargará la nueva versión.Different versions reported. (D)ownload the remote package or (Q)uit?:d --2016-09-03 15:37:24-- https://github.com/sbopkg/sbopkg/releases/download/0.38.1/sbopkg-0.38.1-noarch-1_wsr.tgz Resolving github.com (github.com)... 192.30.253.113 Connecting to github.com (github.com)|192.30.253.113|:443... connected. HTTP request sent, awaiting response... 302 Found ... ... ... HTTP request sent, awaiting response... 200 OK Length: 116676 (114K) [application/octet-stream] Saving to: ‘sbopkg-0.38.1-noarch-1_wsr.tgz’ sbopkg-0.38.1-noarch-1_wsr.tgz 100%[================================>] 113.94K 266KB/s in 0.4s 2016-09-03 15:37:26 (266 KB/s) - ‘sbopkg-0.38.1-noarch-1_wsr.tgz’ saved [116676/116676] ... ... ... Download complete. The downloaded file is located at: /tmp/sbopkg-0.38.1-noarch-1_wsr.tgz You can now quit sbopkg and upgrade sbopkg manually. Once you have upgraded sbopkg, please be sure to check the /etc/sbopkg/sbopkg.conf.new file for any changes that may need to be merged into your existing /etc/sbopkg/sbopkg.conf file. You can also view a complete ChangeLog.txt in the /usr/share/doc/sbopkg-0.38.1/ directory or online at: http://www.sbopkg.org/changelog
Actualizar el paquete de
sbopkg
:root@servidor:~# upgradepkg /tmp/sbopkg-0.38.1-noarch-1_wsr.tgz +============================================================================== | Upgrading sbopkg-0.38.0-noarch-1_wsr package using /tmp/sbopkg-0.38.1-noarch-1_wsr.tgz +============================================================================== Pre-installing package sbopkg-0.38.1-noarch-1_wsr... Removing package /var/log/packages/sbopkg-0.38.0-noarch-1_wsr-upgraded-2016-09-03,15:42:09... --> Deleting /usr/doc/sbopkg-0.38.0/HACKING ... ... ... --> Deleting empty directory /usr/doc/sbopkg-0.38.0/ Verifying package sbopkg-0.38.1-noarch-1_wsr.tgz. Installing package sbopkg-0.38.1-noarch-1_wsr.tgz: PACKAGE DESCRIPTION: # sbopkg (SlackBuilds.org Package Browser) # # Sbopkg is a command-line and dialog-based tool to interact with the # SlackBuilds.org repository, a collection of third-party SlackBuild # scripts to build Slackware packages. # # Homepage : https://www.sbopkg.org # Development: https://github.com/sbopkg/sbopkg # Executing install script for sbopkg-0.38.1-noarch-1_wsr.tgz. Package sbopkg-0.38.1-noarch-1_wsr.tgz installed. Package sbopkg-0.38.0-noarch-1_wsr upgraded with new package /tmp/sbopkg-0.38.1-noarch-1_wsr.tgz
Lecturas
- Instalación de paquetes con sbopkg por Eduardo Jiménez (ecoslacker)
- Actualizar paquetes de SlackBuilds instalados usando sbopkg por Eduardo Jiménez (ecoslacker)
- Slackware: Sbopkg y los SlackBuilds, instala paquetes fácilmente por DMoZ
Uso de sbopkg
Se darán otros ejemplos en el uso de un SlackBuild, tratando de plantear algunas situaciones que se presentan en la compilación y empaquetado de una aplicación o una librería.
JDK
El JDK (Java Development Kit) ofrecido por Oracle no forma parte oficialmente de Slackware Linux desde que Oracle retiró la licencia para distribuir Java en distribuciones de GNU/Linux (2011).
Existen, al menos, dos SlackBuilds para obtener el JDK:
development/jdk
: para empaquetar (sin compilar) el JDK de Oracle, la implementación privativa de la plataforma Java.development/openjdk8
: para compilar y empaquetar a OpenJDK, la implementación libre y abierta de la plataforma Java.
Se darán los pasos para empaquetar el JDK de Oracle por ser un proceso más rápido de llevar a cabo. OpenJDK requiere de al menos 2 hrs. y 11GB en disco duro (/tmp
)
para su compilación y empaquetado.
Accede a http://www.oracle.com/technetwork/es/java/javase/downloads/index.html y da clic al botón Download bajo JDK en la sección Java SE 8u101 / 8u121.
En la sección Java SE Development Kit 8u121 da clic a la opción Accept License Agreement y descarga el archivo
jdk-8u121-linux-x64.tar.gz
.El archivo
jdk-8u121-linux-x64.tar.gz
muevelo al directorio/var/cache/sbopkg/
para quesbopkg
lo encuentré al iniciar el empaquetado.Suponiendo que el archivo
jdk-8u121-linux-x64.tar.gz
se encuentre en/home/alumno/Downloads
:root@servidor:~# mv /home/alumno/Downloads/jdk-8u121-linux-x64.tar.gz /var/cache/sbopkg/
Ejecuta
sbopkg -i jdk
para iniciar el empaquetado y en caso de exito realizar la instalación.root@servidor:~# sbopkg -i jdk ########################################### New queue process started on: Tue Sep 13 23:04:22 CDT 2016 ########################################### +++++++++++++++++++++++++++++++++++++++++++ PRE-CHECK LOG Using the SBo repository for Slackware 14.2 Queue Process: Download, build, and install jdk: Checking GPG for jdk.tar.gz ... OK Processing jdk 8u121-1 Using original .info file Using original SlackBuild file No build options selected. +++++++++++++++++++++++++++++++++++++++++++ Pre-check complete. Do you wish to proceed based on the search results above? Packages not found will be skipped during the process. (P)roceed or (Q)uit?: p Processing jdk jdk: Found jdk-8u121-linux-x64.tar.gz in /var/cache/sbopkg. Checking MD5SUM: MD5SUM check for jdk-8u121-linux-x64.tar.gz ... OK Building package for jdk... jdk1.8.0_102/ jdk1.8.0_102/THIRDPARTYLICENSEREADME-JAVAFX.txt jdk1.8.0_102/THIRDPARTYLICENSEREADME.txt jdk1.8.0_102/lib/ jdk1.8.0_102/lib/jexec jdk1.8.0_102/lib/javafx-mx.jar jdk1.8.0_102/lib/packager.jar ... ... ... +============================================================================== | Installing new package /tmp/jdk-8u121-x86_64-1_SBo.tgz +============================================================================== ... ... ... Done upgrading/installing package. +++++++++++++++++++++++++++++++++++++++++++ SUMMARY LOG Using the SBo repository for Slackware 14.2 Queue Process: Download, build, and install jdk: MD5SUM check for jdk-8u121-linux-x64.tar.gz ... OK Building package jdk-8u121-x86_64-1_SBo.tgz ... OK Installing package jdk-8u121-x86_64-1_SBo.tgz ... OK +++++++++++++++++++++++++++++++++++++++++++ ########################################### Queue process complete! ###########################################
rxvt-unicode
rxvt-unicode
, la terminal virtual, no tiene dependencia alguna por lo que su instalación es con el comando sbopkg -i rxvt-unicode
.
PostgreSQL
PostgreSQL, el sistema gestor de base de datos, requiere previa compilación e instalación la creación de un grupo de usuario y una cuenta de usuario en el sistema operativo. Las indicaciones están dadas en https://slackbuilds.org/repository/14.2/system/postgresql/:
root@servidor:~# groupadd -g 209 postgres
root@servidor:~# useradd -u 209 -g 209 -d /var/lib/pgsql postgres
Al momento de ejecutar groupadd
el archivo /etc/group
será alteratdo, mientras que con el comando useradd
el archivo
/etc/passwd
será alterado:
root@servidor:~# grep 209 /etc/group
postgres:x:209:
root@servidor:~# grep 209 /etc/passwd
postgres:x:209:209::/var/lib/pgsql:/bin/bash
Una vez creado el grupo y usuario se instala a PostgreSQL con el comando sbopkg -i postgresql
.
pgAdmin3
pgAdmin3, el cliente gráfico para PostgreSQL, puede ser instalado con el comando sbopkg -i wxPython -i pgadmin3
.
wxPython es una dependencia de pgadmin3 para su instalación:
wxPython es un binding de la biblioteca gráfica wxWidgets para el lenguaje de programación Python. La biblioteca wxWidgets se caracteriza por ser multiplataforma, por lo que su uso junto a Python permite el desarrollo rápido de aplicaciones gráficas multiplataforma. - Wikipedia
Debe observarse que, de acuerdo a /var/lib/sbopkg/SBo/14.2/system/pgadmin3/pgadmin3.info
, pgAdmin3 requiere también de PostgreSQL para su
compilación e instalación.
Python 3
Slackware Linux ya incluye al lenguaje de programación Python pero en su versión 2:
root@servidor:~# which python
/usr/bin/python
root@servidor:~# which python2
/usr/bin/python2
root@servidor:~# file /usr/bin/python
/usr/bin/python: symbolic link to python2.7
root@servidor:~# file /usr/bin/python2
/usr/bin/python: symbolic link to python2.7
root@servidor:~# python --version
Python 2.7.11
Para instalar a Python 3 haciendo uso de sbopkg
se ejecuta el comando sbopkg -i python3
. Al terminar se podrá verificar
la instalación de Python 3:
root@servidor:~# which python3
/usr/bin/python3
root@servidor:~# file /usr/bin/python3
/usr/bin/python3: symbolic link to python3.5
root@servidor:~# python3 --version
Python 3.5.2
Queuefiles
sbopkg
incluye la opción de generar queuefiles para la compilación de algunos paquetes complejos en cuanto a la cantidad de
dependencias. Un queuefile es un archivo de texto plano que establece las dependencias a instalar de un paquete en base al campo
REQUIRES
en su archivo *.info
(visto previamente).
Para generar los queuefiles se ejecuta el comanto sqg -a
(sbopkg queue generator) como usuario root. Este proceso
tardará varios minutos...
root@servidor:~# sqg -a
Processing all SlackBuilds in the SBo/14.2 repo.....
....................................................
.................................................... Done
sqg -a
deberá ser ejecutado cada vez que se actualice el repositorio local de SlackBuilds
(sbopkg -r
).
El directorio /var/lib/sbopkg/queues
contiene los queuefile generados.
VLC
El reproductor de múltimedia VLC es uno de los paquetes complejos en su instalación ya que depende de varios paquetes para su uso, alrededor de 50 dependencias. Puede encontrarse documentación sobre sus dependencias en https://wiki.videolan.org/Contrib_Status.
Si ya se generaron los queuefile se puede obtener una lista de sus dependencias en el archivo /var/lib/sbopkg/queues/vlc.sqf
.
Una de las dependencias de VLC es avahi quien requiere para su compilación e instalación la creación de un usuario y
grupo en el sistema operativo. Las instrucciones para la creación de este usuario-grupo están dadas en el archivo
/var/lib/sbopkg/SBo/14.2/network/avahi/README.SBo
. Crea dicho usuario-grupo previa instalación de VLC.
Para llevar a cabo la instalación de VLC:
root@servidor:~# sbopkg -i vlc
Both a queuefile and a package were found with the name "vlc".
Use (Q)ueuefile, (P)ackage, or (A)bort?:
sbopkg
questiona si se quiere hacer uso del queuefile (opción Q) o del paquete (opción P), ingresa Q y aprieta la tecla de Enter.
root@servidor:~# sbopkg -i vlc
Both a queuefile and a package were found with the name "vlc".
Use (Q)ueuefile, (P)ackage, or (A)bort?:
...
...
...
Pre-check complete.
Do you wish to proceed based on the search results above? Packages not
found will be skipped during the process.
(P)roceed or (Q)uit?:
sbopkg
cuestiona si se quiere proceder con la instalación de VLC y todas sus dependencias (opción P) o detener (opción Q), ingresa P
y aprieta la tecla de Enter.
Dependiendo de la velocidad en el acceso a la Internet así como del CPU/RAM este proceso tardará varios minutos. Al terminar se tendrá instalado a VLC.
GStreamer (libav, plugins-bad y plugins-ugly)
GStreamer forma parte de Slackware Linux por lo que ya se encuentra instalado, sin embargo los complementos (o plugins) necesarios para reproducir algunos formatos de audio/video (MP3 por ejemplo) no: gst-libav, gst-plugins-bad y gst-plugins-ugly.
Para instalar los complementos faltantes:
root@servidor:~# sbopkg -i gst-libav -i gst-plugins-bad -i gst-plugins-ugly
...
...
...
Pre-check complete.
Do you wish to proceed based on the search results above? Packages not
found will be skipped during the process.
(P)roceed or (Q)uit?:
De igual forma, ingresa P y aprieta la tecla de Enter para realizar la instalación.