4.5. Utiliser le catalogue des logiciels portés

Les sections suivantes fournissent des instructions de base sur l'utilisation du catalogue des logiciels portés pour installer et désinstaller des programmes sur votre système.

4.5.1. Obtenir le catalogue des logiciels portés

Avant que vous puissiez installer des logiciels portés, vous devez d'abord récupérer le catalogue des logiciels portés-- qui est essentiellement un ensemble de Makefiles, de correctifs, et de fichiers de description habituellement placés dans /usr/ports.

Quand vous avez installé votre système FreeBSD, sysinstall vous a demandé si vous aimeriez installer le catalogue des logiciels portés. Si vous avez choisi non, vous pouvez suivre ces instructions pour obtenir le catalogue des logiciels portés:

La méthode Sysinstall

Cette méthode implique l'utilisation à nouveau de sysinstall pour installer manuellement le catalogue des logiciels portés.

  1. En tant que root, lancez sysinstall (/stand/sysinstall dans les versions de FreeBSD antérieure à 5.2) comme montré ci-dessous:

    # /stand/sysinstall
    
  2. Faites défiler l'écran vers le bas et sélectionnez Configure, appuyez sur Entrée.

  3. Faites défiler l'écran vers le bas et sélectionnez Distributions, appuyez sur Entrée.

  4. Faites défiler l'écran vers le bas jusqu'à ports, appuyez sur Espace.

  5. Remontez jusqu'à Exit, appuyez sur Entrée.

  6. Choisissez le support d'installation désiré, comme un CDROM, par FTP, etc...

  7. Remontez jusqu'à Exit et appuyez sur Enter.

  8. Appuyez sur la touche X pour quitter sysinstall.

Une autre alternative pour obtenir et garder à jour votre catalogue des logiciels portés est d'utiliser CVSup. Jetez un coup d'oeil au fichier CVSup du catalogue des logiciels portés, /usr/share/examples/cvsup/ports-supfile. Consultez Utiliser CVSup (Section A.5) pour plus d'information sur l'utilisation de CVSup et ce fichier.

La méthode CVSup

C'est une méthode rapide pour récupérer le catalogue des logiciels portés en utilisant CVSup. Si vous voulez garder à jour votre catalogue, ou apprendre plus au sujet de CVSup, lisez les sections mentionnées précédemment.

  1. Installer le logiciel porté net/cvsup. Voir Installation de CVSup (Section A.5.2) pour plus de details.

  2. En tant que root, copier /usr/share/examples/cvsup/ports-supfile à un nouvel emplacement, comme /root ou votre répertoire d'utilisateur.

  3. Editez ports-supfile.

  4. Remplacez CHANGE_THIS.FreeBSD.org avec un serveur CVSup proche de vous. Voir Sites CVSup (Section A.5.7) pour une liste complète des sites miroirs.

  5. Lancez cvsup:

    # cvsup -g -L 2 /root/ports-supfile
    
  6. L'exécution ultérieure de cette commande téléchargera et appliquera tous les changements récents à votre catalogue des logiciels portés sans pour autant recompiler vos logiciels.

4.5.2. Installation de logiciels portés

La première chose qui devrait être expliquée quand on aborde le catalogue des logiciels portés est ce que l'on entend par ``squelette''. En bref, un squelette est un ensemble minimal de fichiers qui indique à votre système FreeBSD comment compiler et installer proprement un programme. Chaque squelette contient:

Certains logiciels portés utilisent d'autres fichiers, comme pkg-message. Le catalogue des logiciels portés utilise ces fichiers pour faire face à certaines situations spéciales. Si vous désirez plus de détails au sujet de ces fichiers, et sur les logiciels portés en général, consultez le Manuel du développeur de logiciels portés.

