====== makepkg ====== ===== NOM ===== makepkg - fabrique les paquets Slackware ===== SYNOPSIS ===== makepkg [ -l, --linkadd y|n ] [ -c, --chown y|n ] packagename ===== DESCRIPTION ===== makepkg créer un nouveau paquet compatible avec Slackware. Le paquet est construit en utilisant le contenu du répertoire courrant et ses sous-répertoires. Si des liens symboliques existent, ils sont convertit en code (NdT : du Bourne shell tout simple) dans un script qui les recréra lors de l'installation du paquet. Ce morceaux de code doit se situé au début du script d'installation (install/doinst.sh), ou, si ce script n'existe pas, il sera créer avec ce code. Le paquet packagename qui sera ainsi fabriqué aura comme nom le nom complet, y compris l'extension (généralement .tgz) ===== OPTIONS ===== === -l, --linkadd y|n === Si -l prend comme valeur y, les liens symboliques trouvés sont ajoutés dans le script d'installation (doinst.sh) et effacés. Cette option est recommandée. Si cette options n'est pas utilisée, makepkg vous demandera s'il trouve des liens symboliques. === -p, --prepend === Si cette options est donnée, alors chaques liens symbolique ajoutés au doinst.sh le sera au début. Cette option est utile pour les paquets qui contiennent des librairies partagées qui ont besoin d'être liées dès le début car le programme les utilise plus tard dans le doinst.sh === -c, chown y|n === Si -c prend comme valeur y, makepkg va donner comme droit 755 et comme propriétaire root:root à tous les répertoires. En général, vous devriez avoir les permissions et la propriétés adéquate (NdT: être super utilisateur root), donc passer cette option est un manque de savoir vivre. Ce n'est pas le choix par défaut, et si l'option n'est pas spécifiée makepkg vous le demandera. NdT: il mérite ici qu'on s'y attarde; fabriquer un paquet en root est très très dangeureux, et peut devenir catastrophique. En effet, une simple erreur de syntaxe, une faute de frappe, et vous pouvez rendre votre système inutilisable, ou, moins grave, la rendre difficile à mettre à jour. Il a longtemps été débattu au sein de la communauté de l'utilite de fakeroot, qui créer le paquet en user en lui attribuant les droits et propriété sus-nommé, mais sans risque pour le système. Cette option, non utilisé par Patrick Volkerding est cependant celle qu'il faut utilisé quand on créer des paquets. Ainsi, cette option (-c y) est à passée d'office pour créer un paquet correct sans prendre de risque pour le système. ===== SCRIPTS D'INSTALLATION ===== Il existe 3 types de scripts d'installation supportés par le système de paquets Slackware : * Le premier est **script primaire d'installation**. Il se trouve dans le sous-répertoire ./install et doit s'appeler doinst.sh afin d'être reconnu par le système de paquet. Il doit (tout comme les autres scripts d'installation) être écrit en utilisant la syntaxe Bourne shell reconnu par le shell ash, étant donné que c'est le shell utilisé pour installer les paquets durant une installation de Slackware via disquette. C'est un piège courrant que d'écrire ce script en bash, qu'il marche lorsque le paquet est installé depuis le disque dur, mais ne marche plus lors de l'install via disquette (NdT: cette page de man date de 1994, on peut donc aisément ce passer de ces commentaires, mais il reste bon de le signaler). Si le paquet est pour un usage personnel, il n'y a pas de problème. Faites attention cependant si vous envisagez de partager le paquet avec d'autres utilisateurs ! Ce script d'installation primaire est exécuté immédiatement après que le paquet soit installé avec installpkg, pkgtool ou setup. * Le second type de script le script de **configuration**. Il se trouve dans le sous-répertoire ./var/log/setup et doit un nom commençant par setup. pour être reconnu. Un exemple est le script de configuration timezone : /var/log/setup/setup.timeconfig. Ces scripts sont exécutés durant la phase CONFIGURE du setup (NdT: non pas lors de l'install d'un paquet, mais durant la phase d'install de Slackware). Typiquement, l'utilisateur passe par cette phase après l'installation de tous les paquets. Tout ce qui nécessite d'être interactif devraient se trouver dans un de ces scripts pour éviter d'avoir à quitter le processus d'installation des paquets pendant le setup. * Le troisième type de script est le **onlyonce**. Comme le nom l'indique ils ne sont exécutés qu'une seule fois après l'installation du paquet, en opposition aux scripts de configurations. Ces scripts sont aussi dans ./var/log/setup/, doivent aussi commencer par setup., mais doivent contenir la chaîne **onlyonce** dans leur nom. Un exemple pourrait être /var/log/setup/setup.onlyonce.testscript ===== FORMAT DU PAQUET ===== makepkg utilise GNU tar en conjonction à GNU zip pour créer ses paquets. Une façon simple d'etraire le contenu d'un paquet (sans exécuter les scripts d'installation bien sûr) serait d'utiliser une commande du genre : tar xf package.tgz (NdT: dans la page originale la vielle syntaxe de tar est utilisée tar xzvvf package.tgz) ===== AUTEUR ===== Patrick J. Volkerding ===== TRADUCTION ===== Jérôme Prior ===== VOIR AUSSI ===== installpkg(8), explodepkg(8), removepkg(8), pkgtool(8), upgradepkg(8)