Par Serge.
Ce document est sous licence Licence pour Documents Libres de la guilde des doctorants.
Chaque distribution à son propre système de package, la Slackware utilise le système de package .tgz. Ne vous trompez pas, les .tgz sont bel et bien des packages et non pas un tarball (càd une simple archive). Nous allons voir les outils que nous avons à notre disposition pour la gestion de ces packages.
Utilisez autant que possible les packages pour votre distribution pour pouvoir la maintenir facilement. Si vous devez obligatoirement compiler un programme à partir des sources parce que vous ne trouvez pas de package déjà créé, alors créez vous même le package. C'est assez simple et votre installation restera simple à maintenir.
Lisez l'article Slackware: Post Installation qui explique déjà un minimum sur les packages.
Différents outils sont livré de base avec la Slackware pour la gestion des packages. Bien que simpliste, ils permettent quand même de gérer correctement les packages. Nous allons les passer en revu.
Cet utilitaire complet vous permet de gérer tout les packages déjà installer d'en installer d'autres et même de reconfigurer votre systême.
Essayez d'utiliser au maximum cet outil quand vous souhaitez supprimer ou ajouter un package proprement à votre systême.
Cet utilitaire comme son nom l'indique permet d'installer directement un package en lui passant le nom complet du package. Par exemple: installpkg /var/update/apache-1.3.31-i486-1.tgz
installera le package apache-1.3.31-i486-1.tgz.
Cet utilitaire lui permet d'enlever un package déjà installé sur le systême. Par exemple: removepkg gimp-1.2.5-i486-1
Pour voir la liste des packets déjà installés, vous utilisez soit pkgtool décris plus haut, soit vous listez le contenu du répertoire /var/log/packages/
.
Cet utilitaire sert à mettre à jour des packages. En fait il installe le package que vous lui donnez en argument si et seulement si une version précédente du programme ou du package existe, autrement il n'installe pas le package. En réalité il n'installe pas simplement le nouveau package, mais dans un premier temps supprime l'ancien package avant d'installer le nouveau.
Utilisez toujours cet utilitaire quand vous mettez à jour des programmes de votre distribution.
Cet utilitaire permet de fabriquer ses propres packages à partir de source que l'on vient de compiler. Vois la rubrique dédié à la création des packages ci dessous.
Swaret est surement l'outils qu'il manquait pour une gestion automatisé de mise à jour de la slackware. Malheureusement cet outil n'est pas installé par défaut dans la slackware et vous devez donc aller le récupérer sur http://www.swaret.org/.
Récupérer le package de la derniére version stable et installez le via installpkg.
Une fois le swaret installé, nous devonsle configurer. La premiére chose à faire est de copier le fichier exemple de configuration que nous allons configurer:
cp /etc/swaret.conf.new /etc/swaret.conf
et editons /etc/swaret.conf
:
Voici les lignes que vous devez modifier afin de configurer correctement swaret:
VERSION=
: Version de la slackware que vous utilisez ou version dans laquelle vous voulez que swaret installe pour vous. Par exemple 9.1
si vous avez une Slackware 9.1 et que vous voulez la garder à jour, ou 10.0
si vous voulez passer d'une 9.1 à une 10.0 automatiquement ou si vous voulez garder une 10.0 à jour. Si vous voulez tester la version en cours de developpement (qui sera la prochaine version offcielle), mettez alors CURRENT
comme version.LANGUAGE=
: Mettez ici FRANCAIS
pour avoir swaret en Français.ROOT=
: C'est la liste des serveurs auquel swaret va se connecter pour faire les mises à jour du systéme. Pour les francais je vous conseille d'ajouter en 1er dans la liste ROOT=ftp://ftp.kpn.be/pub/slackware/slackware-$VERSION
afin d'avoir un serveur rapide.REPOS_ROOT=
: Liste de serveur Repository pour des packages supplémentaires aux packages offciels.Attention: Si vous utilisez un repository, faite bien attention que ce dernier fournit des packages pour la version de votre slackware, et qu'il est conforme à swaret en disposant des fichiers CHECKSUMS.md5, FILELIST.TXT, PACKAGES.TXT et MANIFEST.bz2 afin de gérer correctement les dépendances. Utilisez les repository référencé par swaret sur la page http://www.swaret.org/?menu=sp.
DEP_ROOT=
: Serveur de dépendance pour gérer les dépendances entre package. Laissez ceux par défauts.RANDOMR=
: Si on utilise un serveur "au hasard" ou pas. Laissez à 0 pour utilisez le premier serveur de la liste que nous avons ajouté.USEPKGDESC=
: Utilise la description du package, tres utile pour installer un package avec des mots clefs si on ne connait pas son nom exact. Mettez un 1 içi.EXCLUDE=
: Liste des packages que l'on ne veut pas mettre à jour car ils risqueraient de déconfigurer notre systême. Laissez les lignes présentes, sauf si vous savez exactement ce que vous faites.DEPENDENCY=
: Indique si l'on utilise les dépendances ou pas, mettez 1 ici.DSEARCHLIB=
: Indique si vous souhaitez la gestion de recherche de librairie dépendante. Mettez 1 ici.DSEARCHM=
: Indique si l'on utilise slocate pour chercher les librairies dépendantes ou si l'on utilise find. Mettez 1 pour slocate et 0 pour find.Attention: Par défaut sur la slackware, la base de donnée de slocate est généré tout les jours à 04h40 du matin. Si votre ordinateur est arrété à cette là, la base ne sera jamais mise à jour et donc inutilisable par swaret. Donc soit vous utilisez find à la place, soit vous modifiez la crontab de root pour modifier l'heure de lancement du "daily cron job".
MD5CHECK=
: Indique si vous souhaitez vérifier l'intégrité des packages via le contôle MD5, mettez 1 ici.GPGCHECK=
: Indique si vous souhaitez vérifier l'intégrité des packages via le controle de signature GPG, laissez 0 ou 1 si vous savez gérer les signatures GPG avec les clefs publiques.DESC=
: Affiche ou non la description des packages lors qu'un installation, mise à jour ou ré-installation.CACHE_DIR=
: Chemin du réperoire cache de swaret. Attention à ce que la partition posséde pas mal s'espace libre, surtout lors d'une mise à jour compléte de la Slackware.LOG=
: Indique si les opération sont logguées ou pas, laissez à 1.LOG_FILE=
: Nom complet du fichier de log.WARNINGS=
: Affiche ou pas les avertissements, laissez à1 est uen bonne idée.INFORMATION=
: Affiche ou pas les informations.NIC=
: Vous indiquez ici par quelle carte réseau vous êtes connecté au net.PROGRESS=
: Style d'affichage de la progression des téléchargements, 0 pour des %, 1 pour la taille, 2 pour une barre de progression.TIMEOUT=
: Temps en seconde avant d'abondonner une connexion à un serveur qui ne répond pas.RETRIES=
: Nombre de tentatives de connexion avant d'abondonner.PASSIVE_FTP=
: Mettez 1 si votre connexion internet est partagé ou protégé par un firewall.WGET_PROXY=
: Mettez içi l'adresse du proxy si vous en utilisez un pour vos connexions HTTP/FTP (vous en utilisez surement pas, laissez le # devant).RSYNC_PROXY=
Mettez içi l'adresse du proxy si vous en utilisez un pour vos connexions RSYNC (vous en utilisez surement pas, laissez le # devant)swaret est maintenant configuré, voyons son utilisation.
A chaque utilisation de swaret, vous devez au préalable lui demander de vérifier sa base de donnée locale, de vérifier si de nouveaux packages sont disponible. Pour cela, utilisez la commande:
swaret --update
Une fois la base de swaret mise à jour vous pouvez utiliser swaret.Voici les commande les plus utiles:
--upgrade
pour mettre à jour tous les packages installés. Si vous voulez mettre à jour seulement un package spécifique, passez son nom en argument.--install PACKAGE -a
pour installer le package PACKAGE automatiquement.--reinstall PACKAGE -a
identique mais pour ré-installer un package déjà installé.--remove PACKAGE -a
identique mais pour désinstaller.--get MOT_CLEF
télécharge dans le répertoire de cache les packages dont MOT_CLEF est dans la description.--dep
vérifie les dépendances.--resume
reprend les téléchargements intérompus.--puge
purge le répertoire de cache, à faire à chaque fin d'utilisation de swaret.--check
vérifie si une nouvelle version de swaret existe.D'autres commandes existent, si vous souhaitez plus de détails lisez le how to use et la FAQ sur le site de swaret: http://www.swaret.org.
Quand vous ne trouvez pas le package du logciel que vous voulez installer, il reste une solution: récupérer les sources de ce dernier, faire son propre package et l'installer. Il existe deux méthodes pour faire cela: la methode automatique via un utilitaire comme checkinstall ou la méthode manuelle avec makepkg.
Pour utiliser checkinstall il n'y a rien de plsu simple. Tout d'abord il faut installer checkinstall lui même (vous trouverez son package sur linuxpackages). Quand vous souhaitez alors installer un programme via ses sources, configurez sa compilation avec le ./configure
des sources, puis lancez le make
. Puis au lieu de lancer le make install
vous appelez checkinstall
. Ce dernier va alors créér pour vous le package et va l'installer. Simple non?
La méthode est assez simple, il suffit de configurer normalement les sources via le ./configure
des sources, de les compiler avec le make
. Après au lieu de lancer le make install
, nous allons créer un répertoire temporaire pour stocker les fichier binaires du packages, par exemple /pkgtmp. Nous installons alors les binaires dans ce répertoire via un make install DESTDIR=/pkgtmp
ou make install ROOT=/pkgtmp
ou encore make install prefix=/pkgtmp
. Cela dépend du Makefile de l'application, à vous de vérifier avant donc.
Si vous souhaitez que lorsque vous installerez ce package un script shell soit exécuté automatiquement (par exemple copie de fichiers, création de fichier supplémentaire ou tout autre choses qu'un script shell peu faire), créez alors un répertoire install/
dans le répertoire temporaire (/pkgtmp
dans notre exemple) et placez y dedans votre script shell en faisant bien attention de l’appeler doinst.sh
.
Enfin pour créer le package, à la racine du répertoire temporaire, /pkgtmp
dans notre exemple, et entrer la commande: makepkg nom_package.tgz
Thèmes : #administration #articles #dependances #logiciels #makepkg #paquets #pkgtool #serge
Sauf indication contraire, ce document est placé sous licence CC-BY-SA 3.0.