Le logiciel porté contient les instructions pour compiler le code source, mais ne contient pas le code source. Vous pouvez obtenir le code source à partie d'un CDROM ou de l'Internet. Le code source est distribué de la façon dont l'auteur le désire. Fréquemment c'est une archive tar compressée avec gzip, mais elle pourra être compressée avec un autre outil ou même non compressée. Le code source d'un programme, peu importe la forme sous laquelle il est distribué, est appelé un fichier ``distfile''. Les deux méthodes pour l'installation d'un logiciel porté pour FreeBSD sont décrites ci-dessous.

Note : Vous devez avoir ouvert une session sous l'utilisateur root pour installer des logiciels portés.

Avertissement : Avant d'installer un logiciel porté, vous devez vous assurer d'avoir un catalogue des logiciels portés à jour et vous devez consulter http://vuxml.freebsd.org/ pour les problèmes de sécurité relatifs à votre logiciel.

Un contrôle des problèmes de sécurité peut être effectué automatiquement par portaudit avant toute nouvelle installation d'application. Cet outil peut être trouvé dans le catalogue des logiciels porté (security/portaudit). Vous pouvez lancer portaudit -F avant l'installation d'un nouveau logiciel porté, pour télécharger la base de données actuallisée des vulnérabilités. Un audit de sécurité et une mise à jour de la base de données sera effectuée lors du contrôle quotidien de sécurité de la machine. Pour plus d'informations, lisez les pages de manuel portaudit(1) et periodic(8).

4.5.2.1. Installer des logiciels portés à partir d'un CDROM

Les images des CDROM officiels du Projet FreeBSD ne contiennent plus les distfiles. Ils prennent beaucoup d'espace qui est bien mieux utilisé par les logiciels pré-compilés. Les CDROMs comme ceux du FreeBSD PowerPak inclus les distfiles, et vous pouvez les commander auprès d'un vendeur comme FreeBSD Mall. Cette section suppose que vous disposez d'un tel jeu de CDROM.

Placez votre CDROM FreeBSD dans le lecteur. Montez-le sur /cdrom (Si vous utilisez un point de montage différent, positionnez la variable CD_MOUNTPTS). Pour commencer, rendez-vous dans le répertoire du logiciel porté que vous voulez installer:

# cd /usr/ports/sysutils/lsof

Une fois à l'intérieur du répertoire lsof vous verrez le squelette du logiciel porté. L'étape suivante est de compiler (également appelé la ``construction'') le logiciel porté. Cela est fait en tapant simplement make à l'invite. Une fois que c'est fait, vous devriez voir quelque chose comme ceci:

# make
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from file:/cdrom/ports/distfiles/.
===>  Extracting for lsof-4.57
...
[extraction output snipped]
...
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
===>  Patching for lsof-4.57
===>  Applying FreeBSD patches for lsof-4.57
===>  Configuring for lsof-4.57
...
[configure output snipped]
...
===>  Building for lsof-4.57
...
[compilation output snipped]
...
#

Notez qu'une fois la compilation terminée, vous vous retrouvez face à l'invite. L'étape suivante est d'installer le logiciel porté. Afin de l'installer, vous devez juste ajouter un mot à la commande make, et ce mot est install:

# make install
===>  Installing for lsof-4.57
...
[installation output snipped]
...
===>   Generating temporary packing list
===>   Compressing manual pages for lsof-4.57
===>   Registering installation for lsof-4.57
===>  SECURITY NOTE:
      This port has installed the following binaries which execute with
      increased privileges.
#

Une fois de retour à l'invite, vous devriez être en mesure d'exécuter l'application que vous venez juste d'installer. Comme lsof est un programme qui tourne avec des privilèges accrus, un avertissement sur la sécurité est affiché. Durant la compilation et l'installation de logiciels portés, vous devriez faire attention à tout avertissement qui pourrait apparaître.

Note : Vous pouvez vous économiser une étape supplémentaire en lançant juste make install à la place de make et make install sous forme de deux étapes séparées.

