Ports management

FreeBSD est basé sur un système de ports et de packages. Nous nous intéresserons dans ce tutoriel à la gestion des ports sous FreeBSD afin de savoir comment installer, utiliser, compiler et gérer les différents ports. La puissance de FreeBSD réside dans sa modularité au niveau des ports.

Utilisation courante

Arbre de ports

L’arbre de ports contient l’ensemble des logiciels. Il est essentiel au fonctionnement et à la mise à jour des services, afin de le faire proprement sous FreeBSD. Celui-ci est réparti en catégories (databases, www, converters…)

Rappatrier le snapshot principal des ports

La première commande intéressante est la commande portsnap. Cette commande permet de synchroniser le snapshot des ports FreeBSD avec l’arbre de la distribution. Ce snapshot est incrémentiel et contient l’arbre de ports complet.

portsnap fetch

Cette commande permet de rappatrier l’arbre de ports depuis le repository FreeBSD et de synchroniser l’archive locale.

portsnap extract

Cette commande permet d’extraire l’arbre de ports. Elle n’est à exécuter que lors de la première fois.

Mise à jour de l’arbre de ports

Pour mettre à jour l’arbre de port rien de plus simple:

portsnap fetch update

Gestion des mises à jour

Pour gérer les mises à jour il existe deux utilitaires très puissants: portupgrade et portmaster. Nous allons ici plutôt utiliser portmaster qui est plus pratique d’utilisation. Pour l’installer:

cd /usr/ports/port-mgmt/portmaster
make install clean

Pour mettre à jour les ports FreeBSD il suffit de taper

portmaster -a

Mise à jour du système

Pour mettre à jour le système on dispose de la commande freebsd-update

freebsd-update fetch install

Recompiler l’ensemble des ports

Il se peut que, suite à une migration de version d’OS vos services deviennent instables, il est d’ailleurs recommandé de le faire dans ce cas. Recompiler les ports en entier devient nécessaire

portmaster -af

Gestion d’un port

Rechercher un port

Pour recherche un port, il suffit de taper en root

whereis <nomduport>

Exemple:

whereis mysql55-server

Le chemin vers le port appraîtra ensuite. Si vous ne connaissez le nom du port tapez la suite de commandes suivante:

cd /usr/ports
make search name=<str>

Installer un port

Pour installer un port il faut aller dans son répertoire et taper make install clean

cd /usr/ports/databases/mysql55-server
make install clean

make va compiler, en ajoutant l’argument install il copie les fichiers binaires/libraires vers les répertoires du système et clean nettoie les fichiers de compilation afin de ne pas utiliser trop d’espace disque.

Pour certains ports, lors de la première compilation (ou lors du changement dans les options de compilation, suite à une mise à jour de l’arbre de ports), une fenêtre de configuration apparaîtra.

Désinstaller un port

Une seule commande suffit (elle ne supprime pas les fichiers de configuration)

make deinstall

Reconfigurer un port

En cas d’erreur d’options de compilation, ou le besoin d’ajout de fonctions, tapez la commande suivante:

make config

Problèmes connus

Si vous obtenez l’erreur suivante lors d’un portsnap fetch update

metadata is corrupt

il se peut que votre archive soit corrompue. Il faut donc supprimer l’arbre de ports et l’extraire de nouveau. Ceci ne supprime pas la configuration des ports

rm -R /var/db/portsnap/
portsnap fetch extract