Accueil

La gestion des packages .tgz

Par Serge.

Ce document est sous licence Licence pour Documents Libres de la guilde des doctorants.

Sommaire

Introduction

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.

Les outils de bases

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.

L'utilitaire pkgtool

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.

Écran pkgtool

Essayez d'utiliser au maximum cet outil quand vous souhaitez supprimer ou ajouter un package proprement à votre systême.

L'utilitaire installpkg

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.

L'utilitaire removepkg

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/.

L'utilitaire upgradepkg

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.

L'utilitaire makepkg

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.

Outil supplémentaire: Swaret

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.

Configuration de swaret

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:

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.

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".

swaret est maintenant configuré, voyons son utilisation.

Utilisation de swaret

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:

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.

Faire son propre package

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.

Utiliser checkinstall

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?

Utiliser makepkg

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.