Note : Certains interpréteurs de commandes maintiennent un cache des commandes qui sont disponibles dans les répertoires listés dans la variable d'environnement PATH, pour accélérer les opérations de recherche des fichiers exécutables de ces commandes. Si vous utilisez un de ces interpréteurs de commandes, vous pourrez avoir à utiliser la commande rehash après l'installation d'un logiciel porté, avant que la commande fraîchement installée ne puisse être utilisée. Cette commande fonctionnera pour les interpréteurs de commandes comme tcsh. Utilisez la commande hash -r pour les interpréteurs tels que sh ou shells/bash. Consultez la documentation de votre interpréteur de commandes pour plus d'information.

Note : Soyez conscient que les licences de quelques logiciels portés ne permettent pas leur présence sur le CDROM. Cela peut être dû à la nécessité de remplir un formulaire d'enregistrement avant le téléchargement, ou que la redistribution n'est pas permise, ou toute autre raison. Si vous désirez installer un logiciel porté qui n'est pas disponible sur le CDROM, vous devrez vous connecter afin d'effectuer cela (voir la section suivante).

4.5.2.2. Installer des logiciels portés à partir d'Internet

Comme pour la section précédente, cette section suppose que vous avez une connexion internet qui fonctionne. Si ce n'est pas le cas, vous devrez effectuer l'installation par CDROM, ou mettre manuellement une copie des sources dans le répertoire /usr/ports/distfiles.

L'installation d'un logiciel porté à partir d'Internet est effectuée de la même manière que si vous installiez à partir d'un CDROM. La seule différence entre les deux est que le distfile est téléchargé sur Internet plutôt qu'obtenu sur le CDROM.

Les étapes impliquées sont identiques:

# make install
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.
Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100%
439860 bytes transferred in 18.0 seconds (23.90 kBps)
===>  Extracting for lsof-4.57
...
[extraction output snipped]
...
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
===>  Patching for lsof-4.57
===>  Applying FreeBSD patches for lsof-4.57
===>  Configuring for lsof-4.57
...
[configure output snipped]
...
===>  Building for lsof-4.57
...
[compilation output snipped]
...
===>  Installing for lsof-4.57
...
[installation output snipped]
...
===>   Generating temporary packing list
===>   Compressing manual pages for lsof-4.57
===>   Registering installation for lsof-4.57
===>  SECURITY NOTE:
      This port has installed the following binaries which execute with
      increased privileges.
#

Comme vous pouvez le voir, la seule différence est la ligne qui indique où le système a récupéré les sources du logiciel porté.

Le catalogue des logiciels portés utilise fetch(1) pour télécharger les fichiers, qui respecte diverses variables d'environnement, dont FTP_PASSIVE_MODE, FTP_PROXY, et FTP_PASSWORD. Il se peut que vous ayez besoin de configurer une ou plusieurs de ces dernières si vous êtes derrière un coupe-feu, ou devez utiliser un proxy FTP/HTTP. Consultez la page de manuel fetch(3) pour la liste complète des variables.

Pour les utilisateurs qui ne peuvent rester connectés à l'Internet indéfiniment, il existe la commande make fetch. Exécutez cette commande à la base du catalogue des logiciels portés (/usr/ports) et les fichiers nécessaires seront téléchargés. Cette commande fonctionnera également dans les sous-répertoires du catalogue, par exemple: /usr/ports/net. Notez que si un logiciel porté dépend de bibliothèques particulières ou d'autres logiciels portés, cette commande de récupérera pas les sources de ces logiciels. Remplacez fetch par fetch-recursive si vous voulez récupérer également les sources des logiciels dont dépend un logiciel porté.

Note : Vous pouvez compiler tous les logiciels d'une catégorie ou de l'ensemble du catalogue en exécutant la commande make dans un répertoire de base, juste comme la commande make fetch précédente. C'est, cependant, une idée dangereuse étant donné que certains logiciels portés ne peuvent coexister. Dans d'autres cas, certains logiciels portés peuvent installer des fichiers différents ayant le même nom.

Dans de rares cas les utilisateurs peuvent vouloir récupérer les archives à partir d'un site différent du MASTER_SITES par défaut (l'emplacement par défaut à partir duquel les fichiers sont téléchargés). Vous pouvez surcharger l'option MASTER_SITES avec la commande suivante:

# cd /usr/ports/répertoire
# make MASTER_SITE_OVERRIDE= \
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch

Dans cet exemple nous modifions la valeur par défaut de l'option MASTER_SITES pour ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.

Note : Certains logiciels portés autorisent (ou même nécessitent) des options de compilation qui permettent l'activation/désactivation de parties de l'application qui ne sont pas nécessaires, de certaines options de sécurité, et autres personnalisations. Quelques noms de logiciels viennent immédiatement à l'esprit: www/mozilla, security/gpgme, et mail/sylpheed-claws. Un message sera affiché quand de telles options sont disponibles.

4.5.2.3. Modifier les répertoires par défaut des logiciels portés

Il est parfois utile (ou obligatoire) d'utiliser des répertoires différents pour les archives et le catalogue des logiciels portés. Les variables PORTSDIR et PREFIX permettent de modifier les répertoires par défaut. Par exemple:

# make PORTSDIR=/usr/home/example/ports install

compilera le logiciel dans le répertoire /usr/home/example/ports et installera tout dans /usr/local.

# make PREFIX=/usr/home/example/local install

le compilera dans /usr/ports et l'installera dans /usr/home/example/local.

Et bien sûr

# make PORTSDIR=../ports PREFIX=../local install

combinera les deux (c'est trop long pour tenir sur cette page, mais cela devrait vous donner une idée générale).

Alternativement, ces variables peuvent également être configurées dans votre environnement. Consultez la page de manuel de votre interpréteur de commandes pour des instructions sur la procédure à suivre.

4.5.2.4. Travailler avec imake

Certains logiciels portés qui utilisent imake (une partie du système X Window) ne fonctionnent pas correctement avec la variable PREFIX, et insisteront pour s'installer sous /usr/X11R6. De façon similaire, certains logiciels Perl ignorent PREFIX et s'installent dans l'arborescence Perl. Faire en sorte que ces logiciels portés respectent PREFIX est une tâche difficile voire impossible.

4.5.3. Supprimer des logiciels portés installés

Maintenant que vous savez comment installer des logiciels portés, vous vous demandez probablement comment les effacer, juste au cas où vous en installez un et plus tard vous vous apercevez que vous n'avez pas installé le bon logiciel porté. Nous désinstallerons notre exemple précédent (qui était lsof pour ceux d'entre vous qui n'ont pas suivi). Comme pour l'installation de logiciels portés, la première chose que vous devez faire et de vous rendre dans le répertoire du logiciel porté, /usr/ports/sysutils/lsof. Après avoir changé de répertoire, vous êtes prêt pour désinstaller lsof. C'est fait grâce à la commande make deinstall:

# cd /usr/ports/sysutils/lsof
# make deinstall
===>  Deinstalling for lsof-4.57

C'était relativement facile. Vous avez retiré lsof de votre système. Si vous désirez le réinstaller, vous pouvez le faire en lançant make reinstall depuis le répertoire /usr/ports/sysutils/lsof.

La séquence make deinstall et make reinstall ne fonctionnera pas une fois que vous avez lancé make clean. Si vous voulez déinstaller un logiciel porté après le nettoyage, utilisez pkg_delete(1) comme décrit dans la section Utiliser le système des logiciels pré-compilés du Manuel.

4.5.4. Logiciels portés et espace disque

A la longue, l'utilisation du catalogue des logiciels portés consommera rapidement votre espace disque. En raison de cette tendance du catalogue des logiciels portés à augmenter en taille, après la compilation et l'installation de logiciels à partir des logiciels portés devriez toujours penser à nettoyer les répertoires de travail en utilisant la commande make clean. Cela effacera le répertoire work après la compilation et l'installation d'un logiciel porté. Vous pouvez également supprimer les sources du répertoire distfiles, et supprimer les ports installés quand ils sont devenus inutiles.

Certains utilisateurs choisissent de limiter le nombre de catégories disponibles dans le catalogue des logiciels portés en plaçant des entrées dans le fichier refuse. De cette façon quand ils lanceront CVSup, ce dernier ne récupérera pas les fichiers des catégories mentionnées dans ce fichier. Plus d'information concerant le fichier refuse peut être trouvée dans Section A.5.3.1.

4.5.5. Mise à jour des logiciels portés

Note : Une fois que vous avez mis à jour le catalogue des logiciels portés, avant de tenter la mise à jour d'un logiciel porté, vous devrez consulter le fichier /usr/ports/UPDATING. Ce fichier décrit les problèmes divers et les étapes supplémentaires que les utilisateurs pourront rencontrer ou devront exécuter quand lors de la mise à jour un logiciel porté.

Maintenir à jour vos logiciels portés peut être un travail pénible. Par exemple, pour mettre à jour un logiciel vous iriez dans le répertoire du logiciel porté, compileriez le logiciel, désinstalleriez l'ancienne version, installeriez la nouvelle version, et puis finalement vous feriez le ``ménage'' dans le répertoire du logiciel porté. Imaginez faire cela pour cinq logiciels, pénible n'est-ce pas? C'était un problème important dans le passé pour les administateurs système, mais maintenant nous disposons d'utilitaires se chargeant à notre place de ce travail. Par exemple l'utilitaire sysutils/portupgrade s'occupera de tout à votre place! Installez-le comme vous le feriez pour tout autre logiciel porté en utilisant la commande make install clean.

Créez maintenant la base de données avec la commande pkgdb -F. Une recherche des logiciels portés installés sera effectuée ainsi que la création d'un fichier de base de données dans le répertoire /var/db/pkg. Maintenant, si vous exécutez portupgrade -a, le programme lira la base de données et le fichier INDEX des logiciels portés. Puis portupgrade commencera le téléchargement, la compilation, la sauvegarde, l'installation, et le nettoyage des logiciels portés qui doivent être mis à jour. Le programme portupgrade propose de nombreuses options pour les différents cas de figure, les plus importants étant présentés plus bas.

Si vous désirez mettre à jour une application particulière et non pas la base de données complète, utilisez la commande portupgrade nom_application, ajoutez les indicateurs -r si portupgrade doit mettre à jour également toutes les applications dépendantes de l'application donnée, et -R pour également mettre à jour les applications nécessaires à l'application donnée.

Pour utiliser les versions pré-compilées plutôt que les logiciels portés pour l'installation, utilisez l'option -P. Avec cette option portupgrade cherche les répertoires locaux listé dans la variable PKG_PATH, ou récupère les paquetages à partir d'un site distant s'ils ne sont pas trouvés localement. Si les paquetages ne peuvent pas être trouvés localement ou récupérés à distance, portupgrade utilisera les logiciels portés. Pour éviter l'usage des logiciels portés, spécifiez l'option -PP.

Pour juste récupérer les sources (ou les paquetages, si l'option -P est utilisée) sans compiler ni installer quelque chose, utilisez -F. Pour plus d'informations consultez la page de manuel portupgrade(1).

Note : Il est important de mettre à jour régulièrement la base de données en utilisant pkgdb -F pour en corriger les inconsistances, tout particulièrement quand portupgrade vous le demande. Ne stoppez pas portupgrade quand il met à jour la base de données des applications installées, cela laisserait la base de données dans un état inconsistant.

Il existe d'autres utilitaires en mesure d'effectuer ce travail, consultez le répertoire ports/sysutils à ce sujet.

Ce document, ainsi que d'autres peut être téléchargé sur ftp.FreeBSD.org/pub/FreeBSD/doc/.

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:14