[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
Next revisionBoth sides next revision
wiki:user:kikinovak [2013/03/09 06:16 (UTC)] kikinovakwiki:user:kikinovak [2014/02/09 15:21 (UTC)] 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 structure of files and directories ; 
-  * post-installation scripts ; 
-  * the package description. 
  
-The name of every package provides a series of informations:+=== Know more about the contents of package ===
  
-  * the program name ; +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:
-  * 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'' +
- +
-==== Manage Slackware package 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: +
- +
-  * ''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/+
-# 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 install has created an entry in ''/var/log/packages''+
- +
-<code> +
-# ls /var/log/packages/em* +
-/var/log/packages/emacs-24.2-i486-1 +
-</code> +
- +
-Knowing if package is installed boils down to checking if the corresponding entry in ''/var/log/packages'' existsExample : +
- +
-<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* +
-/bin/ls: impossible d'accéder à /var/log/packages/kdebase*: Aucun fichier ou +
-dossier de ce type +
-</code> +
- +
-There is no package ''kdebase-*'' whatsoever installed on the system. +
- +
-=== Removing a package === +
- +
-Une ''removepkg'' to remove an installed package. The command can take the mere name 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 fournit des mises à jour de sécurité des paquets pour chaque version. Pour se renseigner sur les dernières actualités autour des mises à jour, visiter le site officiel : +
- +
-<code>   +
-# links http://www.slackware.com +
-</code> +
- +
-  - Suivre le lien ''ChangeLogs''+
-  - Repérer ''Slackware-stable ChangeLog''+
-  - Lire le fichier ''ChangeLog.txt'' correspondant à l'architecture du système. +
- +
-On pourra également utiliser le navigateur Links pour récupérer les mises à jour manuellement. Avant de lancer Links, créer un répertoire ''/root/updates'' dans lequel on rangera les mises à jour : +
- +
-<code> +
-# cd +
-# mkdir updates +
-# cd updates/ +
-# links mirrors.slackware.com +
-</code> +
- +
-  - Suivre le lien ''Slackware File Tree''+
-  - Repérer le répertoire correspondant à la version et à l'architecture du système. +
-  - Aller dans le répertoire ''patches/packages''+
-  - Télécharger les mises à jour disponibles. +
-   +
-Quitter Links et installer les mises à jour comme ceci : +
- +
-<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> +
- +
-Autre exemple : +
- +
-<code> +
-# upgradepkg iptables-1.4.14-i486-2_slack14.0.txz +
-</code> +
- +
-=== En savoir plus sur le contenu d'un paquet === +
- +
-À chaque paquet installé correspond une entrée dans ''/var/log/packages''. Il s'agit de simples fichiers texte qui nous renseignent sur le contenu d'un paquet. Par exemple :+
  
 <code> <code>
Line 250: Line 89:
 </code> </code>
  
-==== Gérer les paquets Slackware avec slackpkg ====+==== 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+The ''slackpkg'' utility has been officially included in Slackware since the 13.0 releaseIt enables the user to manage Slackware packages much more comfortably.
  
-Deux mises en garde s'imposent :+A few remarks:
  
-  - Seuls les paquets officiels sont gérés par ''slackpkg''+  - Only official Slackware packages are handled by ''slackpkg''
-  - La gestion des dépendances reste toujours à la charge de l'administrateur.+  - Third-party packages can be managed if you use Matteo Rossini's ''slackpkg+'' plugin. 
 +  - Dependencies still have to be managed manually.
  
 +=== Initial configuration ===
  
-=== Configuration initiale === +Edit ''/etc/slackpkg/mirrors'' and comment out //one and only one// package source, for example:
- +
-Éditer ''/etc/slackpkg/mirrors'' et décommenter //une seule// source de paquets au choixpar exemple :+
  
 <code> <code>
Line 272: Line 111:
 </code> </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>+<note warning>If you are using a stable release of Slackware, don't get the section wrong and uncomment a mirror from ''Slackware-current''. If you do thatyou will upgrade to a development version of Slackware!</note>
  
-Si l'on préfère gérer les paquets localement et faire fi des mises à jouron peut également utiliser le DVD d'installation comme source de paquetsDans ce cason modifiera le point de montage défini par défaut :+If you prefer managing packages locally without the benefit of updatesyou can still use the Slackware installation DVD as a package source. In that caseyou will have to configure the default mount point:
  
 <code> <code>
Line 286: Line 125:
 </code> </code>
  
-Ne pas oublier de monter le DVD avant chaque invocation de ''slackpkg'' :+Don't forget to mount the DVD before calling ''slackpkg'':
  
 <code> <code>
Line 292: Line 131:
 </code> </code>
  
-Mettre à jour les informations sur les paquets disponibles :+Update the information on available packages:
  
 <code> <code>
Line 298: Line 137:
 </code> </code>
  
-<note>Notez bien que cette commande n'installe pas de mises à jour de paquetsElle synchronise seulement les informations sur ce que l'on //peut// installer.</note> +<note>Note that the above command does not install any package updatesIt only updates the internal list of packages you //can// install.</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>+<note tip>It's always a good idea to invoke ''slackpkg update'' before searching, installing or updating a package, so the system's informations about available packages are up to date.</note>
  
 +=== Installing packages ===
  
-=== Installer des paquets === +Example with a single package:
- +
-Exemple avec un seul paquet :+
  
 <code> <code>
Line 311: Line 149:
 </code> </code>
  
-Il suffit de confirmer l'installation dans l'écran subséquentet le paquet est directement récupéré et installé.+Confirm the installation in the subsequent screenand the package is automatically downloaded and installed.
  
-On peut également fournir plusieurs paquets en argument :+You can also provide several packages as an argument:
  
 <code> <code>
Line 319: Line 157:
 </code> </code>
  
-Les groupes de paquets sont également gérés :+You can also manage whole package groups:
  
 <code> <code>
Line 325: Line 163:
 </code> </code>
  
-Ou encore :+Another example for package groups:
  
 <code> <code>
Line 331: Line 169:
 </code> </code>
  
-=== Supprimer des paquets ===+=== Remove packages ===
  
-Exemple avec un seul paquet :+Example with a single package:
  
 <code> <code>
Line 339: Line 177:
 </code> </code>
  
-Là aussiil suffit de confirmer la suppression dans l'écran récapitulatif.+As aboveconfirm the removal of the package in the subsequent screen.
  
-Supprimer plusieurs paquets à la fois :+Remove several packages at once:
  
 <code> <code>
Line 347: Line 185:
 </code> </code>
  
-Les groupes de paquets sont également gérés pour la suppression :+Likewise, you can remove a whole package group:
  
 <code> <code>
Line 353: Line 191:
 </code> </code>
  
-Ou encore :+Or:
  
 <code> <code>
Line 359: Line 197:
 </code> </code>
  
-=== Mettre à jour des paquets ===+=== Upgrading packages ===
  
-Lorsqu'une mise à jour est disponible pour un paqueton peut l'installer comme +When a package update is availableyou can install it using the following command:
-ceci :+
  
 <code> <code>
Line 368: Line 205:
 </code> </code>
  
-De même pour plusieurs paquets :+Update several packages at once:
  
 <code> <code>
Line 374: Line 211:
 </code> </code>
  
-Dans la pratique quotidienne, on mettra à jour l'intégralité du système :+It is common practice to keep your whole system up to date:
  
 <code> <code>
Line 380: Line 217:
 </code> </code>
  
-=== Rechercher des paquets ou des fichiers individuels ===+=== Search for specific packages or files ===
  
-Rechercher un paquet spécifique :+Search for a specific package:
  
 <code> <code>
Line 391: Line 228:
 </code> </code>
  
-Si le paquet est déjà installéon obtiendra le résultat suivant :+If the package is already installedhere's what you get:
  
 <code> <code>
Line 400: Line 237:
 </code> </code>
  
-On peut également chercher des fichiers individuels, ce qui affichera le cas échéant le ou les paquets contenant le fichier en question :+You can also search for individual files. The search will eventually display on or several packages containing the file in question:
  
 <code> <code>
Line 410: Line 247:
 </code> </code>
  
-Si l'on veut en savoir plus sur le contenu d'un paquet :+If you want to know more about the content of a package:
  
 <code> <code>
Line 430: Line 267:
 </code> </code>
  
-=== Faire le ménage ===+=== Cleaning the system ===
  
-Supprimer tous les paquets tiers qui ne font pas partie de la distribution officielle :+Remove all third-party packages:
  
 <code> <code>
Line 438: Line 275:
 </code> </code>
  
-Dans l'écran récapitulatifil suffit de désélectionner les paquets que l'on souhaite garder.+If you decide to keep some of the packagessimply unselect them in the subsequent screen.
  
-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 tempsil me faut rechercher le paquet qui le contient :+You can also use ''slackpkg'' to repair a damaged packageLet's say I accidentally deleted the file ''/usr/bin/glxgears''FirstI have to search for the package providing that file:
  
 <code> <code>
Line 449: Line 286:
 </code> </code>
  
-À partir de làil me suffit de réinstaller le paquet en question :+With this informationI can simply reinstall the package:
  
 <code> <code>
Line 455: Line 292:
 </code> </code>
  
-==== Recompiler des paquets officiels ====+==== Rebuild official packages ==== 
 + 
 +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 fournit le code source de l'ensemble du système dans le répertoire ''source''À chaque paquet du système correspond un répertoire sourceCes répertoires source contiennent généralement :+  * the source code for the application or the library; 
 +  * its fabrication recipe in the shape of a ''*.SlackBuild'' file; 
 +  * the package description in a ''slack-desc'' file; 
 +  * eventually, a post-installation script named ''doinst.sh''; 
 +  * various other files like patches, custom menu entries, etc.
  
-  * le code source de l'application ou de la bibliothèque en question ; +=== Build a package from source ===
-  * 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 ===+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.
  
-Dans l'exemple ci-dessous, nous allons compiler l'application ''Terminal'' à partir des sources fournies par Slackware. Au préalableil faut donc désinstaller le paquet correspondant s'il est installé :+<note warning>The ''Terminal'' package is Xfce's terminal. In Slackware 14.1the package has been renamed to ''xfce4-terminal''.</note>
  
 <code> <code>
Line 473: Line 312:
 </code> </code>
  
-Choisir un endroit pour ranger le code source et les scripts, par exemple :+Choose an appropriate place on your system to store the source code and the scripts, for example:
  
 <code> <code>
 # cd # cd
 # mkdir -pv source/Terminal # mkdir -pv source/Terminal
-mkdir: création du répertoire « source » +mkdir: created directory 'source' 
-mkdir: création du répertoire « source/Terminal »+mkdir: created directory 'source/Terminal'
 # cd source/Terminal/ # cd source/Terminal/
 # links mirrors.slackware.com # links mirrors.slackware.com
 </code> </code>
  
-Récupérer le contenu de ''source/xfce/Terminal'' sur un miroir de Slackware. Au total, on a :+Fetch the content from the ''source/xfce/Terminal'' directory on a Slackware mirror. Here's what we get:
  
 <code> <code>
Line 494: Line 333:
 </code> </code>
  
-Rendre le fichier ''Terminal.SlackBuild'' exécutable et lancer la construction du paquet :+Make the ''Terminal.SlackBuild'' file executable and start the building process:
  
 <code> <code>
Line 501: Line 340:
 </code> </code>
  
-Le script lance alors la construction du paquetL'opération se termine par le message suivant :+The script initiates the package compilationIf everything goes as expected, the operation exits with the following message:
  
 <code> <code>
Line 507: Line 346:
 </code> </code>
  
-Il ne reste plus qu'à installer ce paquet :+Now we can install the resulting package:
  
 <code> <code>
Line 878: Line 717:
   * ibid., Installing Programs from Source Code, 55-57   * ibid., Installing Programs from Source Code, 55-57
  
-***********************************************************+-----
  
 ===== Gestion des paquets logiciels ===== ===== Gestion des paquets logiciels =====
 wiki:user:kikinovak ()