[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

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
wiki:user:kikinovak [2013/03/30 19:38 (UTC)] – Fixed the awful rendering of this page. alienbobwiki:user:kikinovak [2014/02/20 06:38 (UTC)] (current) kikinovak
Line 47: Line 47:
 Stuff I'm currently working on, and which will eventually end up as a page in the Slackware Documentation Project. Stuff I'm currently working on, and which will eventually end up as a page in the Slackware Documentation Project.
  
-===== Software Management ===== 
  
-==== Anatomy of a Slackware package ==== 
  
-A Slackware package is a simple TGZ or TXZ compressed archive containing: 
  
-  * the tree structure of files and directories ; 
-  * post-installation scripts ; 
-  * the package description. 
  
-The name of every package provides a series of informations: 
  
-  * the program name ; 
-  * the program version ; 
-  * the architecture of the package ; 
-  * the build number.  
  
-Here's a few examples: 
  
-  * ''emacs-24.2-i486-1'' 
-  * ''mozilla-firefox-15.0.1-i486-1'' 
-  * ''vim-7.3.645-x86_64-1'' 
  
-==== Managing Slackware packages using the traditional tools ==== 
  
-Since its early releases, Slackware provides a collection of simple tools - the ''pkgtools'' - enabling the user to install, upgrade and remove software packages, as well as build them: 
  
-  * ''installpkg'' 
-  * ''removepkg'' 
-  * ''upgradepkg'' 
-  * ''explodepkg'' 
-  * ''makepkg'' 
  
-=== Installing software packages === 
  
-Install the Emacs editor from the Slackware DVD ((if it's not already installed)): 
  
-<code> 
-# mount /dev/cdrom /mnt/cdrom 
-# cd /mnt/cdrom/slackware/e 
-# installpkg emacs-24.2-i486-1.txz 
-Verifying package emacs-24.2-i486-1.txz. 
-Installing package emacs-24.2-i486-1.txz [ADD]: 
-PACKAGE DESCRIPTION: 
-# emacs (GNU Emacs) 
-# 
-# Emacs is the extensible, customizable, self-documenting real-time 
-# display editor. If this seems to be a bit of a mouthful, an 
-# easier explanation is that Emacs is a text editor and more. At 
-# its core is an interpreter for Emacs Lisp, a dialect of the Lisp 
-# programming language with extensions to support text editing. 
-# This version supports X. 
-# 
-# http://www.gnu.org/software/emacs/ 
-# 
-Executing install script for emacs-24.2-i486-1.txz. 
-Package emacs-24.2-i486-1.txz installed. 
-</code> 
- 
-<note tip>If you're using the CD set, Emacs is on the first CD.</note> 
- 
-=== Checking if a package is installed === 
- 
-The package installation process has created a new entry in ''/var/log/packages'' : 
- 
-<code> 
-# ls /var/log/packages/em* 
-/var/log/packages/emacs-24.2-i486-1 
-</code> 
- 
-Knowing if a package is installed boils down to checking the existence of the corresponding entry in ''/var/log/packages''. Example : 
- 
-<code> 
-# ls /var/log/packages/*firefox* 
-/var/log/packages/mozilla-firefox-15.0.1-i486-1 
-</code> 
- 
-Firefox is installed on the system, in version 15.0.1. Another example : 
- 
-<code> 
-# ls /var/log/packages/kdebase* 
-ls: cannot access /var/log/packages/kdebase*: No such file or directory 
-</code> 
- 
-There is no  ''kdebase-*'' package installed on the system. 
- 
-=== Removing a package === 
- 
-Use ''removepkg'' to remove an installed package. The command can take the simple basename of the package as an argument. Example: 
- 
-<code> 
-# removepkg emacs 
-</code> 
- 
-It's also possible to provide the complete name as an argument. In that case, it's better to call the command from within ''/var/log/packages'' and use tab completion: 
- 
-<code> 
-# cd /var/log/packages 
-# removepkg emacs-24.2-i486-1 
-</code> 
- 
-=== Upgrading a package === 
- 
-Slackware provides security updates for its latest releases. Visit the official site to know more about the latest updates: 
- 
-<code>   
-# links http://www.slackware.com 
-</code> 
- 
-  - Follow the ''ChangeLogs'' link. 
-  - Check out ''Slackware-stable ChangeLog''. 
-  - Read the file ''ChangeLog.txt'' corresponding to the architecture of your system. 
- 
-You can also use the Links browser to fetch updates manually. Before launching Links, create a ''/root/updates'' directory ((This is just an example, of course. Feel free to use any convenient place on your system.)) to store your downloaded updates: 
- 
-<code> 
-# cd 
-# mkdir updates 
-# cd updates/ 
-# links mirrors.slackware.com 
-</code> 
- 
-  - Follow the ''Slackware File Tree'' link. 
-  - Check out the directory corresponding to your release and architecture. 
-  - Change into the ''patches/packages'' directory. 
-  - Download any available updates. 
-   
-Quit Links and install your updates like this : 
- 
-<code> 
-# upgradepkg bind-9.9.1_P4-i486-1_slack14.0.txz 
- 
-+============================================================================== 
-| Upgrading bind-9.9.1_P3-i486-1 package using ./bind-9.9.1_P4-i486-1_slack14.0.txz 
-+============================================================================== 
-Pre-installing package bind-9.9.1_P4-i486-1_slack14.0... 
-Removing package /var/log/packages/bind-9.9.1_P3-i486-1-upgraded-2012-11-21,12:14:32... 
-  --> Deleting /usr/doc/bind-9.9.1-P3/CHANGES 
-  --> Deleting /usr/doc/bind-9.9.1-P3/COPYRIGHT 
-  --> Deleting /usr/doc/bind-9.9.1-P3/FAQ 
-  ... 
-Verifying package bind-9.9.1_P4-i486-1_slack14.0.txz. 
-Installing package bind-9.9.1_P4-i486-1_slack14.0.txz: 
-PACKAGE DESCRIPTION: 
-bind (DNS server and utilities) 
-# 
-# The named daemon and support utilities such as dig, host, and 
-# nslookup.  Sample configuration files for running a simple caching 
-# nameserver are included.  Documentation for advanced name server 
-# setup can be found in /usr/doc/bind-9.x.x/. 
-# 
-Executing install script for bind-9.9.1_P4-i486-1_slack14.0.txz. 
-Package bind-9.9.1_P4-i486-1_slack14.0.txz installed. 
-   
-Package bind-9.9.1_P3-i486-1 upgraded with new package 
-./bind-9.9.1_P4-i486-1_slack14.0.txz. 
-</code> 
- 
-Another example : 
- 
-<code> 
-# upgradepkg iptables-1.4.14-i486-2_slack14.0.txz 
-</code> 
- 
-=== Know more about the contents of a package === 
- 
-Every package has a corresponding entry in ''/var/log/packages''. These are all simple text files providing information about the contents of the respective packages. Example: 
- 
-<code> 
-# less /var/log/packages/wget-1.14-i486-1 
-PACKAGE NAME:     wget-1.14-i486-1 
-COMPRESSED PACKAGE SIZE:     478.5K 
-UNCOMPRESSED PACKAGE SIZE:     2.0M 
-PACKAGE LOCATION: /var/log/mount/slackware/n/wget-1.14-i486-1.txz 
-PACKAGE DESCRIPTION: 
-wget: wget (a non-interactive network retriever) 
-wget: 
-wget: GNU Wget is a free network utility to retrieve files from the  
-wget: World Wide Web using HTTP and FTP, the two most widely used Internet 
-wget: protocols.  It works non-interactively, thus enabling work in the 
-wget: background after having logged off. 
-wget: 
-wget: The author of Wget is Hrvoje Niksic <hniksic@srce.hr>. 
-wget: 
-wget: 
-wget: 
-FILE LIST: 
-./ 
-install/ 
-install/slack-desc 
-install/doinst.sh 
-usr/ 
-usr/bin/ 
-usr/bin/wget 
-usr/man/ 
-usr/man/man1/ 
-usr/man/man1/wget.1.gz 
-usr/info/ 
-usr/info/wget.info.gz 
-... 
-</code> 
- 
-==== Managing Slackware packages with slackpkg ==== 
- 
-L'utilitaire ''slackpkg'' a été officiellement inclus dans Slackware depuis la version 13.0. Il permet de gérer les paquets Slackware de manière beaucoup plus confortable.  
- 
-Deux mises en garde s'imposent : 
- 
-  - Seuls les paquets officiels sont gérés par ''slackpkg''. 
-  - La gestion des dépendances reste toujours à la charge de l'administrateur. 
- 
- 
-=== Configuration initiale === 
- 
-Éditer ''/etc/slackpkg/mirrors'' et décommenter //une seule// source de paquets au choix, par exemple : 
- 
-<code> 
-# /etc/slackpkg/mirrors 
-... 
-# FRANCE (FR) 
-ftp://mirror.ovh.net/mirrors/ftp.slackware.com/slackware-14.0/ 
-# http://mirror.ovh.net/mirrors/ftp.slackware.com/slackware-14.0/ 
-</code> 
- 
-<note warning>Attention à ne pas se tromper de section et à ne pas utiliser un site miroir de ''Slackware-current'', sous peine de se retrouver avec la version de développement de Slackware !</note> 
- 
-Si l'on préfère gérer les paquets localement et faire fi des mises à jour, on peut également utiliser le DVD d'installation comme source de paquets. Dans ce cas, on modifiera le point de montage défini par défaut : 
- 
-<code> 
-# /etc/slackpkg/mirrors  
-... 
-#---------------------------------------------------------------- 
-# Local CD/DVD drive 
-#---------------------------------------------------------------- 
-cdrom://mnt/cdrom/ 
-... 
-</code> 
- 
-Ne pas oublier de monter le DVD avant chaque invocation de ''slackpkg'' : 
- 
-<code> 
-# mount /dev/cdrom /mnt/cdrom 
-</code> 
- 
-Mettre à jour les informations sur les paquets disponibles : 
- 
-<code> 
-# slackpkg update 
-</code> 
- 
-<note>Notez bien que cette commande n'installe pas de mises à jour de paquets. Elle synchronise seulement les informations sur ce que l'on //peut// installer.</note>  
- 
-<note tip>Avant de rechercher, d'installer ou de mettre à jour un paquet, c'est une bonne idée d'invoquer ''slackpkg update'' pour être sûr d'avoir des infos à jour sur les paquets disponibles.</note> 
- 
- 
-=== Installer des paquets === 
- 
-Exemple avec un seul paquet : 
- 
-<code> 
-# slackpkg install mplayerplug-in 
-</code> 
- 
-Il suffit de confirmer l'installation dans l'écran subséquent, et le paquet est directement récupéré et installé. 
- 
-On peut également fournir plusieurs paquets en argument : 
- 
-<code> 
-# slackpkg install mplayerplug-in bittorrent 
-</code> 
- 
-Les groupes de paquets sont également gérés : 
- 
-<code> 
-# slackpkg install kde 
-</code> 
- 
-Ou encore : 
- 
-<code> 
-# slackpkg install xfce 
-</code> 
- 
-=== Supprimer des paquets === 
- 
-Exemple avec un seul paquet : 
- 
-<code> 
-# slackpkg remove mplayerplug-in 
-</code> 
- 
-Là aussi, il suffit de confirmer la suppression dans l'écran récapitulatif. 
- 
-Supprimer plusieurs paquets à la fois : 
- 
-<code> 
-# slackpkg remove mplayerplug-in bittorrent 
-</code> 
- 
-Les groupes de paquets sont également gérés pour la suppression : 
- 
-<code> 
-# slackpkg remove kde 
-</code> 
- 
-Ou encore : 
- 
-<code> 
-# slackpkg remove xfce 
-</code> 
- 
-=== Mettre à jour des paquets === 
- 
-Lorsqu'une mise à jour est disponible pour un paquet, on peut l'installer comme 
-ceci : 
- 
-<code> 
-# slackpkg upgrade iptables 
-</code> 
- 
-De même pour plusieurs paquets : 
- 
-<code> 
-# slackpkg upgrade mozilla-firefox mozilla-thunderbird 
-</code> 
- 
-Dans la pratique quotidienne, on mettra à jour l'intégralité du système : 
- 
-<code> 
-# slackpkg upgrade-all 
-</code> 
- 
-=== Rechercher des paquets ou des fichiers individuels === 
- 
-Rechercher un paquet spécifique : 
- 
-<code> 
-# slackpkg search k3b     
-Looking for k3b in package list. Please wait... DONE 
-The list below shows all packages with name matching "k3b". 
-[uninstalled] - k3b-2.0.2_20120226.git-i486-1 
-</code> 
- 
-Si le paquet est déjà installé, on obtiendra le résultat suivant : 
- 
-<code> 
-# slackpkg search Terminal 
-Looking for Terminal in package list. Please wait... DONE 
-The list below shows all packages with name matching "Terminal". 
-[ installed ] - Terminal-0.4.8-i486-1 
-</code> 
- 
-On peut également chercher des fichiers individuels, ce qui affichera le cas échéant le ou les paquets contenant le fichier en question : 
- 
-<code> 
-# slackpkg file-search libncurses.so 
-Looking for libncurses.so in package list. Please wait... DONE 
-The list below shows the packages that contains "libncurses\.so" file. 
-[ installed ] - aaa_elflibs-14.0-i486-4 
-[ installed ] - ncurses-5.9-i486-1 
-</code> 
- 
-Si l'on veut en savoir plus sur le contenu d'un paquet : 
- 
-<code> 
-# slackpkg info mesa 
- 
-PACKAGE NAME:  mesa-8.0.4-i486-1.txz 
-PACKAGE LOCATION:  ./slackware/x 
-PACKAGE SIZE (compressed):  19208 K 
-PACKAGE SIZE (uncompressed):  83930 K 
-PACKAGE DESCRIPTION: 
-mesa: mesa (a 3-D graphics library) 
-mesa: 
-mesa: Mesa is a 3-D graphics library with an API very similar to that of 
-mesa: another well-known 3-D graphics library.  :-)  The Mesa libraries are 
-mesa: used by X to provide both software and hardware accelerated graphics. 
-mesa: 
-mesa: Mesa was written by Brian Paul. 
-mesa: 
-</code> 
- 
-=== Faire le ménage === 
- 
-Supprimer tous les paquets tiers qui ne font pas partie de la distribution officielle : 
- 
-<code> 
-# slackpkg clean-system 
-</code> 
- 
-Dans l'écran récapitulatif, il suffit de désélectionner les paquets que l'on souhaite garder. 
- 
-On peut également se servir de ''slackpkg'' pour réparer un paquet endommagé. Admettons que j'aie accidentellement supprimé le fichier ''/usr/bin/glxgears''. Dans un premier temps, il me faut rechercher le paquet qui le contient : 
- 
-<code> 
-# slackpkg file-search glxgears 
-Looking for glxgears in package list. Please wait... DONE 
-The list below shows the packages that contains "glxgears" file. 
-[ installed ] - mesa-8.0.4-i486-1 
-</code> 
- 
-À partir de là, il me suffit de réinstaller le paquet en question : 
- 
-<code> 
-# slackpkg reinstall mesa 
-</code> 
- 
-==== Recompiler des paquets officiels ==== 
- 
-Slackware fournit le code source de l'ensemble du système dans le répertoire ''source''. À chaque paquet du système correspond un répertoire source. Ces répertoires source contiennent généralement : 
- 
-  * le code source de l'application ou de la bibliothèque en question ; 
-  * sa recette de fabrication sous forme de fichier ''*.SlackBuild'' ; 
-  * le descriptif du paquet, nommé ''slack-desc'' ; 
-  * parfois, un fichier post-installation nommé ''doinst.sh'' ; 
-  * d'autres fichiers comme les patches, les entrées de menu, etc. 
- 
-=== Fabriquer un paquet à partir du code source === 
- 
-Dans l'exemple ci-dessous, nous allons compiler l'application ''Terminal'' à partir des sources fournies par Slackware. Au préalable, il faut donc désinstaller le paquet correspondant s'il est installé : 
- 
-<code> 
-# removepkg Terminal 
-</code> 
- 
-Choisir un endroit pour ranger le code source et les scripts, par exemple : 
- 
-<code> 
-# cd 
-# mkdir -pv source/Terminal 
-mkdir: création du répertoire « source » 
-mkdir: création du répertoire « source/Terminal » 
-# cd source/Terminal/ 
-# links mirrors.slackware.com 
-</code> 
- 
-Récupérer le contenu de ''source/xfce/Terminal'' sur un miroir de Slackware. Au total, on a : 
- 
-<code> 
-# ls -lh  
-total 1,4M 
--rw-r--r-- 1 root root  821 nov.  24 15:09 slack-desc 
--rw-r--r-- 1 root root 1,4M nov.  24 15:11 Terminal-0.4.8.tar.xz 
--rw-r--r-- 1 root root 3,6K nov.  24 15:10 Terminal.SlackBuild 
-</code> 
- 
-Rendre le fichier ''Terminal.SlackBuild'' exécutable et lancer la construction du paquet : 
- 
-<code> 
-# chmod +x Terminal.SlackBuild 
-# ./Terminal.SlackBuild 
-</code> 
- 
-Le script lance alors la construction du paquet. L'opération se termine par le message suivant : 
- 
-<code> 
-Slackware package /tmp/Terminal-0.4.8-i486-1.txz created. 
-</code> 
- 
-Il ne reste plus qu'à installer ce paquet : 
- 
-<code> 
-# installpkg /tmp/Terminal-0.4.8-i486-1.txz 
-</code> 
- 
-=== Modifier un paquet officiel === 
- 
-L'intérêt de recompiler un paquet officiel, c'est de pouvoir le modifier, par exemple en ajoutant ou en retirant certaines fonctionnalités. Dans l'exemple suivant, nous allons recompiler le paquet ''audacious-plugins'' pour modifier le lecteur audio Audacious. Celui-ci comporte deux interfaces graphiques au choix, et nous allons en supprimer une. 
- 
-Pour commencer, supprimer le paquet s'il est installé : 
- 
-<code> 
-# removepkg audacious-plugins 
-</code> 
- 
-Ensuite, créer un endroit pour ranger le code source : 
- 
-<code> 
-# cd /root/source 
-# mkdir audacious-plugins 
-# cd audacious-plugins 
-# links mirrors.slackware.com  
-</code> 
- 
-Récupérer le contenu du répertoire ''source/xap/audacious-plugins'' et rendre le script ''audacious-plugins.SlackBuild'' exécutable : 
- 
-<code> 
-# chmod +x audacious-plugins.SlackBuild 
-# ls -lh 
-total 1,4M 
--rw-r--r-- 1 root root 1,4M nov.  24 15:28 audacious-plugins-3.3.1.tar.xz 
--rwxr-xr-x 1 root root 4,0K nov.  24 15:28 audacious-plugins.SlackBuild* 
--rw-r--r-- 1 root root  892 nov.  24 15:28 slack-desc 
-</code> 
- 
-Maintenant, éditer ''audacious-plugins.SlackBuild'' et ajouter une option : 
- 
-<code> 
-... 
-# Configure: 
-CFLAGS="$SLKCFLAGS" \ 
-CXXFLAGS="$SLKCFLAGS" \ 
-./configure \ 
-  --prefix=/usr \ 
-  --libdir=/usr/lib${LIBDIRSUFFIX} \ 
-  --sysconfdir=/etc \ 
-  --mandir=/usr/man \ 
-  --enable-amidiplug \ 
-  --disable-gtkui \          -> ajouter cette option 
-  --program-prefix= \ 
-  --program-suffix= \ 
-  ${ARCHOPTS} \ 
-  --build=$ARCH-slackware-linux 
-... 
-</code> 
- 
-Il ne reste plus qu'à construire et installer le paquet : 
- 
-<code> 
-# ./audacious-plugins.SlackBuild 
-... 
-Slackware package /tmp/audacious-plugins-3.3.1-i486-1.txz created. 
-# installpkg /tmp/audacious-plugins-3.3.1-i486-1.txz 
-</code> 
- 
-=== Choisir les options de compilation === 
- 
-Le script de configuration des sources (plus exactement la ligne à rallonge qui commence par ''./configure'' dans le SlackBuild) affiche souvent un résumé des options activées ou désactivées. Pour interrompre le processus de construction du paquet et afficher ce résumé, on peut temporairement éditer le SlackBuild comme ceci : 
- 
-<code> 
-... 
-# Configure: 
-CFLAGS="$SLKCFLAGS" \ 
-CXXFLAGS="$SLKCFLAGS" \ 
-./configure \ 
-  --prefix=/usr \ 
-  --libdir=/usr/lib${LIBDIRSUFFIX} \ 
-  --sysconfdir=/etc \ 
-  --mandir=/usr/man \ 
-  --enable-amidiplug \ 
-  --program-prefix= \ 
-  --program-suffix= \ 
-  ${ARCHOPTS} \ 
-  --build=$ARCH-slackware-linux 
- 
-exit 1          -> ajouter cette commande pour interrompre le script 
- 
-# Build and install: 
-make $NUMJOBS || make || exit 1 
-make install DESTDIR=$PKG || exit 1 
-...  
-</code> 
- 
-Lancer le script, qui affichera un résumé de la configuration au bout de 
-quelques secondes : 
- 
-<code> 
-# ./audacious-plugins.SlackBuild 
-... 
-Configuration: 
-   
-... 
- 
-Interfaces 
----------- 
-GTK (gtkui):                            yes 
-Winamp Classic (skins):                 yes 
-</code> 
- 
-Les options de configuration sont toutes fournies par le code source lui-même : 
- 
-<code> 
-# tar xvf audacious-plugins-3.3.1.tar.xz 
-# cd audacious-plugins-3.3.1 
-# ./configure --help | less 
-... 
---disable-speedpitch    disable Speed and Pitch effect plugin 
---disable-gtkui         disable GTK interface (gtkui) 
---disable-skins         disable Winamp Classic interface (skins) 
---disable-lyricwiki     disable LyricWiki plugin (default=enabled) 
-... 
-</code> 
- 
-<note tip>Le script se charge déjà de décompresser les sources automatiquement dans ''/tmp''. On peut donc très bien invoquer ''./configure --help | less'' à partir de ce répertoire, sans décompresser les sources dans le répertoire courant.</note> 
- 
-<note>L'activation de certaines fonctionnalités comme par exemple la gestion de certains formats audio propriétaires dépend de la présence de certaines bibliothèques sur le système.</note> 
- 
-Une fois qu'on a choisi toutes les options de configuration, il ne reste plus qu'à supprimer la commande ''exit 1'' du script et lancer la compilation et l'installation : 
- 
-<code> 
-# ./audacious-plugins.SlackBuild 
-... 
-Slackware package /tmp/audacious-plugins-3.3.1-i486-1.txz created. 
-# installpkg /tmp/audacious-plugins-3.3.1-i486-1.txz 
-</code> 
- 
-==== Compiler des paquets tiers ==== 
- 
-Comparé à des distributions comme Ubuntu ou Debian, Slackware n'offre qu'un choix de paquets relativement limité. On en arrivera très vite au point de vouloir installer une application ou une bibliothèque qui n'est pas fournie par la distribution. Dans ce cas, que faire ? 
- 
-Le portail SlackBuilds.org (http://slackbuilds.org) sera sans doute la meilleure adresse pour trouver des paquets tiers. Attention, SlackBuilds.org n'est //pas// un dépôt de paquets binaires. Il s'agit plutôt d'une collection extrêmement bien fournie de scripts de compilation dûment soignés et testés, qui vous permettent de compiler à peu près n'importe quel paquet Slackware en un tournemain.  
- 
-   
-=== Compiler des paquets à partir des scripts de SlackBuilds.org === 
- 
-Dans l'exemple, nous allons compiler et installer le paquet ''cowsay'' à partir des scripts fournis par SlackBuilds.org.  
- 
-Aller dans l'environnement de construction de paquets que nous avons défini plus haut : 
- 
-<code> 
-# cd /root/source 
-</code> 
- 
-À partir de là, télécharger : 
- 
-  - l'archive compressée contenant les scripts pour construire le paquet ; 
-  - l'archive compressée contenant le code source du paquet.  
- 
-Concrètement : 
- 
-<code> 
-# links http://slackbuilds.org 
-</code> 
- 
-  - Dans le champ de recherche en haut à gauche, taper ''cowsay'', placer le curseur sur ''Search'' et confirmer par <key>Entrée</key>. 
-  - Dans la page des résultats de la recherche, suivre le lien ''cowsay''. 
-  - Sur la page de ''cowsay'', télécharger le SlackBuild (''cowsay.tar.gz'') et le code source (''cowsay-3.03.tar.gz'') et quitter Links. 
- 
-<note tip>Alternativement, vous pouvez utiliser ''lynx'' au lieu de ''links''.</note> 
- 
-Voici nos deux archives téléchargées : 
- 
-<code> 
-# ls -l cowsay* 
--rw-r--r-- 1 root root 15136 nov.  25 08:14 cowsay-3.03.tar.gz 
--rw-r--r-- 1 root root  2855 nov.  25 08:14 cowsay.tar.gz 
-</code> 
- 
-Décompresser l'archive contenant les scripts : 
- 
-<code> 
-# tar xvzf cowsay.tar.gz  
-cowsay/ 
-cowsay/cowsay.SlackBuild.patch 
-cowsay/README 
-cowsay/slack-desc 
-cowsay/cowsay.SlackBuild 
-cowsay/cowsay.info 
-</code> 
- 
-À la limite, on peut faire un peu de ménage et supprimer l'archive qui ne sert plus à rien : 
- 
-<code> 
-# rm -f cowsay.tar.gz 
-</code> 
- 
-Puis, déplacer le code source dans le répertoire nouvellement créé : 
- 
-<code> 
-# mv -v cowsay-3.03.tar.gz cowsay/ 
-« cowsay-3.03.tar.gz » -> « cowsay/cowsay-3.03.tar.gz » 
-</code> 
- 
-Voici ce que l'on doit avoir : 
- 
-<code> 
-# tree cowsay 
-cowsay 
-|-- cowsay-3.03.tar.gz 
-|-- cowsay.info 
-|-- cowsay.SlackBuild 
-|-- cowsay.SlackBuild.patch 
-|-- README 
-`-- slack-desc 
-</code> 
- 
-Changer dans le répertoire, vérifier éventuellement si le script ''cowsay.SlackBuild'' est bien exécutable, puis exécuter ce script pour lancer la construction du paquet : 
- 
-<code> 
-# cd cowsay/ 
-# ls -l cowsay.SlackBuild 
--rwxr-xr-x 1 kikinovak users 1475 mai   27  2010 cowsay.SlackBuild* 
-# ./cowsay.SlackBuild 
-... 
-</code> 
- 
-Là encore, si tout se passe bien, l'opération produit un paquet dans ''/tmp'', et plus exactement dans le répertoire ''$OUTPUT'' défini par le script : 
- 
-<code> 
-... 
-Slackware package /tmp/cowsay-3.03-noarch-1_SBo.tgz created. 
-</code> 
- 
-Il ne reste qu'à installer ce paquet avec ''installpkg'' : 
- 
-<code> 
-# installpkg /tmp/cowsay-3.03-noarch-1_SBo.tgz  
-# cowsay Et voilà !  
- ------------- 
-< Et voilà ! > 
- -------------  
-        \   ^__^ 
-          (oo)\_______ 
-            (__)\       )\/\ 
-                ||----w | 
-                ||     || 
-</code> 
- 
-=== Gérer les dépendances de paquets === 
- 
-Certains paquets nécessitent la présence d'autres paquets sur le système pour compiler (//build dependencies//) et/ou fonctionner (//runtime dependencies//) correctement. Dans certains cas, un paquet requis peut lui-même dépendre d'autres paquets, et ainsi de suite.  
- 
-À titre d'exemple, jetons un oeil sur la page de ''libgnomeprint'' de SlackBuilds.org. La description du paquet est suivie d'un avertissement : 
- 
-<code> 
-This requires: libgnomecups. 
-</code> 
- 
-Chaque collection de scripts contient par ailleurs un fichier ''*.info'' qui explicite le ou les paquets requis. Jetons un oeil sur le fichier ''libgnomeprint.info'', et nous y trouvons un champ ''REQUIRES'' : 
- 
-<code> 
-PRGNAM="libgnomeprint" 
-VERSION="2.18.8" 
-HOMEPAGE="http://www.gnome.org" 
-... 
-REQUIRES="libgnomecups" ----> dépendances du paquet 
-... 
-</code> 
- 
-<note>Le champ ''REQUIRES'' a été introduit depuis Slackware 14.0.</note> 
- 
-Cela signifie tout simplement qu'avant de construire le paquet ''libgnomeprint'', nous devons impérativement construire et installer le paquet ''libgnomecups''. 
- 
-En dehors des dépendances requises, un paquet peut également présenter des dépendances optionnelles, qui ajoutent certaines fonctionnalités. L'éditeur Leafpad, par exemple, peut être construit avec les dépendances optionnelles ''libgnomeprint'' et ''libgnomeprintui''. 
  
 ==== Gérer les paquets tiers confortablement avec sbopkg ==== ==== Gérer les paquets tiers confortablement avec sbopkg ====
 wiki:user:kikinovak ()