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.
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…)
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.
Pour mettre à jour l’arbre de port rien de plus simple:
portsnap fetch update
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
Pour mettre à jour le système on dispose de la commande freebsd-update
freebsd-update fetch install
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
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>
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.
Une seule commande suffit (elle ne supprime pas les fichiers de configuration)
make deinstall
En cas d’erreur d’options de compilation, ou le besoin d’ajout de fonctions, tapez la commande suivante:
make config
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