« Les paquets Slackware » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 2 : | Ligne 2 : | ||
[[Catégorie:Slackware]] | [[Catégorie:Slackware]] | ||
= Les | = Les paquets Slackware = | ||
par [mailto:gedsismik@free.fr GEDsismik] | |||
Où comment gérer ses txz... | |||
---- | ---- | ||
Chaque distribution a ses spécificités. Parmi celles-ci se retrouve le système de | Chaque distribution a ses spécificités. Parmi celles-ci se retrouve le système de paquet. Les paquets Slackware sont des fichiers .txz (.tgz jusque Slackware 12.2), c'est-à-dire compressés comme un .tar.xz. Ils contiennent, le plus souvent, les binaires du logiciel avec ses fichiers de configuration plus un répertoire <code>install</code> pouvant contenir la description du paquet et le script à exécuter après l'installation. L'une des particularités du txz Slackware, c'est qu'il ne prend pas en compte les dépendances avec les autres paquets. Dans cet article, nous allons vous présenter les outils Slackware de gestion de paquet ainsi que Swaret, outils d'installation/mise à jour à la urpm / apt-get. | ||
== Pkgtools, quoi qu'est-ce ? == | == Pkgtools, quoi qu'est-ce ? == | ||
Pkgtools est un | Pkgtools est un paquet contenant des outils destinés à la gestion des paquets Slackware. Ces outils sont tous des scripts bash jouant un rôle précis. | ||
== Installation, suppression de | == Installation, suppression de paquet == | ||
=== installpkg === | === installpkg === | ||
installpkg installe un | installpkg installe un paquet. La syntaxe est la suivante : <code>installpkg <''nomdupaquet.txz''></code>. Pour information, installpkg stocke la liste des paquets installés ainsi que la description des paquets dans /var/log/packages/. | ||
=== removepkg === | === removepkg === | ||
removepkg désinstalle un | removepkg désinstalle un paquet. La syntaxe est la suivante : <code>removepkg <''nomdupaquet''></code>. Si vous n'êtes pas sûr de la syntaxe complète, essayez <code>ls /var/log/packages/</code>. Pour information, removepkg stocke la liste des paquets désinstallés dans /var/log/removed_packages/. | ||
=== upgradepkg === | === upgradepkg === | ||
upgradepkg met à jour un | upgradepkg met à jour un paquet installé. La syntaxe est la suivante : <code>upgradepkg <''nomdupaquet.txz''></code>. Pour information, upgradepkg stocke la liste des paquets mis-à-jour avec celle des paquets installés dans /var/log/packages/. | ||
=== pkgtool === | === pkgtool === | ||
pkgtool est une interface "semi-graphique" en ncurse permettant la gestion des | pkgtool est une interface "semi-graphique" en ncurse permettant la gestion des paquets. Il utilise installpkg, removepkg et upgradepkg. | ||
== Création d'un | == Création d'un paquet == | ||
La gestion des | La gestion des paquets est très intéressante (même si la gestion des dépendances n'existe pas avec pkgtools) mais il n'existe pas toujours de paquet Slackware pour toutes les applications. La compilation s'avère donc nécessaire. Le mieux dans ce cas est de faire son propre paquet. Une éventuelle désinstallation sera ainsi plus simple et plus propre. | ||
=== Configure === | === Configure === | ||
La "technique" de compilation, la plus simple est le classique "configure"-"make"-"make install". Seulement, voilà, on va faire plus complet. Commencez par créer un répertoire qui devra contenir les fichiers compilés (souvent, je prends le répertoire dans lequel j'ai décompressé le logiciel à compiler + / | La "technique" de compilation, la plus simple est le classique "configure"-"make"-"make install". Seulement, voilà, on va faire plus complet. Commencez par créer un répertoire qui devra contenir les fichiers compilés (souvent, je prends le répertoire dans lequel j'ai décompressé le logiciel à compiler + /txz). Dans ce répertoire, créez ./usr/local (pour que le paquet s'installe dans /usr/local, mettez ./usr pour qu'il s'installe dans /usr). Exemple : | ||
<div class="code"> bash-2.05b$ pwd<br /> /download/compil/bchunk-1.1.1<br /> bash-2.05b$ mkdir | <div class="code"> bash-2.05b$ pwd<br /> /download/compil/bchunk-1.1.1<br /> bash-2.05b$ mkdir txz<br /> bash-2.05b$ ls<br /> bchunk bchunk-1.1.1.lsm bchunk.spec COPYING README<br /> bchunk.1 bchunk.c ChangeLog Makefile txz<br /> bash-2.05b$<br /> </div> | ||
Ensuite, il faut faire un configure avec toutes vos options classiques : Exemple : | Ensuite, il faut faire un configure avec toutes vos options classiques : Exemple : | ||
<div class="code"> bash-2.05b$ ./configure --prefix=/usr/local<br /> checking for a BSD-compatible install... /usr/bin/ginstall -c<br /> checking whether build environment is sane... yes<br /> checking for gawk... gawk<br /> checking whether make sets $(MAKE)... yes<br /> checking for sed... /usr/bin/sed<br /> checking for gcc... gcc<br /> checking for C compiler default output... a.out<br /> checking whether the C compiler works... yes<br /> </div><div class="aparte">'''Note :''' ici, on utilise <code>./configure --prefix=/usr/local</code> pour être sur que le | <div class="code"> bash-2.05b$ ./configure --prefix=/usr/local<br /> checking for a BSD-compatible install... /usr/bin/ginstall -c<br /> checking whether build environment is sane... yes<br /> checking for gawk... gawk<br /> checking whether make sets $(MAKE)... yes<br /> checking for sed... /usr/bin/sed<br /> checking for gcc... gcc<br /> checking for C compiler default output... a.out<br /> checking whether the C compiler works... yes<br /> </div><div class="aparte">'''Note :''' ici, on utilise <code>./configure --prefix=/usr/local</code> pour être sur que le paquet s'installera dans /usr/local plutôt qu'ailleurs. </div> | ||
=== Compilation === | === Compilation === | ||
Ensuite, nous allons compiler et installer le logiciel dans le répertoire choisi. Vous pouvez donc faire <code>make</code> . <code>make install DESTDIR=/download/compil/bchunk-1.1.1/ | Ensuite, nous allons compiler et installer le logiciel dans le répertoire choisi. Vous pouvez donc faire <code>make</code> . <code>make install DESTDIR=/download/compil/bchunk-1.1.1/txz</code> permet d'installer le programme dans le repertoire que l'on veut (en utilisateurs, pas besoin d'être root : il n'est pas utilisé de répertoire interdit en écriture). | ||
<div class="aparte">'''Note :''' Certains Makefile n'utilise pas DESTDIR comme variable. Il faut parfois lire le INSTALL ou éditer le fichier Makefile pour connaitre la syntaxe exacte. A titre indicatif, une alternative courante prend la forme de <code>make install prefix=/download/compil/bchunk-1.1.1/ | <div class="aparte">'''Note :''' Certains Makefile n'utilise pas DESTDIR comme variable. Il faut parfois lire le INSTALL ou éditer le fichier Makefile pour connaitre la syntaxe exacte. A titre indicatif, une alternative courante prend la forme de <code>make install prefix=/download/compil/bchunk-1.1.1/txz/usr/local</code>. </div> | ||
=== Peaufinage === | === Peaufinage === | ||
Ce paragraphe n'est pas obligatoire mais préférable. Il est intéressant de compresser les pages de man (<code> gzip -9 /download/compil/bchunk-1.1.1/ | Ce paragraphe n'est pas obligatoire mais préférable. Il est intéressant de compresser les pages de man (<code> gzip -9 /download/compil/bchunk-1.1.1/txz/usr/man/man?/*</code> et <code>gzip -9 /download/compil/bchunk-1.1.1/txz/usr/local/man/man?/*</code>) et d'ajouter des pages infos ou des howtos à cette étape de la création. Autre commande à noter : <code>chown -R root.bin /download/compil/bchunk-1.1.1/txz/*</code> pour mettre les fichiers crés du groupe bin (afin de respecter les pratiques habituelles des paquets Slackware). | ||
=== Création du | === Création du txz === | ||
Passez ensuite dans le répertoire préfixe (moins /usr/local) et passez en root (makepkg n'est utilisable qu'en root). Tapez ensuite <code>makepkg <'' | Passez ensuite dans le répertoire préfixe (moins /usr/local) et passez en root (makepkg n'est utilisable qu'en root). Tapez ensuite <code>makepkg <''nomdupaquet.txz''></code>. Exemple : | ||
<div class="code"> bash-2.05b$ pwd<br /> /download/compil/bchunk-1.1.1/ | <div class="code"> bash-2.05b$ pwd<br /> /download/compil/bchunk-1.1.1/txz<br /> bash-2.05b$ su<br /> Mot de passe:<br /> bash-2.05b# makepkg bchunk-1.1.1-i686-ssk.txz<br /><br /> Slackware package maker, version 2.1.<br /><br /> Searching for symbolic links:<br /><br /> No symbolic links were found, so we won't make an installation script.<br /> You can make your own later in ./install/doinst.sh and rebuild the<br /> package if you like.<br /><br /> This next step is optional - you can set the directories in your package<br /> to some sane permissions. If any of the directories in your package have<br /> special permissions, then DO NOT reset them here!<br /><br /> Would you like to reset all directory permissions to 755 (drwxr-xr-x) and<br /> directory ownerships to root.root ([y]es, [n]o)?<br /> </div><div class="aparte">'''Note :''' Il est intéressant de "marquer" les paquets fait comme ne venant pas de la distribution d'origine. Par exemple, je mets "-ssk" dans chaque nom de paquet néocréé. </div> | ||
On vous demandera peut-être (comme ci-dessus) si vous voulez changer les permissions des fichiers ou remplacer les liens symboliques créés par <code>make install</code> par des lignes supplémentaires dans le script. Je réponds oui à toutes ces questions personnellement. Hop ! On valide la réponse. | On vous demandera peut-être (comme ci-dessus) si vous voulez changer les permissions des fichiers ou remplacer les liens symboliques créés par <code>make install</code> par des lignes supplémentaires dans le script. Je réponds oui à toutes ces questions personnellement. Hop ! On valide la réponse. | ||
<div class="code"> tar-1.13: bchunk-1.1.1-i686-ssk.tar is the archive; not dumped<br /> Gzipping bchunk-1.1.1-i686-ssk.tar...<br /> Renaming bchunk-1.1.1-i686-ssk.tar.gz to bchunk-1.1.1-i686-ssk. | <div class="code"> tar-1.13: bchunk-1.1.1-i686-ssk.tar is the archive; not dumped<br /> Gzipping bchunk-1.1.1-i686-ssk.tar...<br /> Renaming bchunk-1.1.1-i686-ssk.tar.gz to bchunk-1.1.1-i686-ssk.txz...<br /> Package creation complete.<br /> bash-2.05b# ls<br /> bchunk-1.1.1-i686-ssk.txz usr<br /> </div> | ||
Vous voilà donc avec votre | Vous voilà donc avec votre paquet. Il peut être installé, supprimé ou mis-à-jour avec les outils précédemment vus (installpkg, removepkg, upgradepkg). | ||
<div class="aparte">'''Note :''' Les fichiers SlackBuild sont des scripts permettant d'automatiser la création d'un | <div class="aparte">'''Note :''' Les fichiers SlackBuild sont des scripts permettant d'automatiser la création d'un txz (cf. paragraphe suivant). </div> | ||
== Création d'un SlackBuild == | == Création d'un SlackBuild == | ||
"Pffffiou... ca va etre contraignant si j'dois me rappeler comment j'ai compilé à la prochaine version..." C'est vrai que parfois, on a beaucoup de paramètres à passer au <code>./configure</code> ou des manipulations à faire après. Pour ça, il existe des scripts appelés SlackBuild. Vous pouvez trouver les SlackBuild qui ont servi aux | "Pffffiou... ca va etre contraignant si j'dois me rappeler comment j'ai compilé à la prochaine version..." C'est vrai que parfois, on a beaucoup de paramètres à passer au <code>./configure</code> ou des manipulations à faire après. Pour ça, il existe des scripts appelés SlackBuild. Vous pouvez trouver les SlackBuild qui ont servi aux paquets officiels sur le CD Source ou dans le repértoire /source du ftp Slackware. Vous pouvez aussi faire vos propres SlackBuild pour générer vos propres paquets. | ||
=== Utilisation d'un SlackBuild === | === Utilisation d'un SlackBuild === | ||
Un SlackBuild est un script bash avec pour nom <code>monlogiciel.SlackBuild</code>. Il vous suffit de le mettre dans le même répertoire que le .tar.bz2 (ou parfois le .tar.gz) du logiciel à compiler et de l'exécuter en root. Il se charge de tout : du dézippage à la formation du . | Un SlackBuild est un script bash avec pour nom <code>monlogiciel.SlackBuild</code>. Il vous suffit de le mettre dans le même répertoire que le .tar.bz2 (ou parfois le .tar.gz) du logiciel à compiler et de l'exécuter en root. Il se charge de tout : du dézippage à la formation du .txz en passant par le configure et la compilation. | ||
<div class="aparte">'''Note :''' Vérifiez de bien avoir les permissions d'exécution avant de lancer un SlackBuild. Sinon, faites un <code>chmod 755 monlogiciel.SlackBuild</code></div><div class="aparte">'''Note 2 :''' Certains SlackBuild patchent au passage les sources, vous avez donc besoin de mettre le(s) patch(s) dans le même répertoire que le SlackBuild et les sources. </div> | <div class="aparte">'''Note :''' Vérifiez de bien avoir les permissions d'exécution avant de lancer un SlackBuild. Sinon, faites un <code>chmod 755 monlogiciel.SlackBuild</code></div><div class="aparte">'''Note 2 :''' Certains SlackBuild patchent au passage les sources, vous avez donc besoin de mettre le(s) patch(s) dans le même répertoire que le SlackBuild et les sources. </div> | ||
Ligne 83 : | Ligne 85 : | ||
Un SlackBuild ouvert avec un éditeur de texte donne quelque chose comme : | Un SlackBuild ouvert avec un éditeur de texte donne quelque chose comme : | ||
<div class="code"> #!/bin/sh<br /><br />'''<nowiki># Définition des répertoire à utiliser</nowiki>'''<br /> CWD=`pwd`<br /> PKG=$PWD/ | <div class="code"> #!/bin/sh<br /><br />'''<nowiki># Définition des répertoire à utiliser</nowiki>'''<br /> CWD=`pwd`<br /> PKG=$PWD/txz<br /><br />'''<nowiki># Définition de la version</nowiki>'''<br /> VERSION=4.9.10<br /> ARCH=i486<br /> BUILD=1<br /><br />'''<nowiki># On efface les répertoires d'une précédente création</nowiki>'''<br /> rm -rf $PKG<br /> mkdir -p $PKG<br /> cd /tmp<br /> rm -rf centericq-$VERSION<br />'''<nowiki># On décompresse</nowiki>'''<br /> tar xjvf $CWD/centericq-$VERSION.tar.bz2<br /> cd centericq-$VERSION<br /> chown -R root.root .<br />'''<nowiki># On configure</nowiki>'''<br /> ./configure --prefix=/usr/local \<br /> i486-slackware-linux<br />'''<nowiki># On compile</nowiki>'''<br /> make<br /> make install DESTDIR=$PKG<br /><br />'''<nowiki># Compression des pages de man (facultatif)</nowiki>'''<br /> gzip -9 $PKG/usr/man/man?/*<br /> gzip -9 $PKG/usr/local/man/man?/*<br />'''<nowiki># Changement de permission</nowiki>'''<br /> chown -R root.bin $PKG/usr/local/bin<br /> chown -R root.bin $PKG/usr/bin<br />'''<nowiki># On insère les commentaires si il y en a</nowiki>'''<br /> mkdir -p $PKG/install<br /> cat $CWD/slack-desc > $PKG/install/slack-desc<br /><br />'''<nowiki># On fait le txz en lui-même</nowiki>'''<br /> cd $PKG<br /> makepkg -l y -c n ../centericq-$VERSION-$ARCH-$BUILD.txz<br /> </div> | ||
A vous d'adapter ça au logiciel que vous voulez compiler. | A vous d'adapter ça au logiciel que vous voulez compiler. | ||
Ligne 91 : | Ligne 93 : | ||
=== Les slack-desc === | === Les slack-desc === | ||
Les slack-desc sont des fichiers contenant la description du | Les slack-desc sont des fichiers contenant la description du paquet. Ils sont a placer dans même répertoire que le Slackbuild auquel il contribue. Ils sont de la forme : | ||
<div class="code"> | <div class="code"> | ||
Ligne 118 : | Ligne 120 : | ||
* Ne dépasser 11 lignes | * Ne dépasser 11 lignes | ||
* Chaque ligne doit être comprise entre les deux | du handy-ruler (un petit copier-coller peut vous être utile) | * Chaque ligne doit être comprise entre les deux | du handy-ruler (un petit copier-coller peut vous être utile) | ||
* Chaque ligne doit commencer par le nom du | * Chaque ligne doit commencer par le nom du paquet suivi de : et d'un espace (exempe : <code>gcc: </code>) | ||
== Swaret, quoi qu'est-ce ? == | == Swaret, quoi qu'est-ce ? == | ||
Swaret est un logiciel de gestion de | Swaret est un logiciel de gestion de paquet sous Linux Slackware. A la manière d'apt-get (debian), urpm (mandrake) ou emerge (gentoo), il permet d'installer ou de mettre à jour à partir d'un miroir. | ||
<div class="code"> PACKAGE DESCRIPTION:<br /> swaret: swaret (SlackWARE Tool)<br /> swaret:<br /> swaret: swaret Upgrades, Installs, Re-Installs, Downloads,...<br /> swaret: Packages, Patches, Sources (with Build Scripts) and much more!<br /> swaret: swaret includes Dependency Support, which Tracks and Fixes missing<br /> swaret: Libraries. It uses several Slackware Linux Mirrors through<br /> swaret: http/ftp/rsync or a Local Repository. swaret has also Repository<br /> swaret: Support to create a Repository of Slackware Packages which will<br /> swaret: allow swaret to use it with the known --ACTIONS.<br /> swaret: swaret can also use 3rd-party Slackware Packages available on<br /> swaret: LinuxPackages DOT NET and other Repository Sites.<br /> swaret: swaret has also Internationalization (i18n) Support.<br /> swaret:<br /> swaret: swaret is written and maintained by Luc Cottyn and Michael G. Manry.<br /> swaret:<br /> swaret: For more information, see http://www.swaret.org<br /> swaret:<br /> </div> | <div class="code"> PACKAGE DESCRIPTION:<br /> swaret: swaret (SlackWARE Tool)<br /> swaret:<br /> swaret: swaret Upgrades, Installs, Re-Installs, Downloads,...<br /> swaret: Packages, Patches, Sources (with Build Scripts) and much more!<br /> swaret: swaret includes Dependency Support, which Tracks and Fixes missing<br /> swaret: Libraries. It uses several Slackware Linux Mirrors through<br /> swaret: http/ftp/rsync or a Local Repository. swaret has also Repository<br /> swaret: Support to create a Repository of Slackware Packages which will<br /> swaret: allow swaret to use it with the known --ACTIONS.<br /> swaret: swaret can also use 3rd-party Slackware Packages available on<br /> swaret: LinuxPackages DOT NET and other Repository Sites.<br /> swaret: swaret has also Internationalization (i18n) Support.<br /> swaret:<br /> swaret: swaret is written and maintained by Luc Cottyn and Michael G. Manry.<br /> swaret:<br /> swaret: For more information, see http://www.swaret.org<br /> swaret:<br /> </div> | ||
L'essentiel : Swaret met à jour, installe, réinstalle, télécharge.. les | L'essentiel : Swaret met à jour, installe, réinstalle, télécharge.. les paquets, patches, sources (avec scripts de construction) et bien plus. Swaret inclut un support des dépendances, avec recherche et installation des bibliothèques manquantes. Il utilise plusieurs miroirs Slackware Linux à travers http/ftp/rsync ou encore un répertoire local. | ||
== Installation de Swaret == | == Installation de Swaret == | ||
Ligne 132 : | Ligne 134 : | ||
=== Téléchargement === | === Téléchargement === | ||
Vous pouvez télécharger Swaret sur [http://swaret.sourceforge.net/index.php http://swaret.sourceforge.net/]. A l'heure où j'écris ces lignes, la dernière version est la [http://prdownloads.sourceforge.net/swaret/swaret-1.6.2-noarch-1. | Vous pouvez télécharger Swaret sur [http://swaret.sourceforge.net/index.php http://swaret.sourceforge.net/]. A l'heure où j'écris ces lignes, la dernière version est la [http://prdownloads.sourceforge.net/swaret/swaret-1.6.2-noarch-1.txz.tar?download 1.6.2-noarch-1]. | ||
=== Installation du | === Installation du paquet === | ||
Vous récupérez un | Vous récupérez un paquet Slackware en txz. L'installation se déroule comme pour tout txz en tapant (en root) <code>installpkg swaret-1.6.2-noarch-1.txz</code> dans le répertoire où le fichier a été téléchargé (pour une mise à jour, <code>upgradepkg swaret-1.6.2-noarch-1.txz</code>). Pour information, le binaire se loge dans /usr/sbin. Cela pour rappeler que Swaret ne s'utilise qu'en root (le root étant le seul utilisateur pouvant installer ou mettre à jour des paquets). | ||
== Configuration == | == Configuration == | ||
Ligne 144 : | Ligne 146 : | ||
=== Langue === | === Langue === | ||
C'est parfois irritant d'utiliser un logiciel dans la langue de Shakespeare. Heureusement, Swaret possède maintenant une traduction, comme l'indique l'installation du | C'est parfois irritant d'utiliser un logiciel dans la langue de Shakespeare. Heureusement, Swaret possède maintenant une traduction, comme l'indique l'installation du txz : | ||
<div class="code"> swaret:<br /> swaret: ! NEW CONFIG FILE FOR REPOSITORY SUPPORT !<br /> swaret: YOU MUST EDIT /etc/swaret.conf.new! (man swaret.conf)<br /> swaret: Rename it to /etc/swaret.conf and start using swaret.<br /> swaret:<br /> swaret: ! NEW LANGUAGE FILE FOR INTERNATIONALIZATION (i18n) !<br /> swaret: YOU CAN COPY /usr/share/swaret-1.6.0/swaret.lang.LANGUAGE to<br /> swaret: /etc/swaret.lang and start using swaret.<br /> swaret: Language Files available at http://www.swaret.org/?menu=i18n<br /> swaret:<br /> swaret: Take a look to the Documentation Files found in:<br /> swaret: /usr/doc/swaret-1.6.0/<br /> swaret:<br /> </div> | <div class="code"> swaret:<br /> swaret: ! NEW CONFIG FILE FOR REPOSITORY SUPPORT !<br /> swaret: YOU MUST EDIT /etc/swaret.conf.new! (man swaret.conf)<br /> swaret: Rename it to /etc/swaret.conf and start using swaret.<br /> swaret:<br /> swaret: ! NEW LANGUAGE FILE FOR INTERNATIONALIZATION (i18n) !<br /> swaret: YOU CAN COPY /usr/share/swaret-1.6.0/swaret.lang.LANGUAGE to<br /> swaret: /etc/swaret.lang and start using swaret.<br /> swaret: Language Files available at http://www.swaret.org/?menu=i18n<br /> swaret:<br /> swaret: Take a look to the Documentation Files found in:<br /> swaret: /usr/doc/swaret-1.6.0/<br /> swaret:<br /> </div> | ||
Ligne 156 : | Ligne 158 : | ||
<div class="code"> ROOT=ftp://ftp.nluug.nl/pub/os/Linux/distr/slackware/slackware-current<br /> ROOT=ftp://ftp.slackware.no/pub/linux/slackware/slackware-current<br /> ROOT=ftp://ftp.slackware.at/slackware-current<br /> ROOT=ftp://ftp.planetmirror.com/pub/slackware/slackcware-current<br /> ROOT=http://www.slackware.no/slackware/slackware-current<br /> </div> | <div class="code"> ROOT=ftp://ftp.nluug.nl/pub/os/Linux/distr/slackware/slackware-current<br /> ROOT=ftp://ftp.slackware.no/pub/linux/slackware/slackware-current<br /> ROOT=ftp://ftp.slackware.at/slackware-current<br /> ROOT=ftp://ftp.planetmirror.com/pub/slackware/slackcware-current<br /> ROOT=http://www.slackware.no/slackware/slackware-current<br /> </div> | ||
Ce sont les sites sur lesquels Swaret ira chercher les | Ce sont les sites sur lesquels Swaret ira chercher les paquets à installer ou mettre à jour. Vous pouvez ajouter vos propres miroirs ou changer l'ordre (Swaret les essaye dans l'ordre). Un simple dièse en début de ligne la désactive. Personnellement, je n'ai rien touché si ce n'est pour ajouter mon serveur en local. | ||
== Utilisation de Swaret == | == Utilisation de Swaret == | ||
Tout d'abord, je vous conseille de mettre à jour la liste des | Tout d'abord, je vous conseille de mettre à jour la liste des paquets que Swaret connaît. Pour ce faire, très simple, tapez en root : <code>swaret --update</code>. Swaret va chercher la liste des paquets sur les miroirs. Remarque : toutes les commandes se font en root. | ||
<div class="code"> root@gedphoenix:/etc# swaret --update<br /> swaret 1.6.0-5<br /><br /> [ http://192.168.254.222/update/slackware ]<br /> ### Téléchargement de la liste des fichiers CHECKSUMS... FINI !<br /> ### Téléchargement de la liste des fichiers FILELIST... FINI !<br /> ### Téléchargement de la liste des fichiers PACKAGES pour les | <div class="code"> root@gedphoenix:/etc# swaret --update<br /> swaret 1.6.0-5<br /><br /> [ http://192.168.254.222/update/slackware ]<br /> ### Téléchargement de la liste des fichiers CHECKSUMS... FINI !<br /> ### Téléchargement de la liste des fichiers FILELIST... FINI !<br /> ### Téléchargement de la liste des fichiers PACKAGES pour les paquets... FINI !<br /> ### Téléchargement de la liste des fichiers PACKAGES pour les paquets additionnels... FINI !<br /> ### Téléchargement de ChangeLog... FINI !<br /> => Génération des listes de fichiers... FINI !<br /> </div> | ||
=== Installation avec Swaret === | === Installation avec Swaret === | ||
Vous pouvez obtenir la liste des | Vous pouvez obtenir la liste des paquets à installer en faisant <code>swaret --list -n</code> (-n pour paquets non installés). L'installation se fait simplement en tapant <code>swaret --install <''mot-clé''></code> (où ''mot-clé'' est un morceau du nom du paquet). Swaret liste alors les paquets dont le nom contient la chaîne de caractères proposée et vous demande pour chaque paquet si vous voulez l'installer. | ||
<div class="code"> root@gedphoenix:/etc# swaret --install fluxbox<br /> swaret 1.6.0-5<br /><br /> Listage des | <div class="code"> root@gedphoenix:/etc# swaret --install fluxbox<br /> swaret 1.6.0-5<br /><br /> Listage des paquets disponibles appropriés au mot-clé : fluxbox...<br /> fluxbox-0.1.14-i386-1 (348 ko)<br /> fluxbox-0.9.6pre1-i486-1 (493 ko)<br /><br /> Le paquet fluxbox-0.9.6pre1-i486-1 est déjà installé !<br /> Listage des différents versions du paquet 'fluxbox'...<br /> > fluxbox-0.1.14-i386-1<br /> Trouvé une version installée du paquet 'fluxbox': fluxbox-0.9.6pre1-i486-1<br /> Êtes-vous sur de vouloir installer fluxbox-0.1.14-i386-1? (o/n/A/Q): [o]<br /> </div> | ||
En cas de dépendances, Swaret vous demandera si vous voulez installer les | En cas de dépendances, Swaret vous demandera si vous voulez installer les paquets dont dépend celui que vous avez demandé. | ||
=== Mise-à-jour avec Swaret === | === Mise-à-jour avec Swaret === | ||
Vous pouvez obtenir la liste des | Vous pouvez obtenir la liste des paquets à installer en faisant <code>swaret --list -u</code> (-u pour paquets à "upgrader"). L'installation se fait simplement en tapant <code>swaret --upgrade <''mot-clé''></code> (où ''mot-clé'' est un morceau du nom du paquet). Swaret liste alors les paquets dont le nom contient la chaîne de caractère proposée et vous demande pour chaque paquet si vous voulez le mettre à jour. En cas de dépendances, Swaret vous demandera si vous voulez installer les paquets dont dépend celui que vous avez demandé. | ||
<div class="aparte">'''Note :''' Attention, Swaret upgrade dans l'ordre alphabétique. Donc si vous mettez plusieurs | <div class="aparte">'''Note :''' Attention, Swaret upgrade dans l'ordre alphabétique. Donc si vous mettez plusieurs paquets à jour, il risque d'en installer dans le mauvais ordre (certains paquets tels que la glibc sont sensibles à ce sujet). Et il ne respecte pas la méthodologie de Patrick (Patrick Volkerding, le mainteneur de la Slackware) pour l'upgrade du système. </div> | ||
==== Mise-à-jour automatique ==== | ==== Mise-à-jour automatique ==== | ||
Ligne 188 : | Ligne 190 : | ||
=== Conclusion sur Swaret === | === Conclusion sur Swaret === | ||
Swaret est un excellent outil de gestion de | Swaret est un excellent outil de gestion de paquet, tout à fait comparable à apt-get, urpm ou encore emerge. Pour plus d'informations, tapez <code>man swaret</code> ou attendez une mise à jour du présent document. | ||
== En conclusion == | == En conclusion == | ||
Vous avez maintenant le panel de possibilités pour gérer à votre gré les | Vous avez maintenant le panel de possibilités pour gérer à votre gré les paquets de votre système et même distribuer les vôtres. En espérant que cela vous sera utile, have fun ;) ... | ||
< | <br /> | ||
<br /> | |||
Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par GEDsismik le 16/01/2004. | |||
Mis à jour par [[Utilisateur:Jiel|Jiel]] en 2011. | |||
<br/> | <br/> | ||
Ligne 200 : | Ligne 205 : | ||
'''<b>[[Software-index|@ Retour à la rubrique Logiciels]]</b>''' | '''<b>[[Software-index|@ Retour à la rubrique Logiciels]]</b>''' | ||
{{Copy|16/01/2004|GEDsismik|CC-BY-NC-SA}} | |||
Version du 15 novembre 2011 à 16:57
Les paquets Slackware
par GEDsismik
Où comment gérer ses txz...
Chaque distribution a ses spécificités. Parmi celles-ci se retrouve le système de paquet. Les paquets Slackware sont des fichiers .txz (.tgz jusque Slackware 12.2), c'est-à-dire compressés comme un .tar.xz. Ils contiennent, le plus souvent, les binaires du logiciel avec ses fichiers de configuration plus un répertoire install
pouvant contenir la description du paquet et le script à exécuter après l'installation. L'une des particularités du txz Slackware, c'est qu'il ne prend pas en compte les dépendances avec les autres paquets. Dans cet article, nous allons vous présenter les outils Slackware de gestion de paquet ainsi que Swaret, outils d'installation/mise à jour à la urpm / apt-get.
Pkgtools, quoi qu'est-ce ?
Pkgtools est un paquet contenant des outils destinés à la gestion des paquets Slackware. Ces outils sont tous des scripts bash jouant un rôle précis.
Installation, suppression de paquet
installpkg
installpkg installe un paquet. La syntaxe est la suivante : installpkg <nomdupaquet.txz>
. Pour information, installpkg stocke la liste des paquets installés ainsi que la description des paquets dans /var/log/packages/.
removepkg
removepkg désinstalle un paquet. La syntaxe est la suivante : removepkg <nomdupaquet>
. Si vous n'êtes pas sûr de la syntaxe complète, essayez ls /var/log/packages/
. Pour information, removepkg stocke la liste des paquets désinstallés dans /var/log/removed_packages/.
upgradepkg
upgradepkg met à jour un paquet installé. La syntaxe est la suivante : upgradepkg <nomdupaquet.txz>
. Pour information, upgradepkg stocke la liste des paquets mis-à-jour avec celle des paquets installés dans /var/log/packages/.
pkgtool
pkgtool est une interface "semi-graphique" en ncurse permettant la gestion des paquets. Il utilise installpkg, removepkg et upgradepkg.
Création d'un paquet
La gestion des paquets est très intéressante (même si la gestion des dépendances n'existe pas avec pkgtools) mais il n'existe pas toujours de paquet Slackware pour toutes les applications. La compilation s'avère donc nécessaire. Le mieux dans ce cas est de faire son propre paquet. Une éventuelle désinstallation sera ainsi plus simple et plus propre.
Configure
La "technique" de compilation, la plus simple est le classique "configure"-"make"-"make install". Seulement, voilà, on va faire plus complet. Commencez par créer un répertoire qui devra contenir les fichiers compilés (souvent, je prends le répertoire dans lequel j'ai décompressé le logiciel à compiler + /txz). Dans ce répertoire, créez ./usr/local (pour que le paquet s'installe dans /usr/local, mettez ./usr pour qu'il s'installe dans /usr). Exemple :
/download/compil/bchunk-1.1.1
bash-2.05b$ mkdir txz
bash-2.05b$ ls
bchunk bchunk-1.1.1.lsm bchunk.spec COPYING README
bchunk.1 bchunk.c ChangeLog Makefile txz
bash-2.05b$
Ensuite, il faut faire un configure avec toutes vos options classiques : Exemple :
checking for a BSD-compatible install... /usr/bin/ginstall -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for sed... /usr/bin/sed
checking for gcc... gcc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
./configure --prefix=/usr/local
pour être sur que le paquet s'installera dans /usr/local plutôt qu'ailleurs. Compilation
Ensuite, nous allons compiler et installer le logiciel dans le répertoire choisi. Vous pouvez donc faire make
. make install DESTDIR=/download/compil/bchunk-1.1.1/txz
permet d'installer le programme dans le repertoire que l'on veut (en utilisateurs, pas besoin d'être root : il n'est pas utilisé de répertoire interdit en écriture).
make install prefix=/download/compil/bchunk-1.1.1/txz/usr/local
. Peaufinage
Ce paragraphe n'est pas obligatoire mais préférable. Il est intéressant de compresser les pages de man ( gzip -9 /download/compil/bchunk-1.1.1/txz/usr/man/man?/*
et gzip -9 /download/compil/bchunk-1.1.1/txz/usr/local/man/man?/*
) et d'ajouter des pages infos ou des howtos à cette étape de la création. Autre commande à noter : chown -R root.bin /download/compil/bchunk-1.1.1/txz/*
pour mettre les fichiers crés du groupe bin (afin de respecter les pratiques habituelles des paquets Slackware).
Création du txz
Passez ensuite dans le répertoire préfixe (moins /usr/local) et passez en root (makepkg n'est utilisable qu'en root). Tapez ensuite makepkg <nomdupaquet.txz>
. Exemple :
/download/compil/bchunk-1.1.1/txz
bash-2.05b$ su
Mot de passe:
bash-2.05b# makepkg bchunk-1.1.1-i686-ssk.txz
Slackware package maker, version 2.1.
Searching for symbolic links:
No symbolic links were found, so we won't make an installation script.
You can make your own later in ./install/doinst.sh and rebuild the
package if you like.
This next step is optional - you can set the directories in your package
to some sane permissions. If any of the directories in your package have
special permissions, then DO NOT reset them here!
Would you like to reset all directory permissions to 755 (drwxr-xr-x) and
directory ownerships to root.root ([y]es, [n]o)?
On vous demandera peut-être (comme ci-dessus) si vous voulez changer les permissions des fichiers ou remplacer les liens symboliques créés par make install
par des lignes supplémentaires dans le script. Je réponds oui à toutes ces questions personnellement. Hop ! On valide la réponse.
Gzipping bchunk-1.1.1-i686-ssk.tar...
Renaming bchunk-1.1.1-i686-ssk.tar.gz to bchunk-1.1.1-i686-ssk.txz...
Package creation complete.
bash-2.05b# ls
bchunk-1.1.1-i686-ssk.txz usr
Vous voilà donc avec votre paquet. Il peut être installé, supprimé ou mis-à-jour avec les outils précédemment vus (installpkg, removepkg, upgradepkg).
Création d'un SlackBuild
"Pffffiou... ca va etre contraignant si j'dois me rappeler comment j'ai compilé à la prochaine version..." C'est vrai que parfois, on a beaucoup de paramètres à passer au ./configure
ou des manipulations à faire après. Pour ça, il existe des scripts appelés SlackBuild. Vous pouvez trouver les SlackBuild qui ont servi aux paquets officiels sur le CD Source ou dans le repértoire /source du ftp Slackware. Vous pouvez aussi faire vos propres SlackBuild pour générer vos propres paquets.
Utilisation d'un SlackBuild
Un SlackBuild est un script bash avec pour nom monlogiciel.SlackBuild
. Il vous suffit de le mettre dans le même répertoire que le .tar.bz2 (ou parfois le .tar.gz) du logiciel à compiler et de l'exécuter en root. Il se charge de tout : du dézippage à la formation du .txz en passant par le configure et la compilation.
chmod 755 monlogiciel.SlackBuild
Anatomie d'un SlackBuild
Un SlackBuild ouvert avec un éditeur de texte donne quelque chose comme :
# Définition des répertoire à utiliser
CWD=`pwd`
PKG=$PWD/txz
# Définition de la version
VERSION=4.9.10
ARCH=i486
BUILD=1
# On efface les répertoires d'une précédente création
rm -rf $PKG
mkdir -p $PKG
cd /tmp
rm -rf centericq-$VERSION
# On décompresse
tar xjvf $CWD/centericq-$VERSION.tar.bz2
cd centericq-$VERSION
chown -R root.root .
# On configure
./configure --prefix=/usr/local \
i486-slackware-linux
# On compile
make
make install DESTDIR=$PKG
# Compression des pages de man (facultatif)
gzip -9 $PKG/usr/man/man?/*
gzip -9 $PKG/usr/local/man/man?/*
# Changement de permission
chown -R root.bin $PKG/usr/local/bin
chown -R root.bin $PKG/usr/bin
# On insère les commentaires si il y en a
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
# On fait le txz en lui-même
cd $PKG
makepkg -l y -c n ../centericq-$VERSION-$ARCH-$BUILD.txz
A vous d'adapter ça au logiciel que vous voulez compiler.
BUILD=ssk
Les slack-desc
Les slack-desc sont des fichiers contenant la description du paquet. Ils sont a placer dans même répertoire que le Slackbuild auquel il contribue. Ils sont de la forme :
# HOW TO EDIT THIS FILE: # The "handy ruler" below makes it easier to edit a package description. Line # up the first '|' above the ':' following the base package name, and the '|' # on the right side marks the last column you can put a character in. You must # make exactly 11 lines for the formatting to be correct. It's also # customary to leave one space after the ':'. |-----handy-ruler------------------------------------------------------| generic: generic generic: generic: Ma description du logiciel generic generic: generic: generic:
Leur format est le format texte standard respectant certaines règles :
- Ne dépasser 11 lignes
- Chaque ligne doit être comprise entre les deux | du handy-ruler (un petit copier-coller peut vous être utile)
- Chaque ligne doit commencer par le nom du paquet suivi de : et d'un espace (exempe :
gcc:
)
Swaret, quoi qu'est-ce ?
Swaret est un logiciel de gestion de paquet sous Linux Slackware. A la manière d'apt-get (debian), urpm (mandrake) ou emerge (gentoo), il permet d'installer ou de mettre à jour à partir d'un miroir.
swaret: swaret (SlackWARE Tool)
swaret:
swaret: swaret Upgrades, Installs, Re-Installs, Downloads,...
swaret: Packages, Patches, Sources (with Build Scripts) and much more!
swaret: swaret includes Dependency Support, which Tracks and Fixes missing
swaret: Libraries. It uses several Slackware Linux Mirrors through
swaret: http/ftp/rsync or a Local Repository. swaret has also Repository
swaret: Support to create a Repository of Slackware Packages which will
swaret: allow swaret to use it with the known --ACTIONS.
swaret: swaret can also use 3rd-party Slackware Packages available on
swaret: LinuxPackages DOT NET and other Repository Sites.
swaret: swaret has also Internationalization (i18n) Support.
swaret:
swaret: swaret is written and maintained by Luc Cottyn and Michael G. Manry.
swaret:
swaret: For more information, see http://www.swaret.org
swaret:
L'essentiel : Swaret met à jour, installe, réinstalle, télécharge.. les paquets, patches, sources (avec scripts de construction) et bien plus. Swaret inclut un support des dépendances, avec recherche et installation des bibliothèques manquantes. Il utilise plusieurs miroirs Slackware Linux à travers http/ftp/rsync ou encore un répertoire local.
Installation de Swaret
Téléchargement
Vous pouvez télécharger Swaret sur http://swaret.sourceforge.net/. A l'heure où j'écris ces lignes, la dernière version est la 1.6.2-noarch-1.
Installation du paquet
Vous récupérez un paquet Slackware en txz. L'installation se déroule comme pour tout txz en tapant (en root) installpkg swaret-1.6.2-noarch-1.txz
dans le répertoire où le fichier a été téléchargé (pour une mise à jour, upgradepkg swaret-1.6.2-noarch-1.txz
). Pour information, le binaire se loge dans /usr/sbin. Cela pour rappeler que Swaret ne s'utilise qu'en root (le root étant le seul utilisateur pouvant installer ou mettre à jour des paquets).
Configuration
La configuration de Swaret comporte deux fichiers (contenus dans /etc) : /etc/swaret.lang (la configuration de langue) et /etc/swaret.conf (la configuration des miroirs et des différentes options).
Langue
C'est parfois irritant d'utiliser un logiciel dans la langue de Shakespeare. Heureusement, Swaret possède maintenant une traduction, comme l'indique l'installation du txz :
swaret: ! NEW CONFIG FILE FOR REPOSITORY SUPPORT !
swaret: YOU MUST EDIT /etc/swaret.conf.new! (man swaret.conf)
swaret: Rename it to /etc/swaret.conf and start using swaret.
swaret:
swaret: ! NEW LANGUAGE FILE FOR INTERNATIONALIZATION (i18n) !
swaret: YOU CAN COPY /usr/share/swaret-1.6.0/swaret.lang.LANGUAGE to
swaret: /etc/swaret.lang and start using swaret.
swaret: Language Files available at http://www.swaret.org/?menu=i18n
swaret:
swaret: Take a look to the Documentation Files found in:
swaret: /usr/doc/swaret-1.6.0/
swaret:
Ça veut dire quoi ? Ça veut dire qu'on peut avoir Swaret en français en tapant (en root) : cp /usr/share/swaret-1.6.0/swaret.lang.FRANCAIS /etc/swaret.lang
.
Miroir
Le début du fichier /etc/swaret.conf contient une liste de miroirs sous la forme (extrait) :
ROOT=ftp://ftp.slackware.no/pub/linux/slackware/slackware-current
ROOT=ftp://ftp.slackware.at/slackware-current
ROOT=ftp://ftp.planetmirror.com/pub/slackware/slackcware-current
ROOT=http://www.slackware.no/slackware/slackware-current
Ce sont les sites sur lesquels Swaret ira chercher les paquets à installer ou mettre à jour. Vous pouvez ajouter vos propres miroirs ou changer l'ordre (Swaret les essaye dans l'ordre). Un simple dièse en début de ligne la désactive. Personnellement, je n'ai rien touché si ce n'est pour ajouter mon serveur en local.
Utilisation de Swaret
Tout d'abord, je vous conseille de mettre à jour la liste des paquets que Swaret connaît. Pour ce faire, très simple, tapez en root : swaret --update
. Swaret va chercher la liste des paquets sur les miroirs. Remarque : toutes les commandes se font en root.
swaret 1.6.0-5
[ http://192.168.254.222/update/slackware ]
### Téléchargement de la liste des fichiers CHECKSUMS... FINI !
### Téléchargement de la liste des fichiers FILELIST... FINI !
### Téléchargement de la liste des fichiers PACKAGES pour les paquets... FINI !
### Téléchargement de la liste des fichiers PACKAGES pour les paquets additionnels... FINI !
### Téléchargement de ChangeLog... FINI !
=> Génération des listes de fichiers... FINI !
Installation avec Swaret
Vous pouvez obtenir la liste des paquets à installer en faisant swaret --list -n
(-n pour paquets non installés). L'installation se fait simplement en tapant swaret --install <mot-clé>
(où mot-clé est un morceau du nom du paquet). Swaret liste alors les paquets dont le nom contient la chaîne de caractères proposée et vous demande pour chaque paquet si vous voulez l'installer.
swaret 1.6.0-5
Listage des paquets disponibles appropriés au mot-clé : fluxbox...
fluxbox-0.1.14-i386-1 (348 ko)
fluxbox-0.9.6pre1-i486-1 (493 ko)
Le paquet fluxbox-0.9.6pre1-i486-1 est déjà installé !
Listage des différents versions du paquet 'fluxbox'...
> fluxbox-0.1.14-i386-1
Trouvé une version installée du paquet 'fluxbox': fluxbox-0.9.6pre1-i486-1
Êtes-vous sur de vouloir installer fluxbox-0.1.14-i386-1? (o/n/A/Q): [o]
En cas de dépendances, Swaret vous demandera si vous voulez installer les paquets dont dépend celui que vous avez demandé.
Mise-à-jour avec Swaret
Vous pouvez obtenir la liste des paquets à installer en faisant swaret --list -u
(-u pour paquets à "upgrader"). L'installation se fait simplement en tapant swaret --upgrade <mot-clé>
(où mot-clé est un morceau du nom du paquet). Swaret liste alors les paquets dont le nom contient la chaîne de caractère proposée et vous demande pour chaque paquet si vous voulez le mettre à jour. En cas de dépendances, Swaret vous demandera si vous voulez installer les paquets dont dépend celui que vous avez demandé.
Mise-à-jour automatique
Ce qui peut être sympa, c'est que swaret se mette à jour et mette à jour le système tout seul. Pour ca, vous pouvez réaliser le petit script suivant :
# /sbin/swaretupdate
swaret --update
swaret --upgrade -a
et l'ajouter dans la crontab
: 30 5 * * * /sbin/swaretupdate
(pour le lancer tout les jours à 5h30)
Conclusion sur Swaret
Swaret est un excellent outil de gestion de paquet, tout à fait comparable à apt-get, urpm ou encore emerge. Pour plus d'informations, tapez man swaret
ou attendez une mise à jour du présent document.
En conclusion
Vous avez maintenant le panel de possibilités pour gérer à votre gré les paquets de votre système et même distribuer les vôtres. En espérant que cela vous sera utile, have fun ;) ...
Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par GEDsismik le 16/01/2004.
Mis à jour par Jiel en 2011.
@ Retour à la rubrique Logiciels
Copyright
© 16/01/2004 GEDsismik
Ce document est publié sous licence Creative Commons Attribution, Partage à l'identique, Contexte non commercial 2.0 : http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ |