DragonFlyBSD était à l’origine basé sur un système de pkgsrc (provenant de NetBSD). Depuis la version 3.4 de DragonFly, la distribution a porté le système de ports de FreeBSD, nommés dports.
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 DragonFlyBSD. Celui-ci est réparti en catégories (databases, www, converters…)
DragonFlyBSD se base sur git afin de mettre à jour l’arbre de ports. Afin d’extraire le premier snapshot, nous allons utiliser la commande suivante:
cd /usr
make dports-create-shallow
Cette commande aura pour effet de cloner le repository git des dports dans le répertoire /usr/dports. Vous noterez que celui-ci est hébergé sur github
Pour mettre à jour l’arbre de port la méthode est la suivante
cd /usr/dports
git pull
Visualiser la liste des ports installé, vous devez utiliser l’outil pkg.
pkg info
Pour installer un port il faut aller dans son répertoire et taper make install clean
cd /usr/dports/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.
En cas d’erreur d’options de compilation, ou le besoin d’ajout de fonctions, tapez la commande suivante:
make config
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/dports/port-mgmt/portmaster
make install clean
Pour mettre à jour les ports il suffit de taper
portmaster -a
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
Une seule commande suffit (elle ne supprime pas les fichiers de configuration)
make deinstall
Une seconde méthode consiste à utiliser la commande pkg en supprimant le package et la version qui vont bien. Cette méthode a le mérite d’être plus propre, gérant les dépendances.
pkg delete zsh-5.0.2