Présentation
pkgsrc est le gestionnaire de paquets officiel de NetBSD. Conçu à l’origine comme un fork de la collection Ports de FreeBSD, il a été étendu pour fonctionner sur Linux, macOS et Solaris grâce à la philosophie de portabilité de NetBSD. Le système propose à la fois des paquets binaires et la construction à partir du code source, ce qui le rend utilisable sur tout système d’exploitation supporté.
Le catalogue de pkgsrc couvre plusieurs dizaines de milliers de logiciels et s’adapte à toutes les architectures CPU reconnues par NetBSD, dont x86, ARM et PowerPC. Cette portée universelle permet à un même environnement de construction de produire des paquets pour des machines très différentes sans modification du flux de travail.
Architecture et mécanismes de construction
Chaque logiciel disponible dans pkgsrc est décrit par un Makefile dédié. Ce fichier indique l’URL de téléchargement du tarball (« distfile »), les correctifs éventuels, les dépendances et les étapes de compilation. La compilation s’appuie sur les outils standards du système (make, gcc ou clang) et ne nécessite pas la présence du dépôt VCS du projet.
Le Makefile encode également les variables d’environnement spécifiques à la construction, ce qui garantit que chaque paquet suit le même protocole de build. Le processus reste décentralisé : chaque paquet récupère son code depuis le serveur d’origine ou un miroir alternatif indiqué dans le fichier.
Isolation du système et mode non privilégié
Par défaut, pkgsrc installe ses fichiers sous /usr/pkg, créant une arborescence indépendante (/usr/pkg/bin, /usr/pkg/lib, …). Cette séparation empêche la pollution du répertoire racine (/bin, /lib) et facilite la désinstallation sélective.
En mode non privilégié, l’utilisateur définit PKG_DBDIR=~/pkg ou PKGSRCDIR=~/pkg. Le gestionnaire écrit alors toutes les données dans le répertoire personnel, éliminant le besoin de droits sudo. Cette approche convient aux environnements partagés, aux comptes à privilèges limités et aux machines de développement où l’on souhaite un userland totalement isolé.
Gestion des sources, miroirs et utilisation hors ligne
Le processus de récupération des sources repose sur la variable MASTER_SITE_OVERRIDE. En la pointant vers un serveur interne, il est possible de forcer pkgsrc à télécharger les distfiles depuis un miroir local. Cette fonctionnalité permet de pré‑télécharger l’ensemble du catalogue, de créer un dépôt complet et de construire les paquets même sans connexion Internet.
Chaque Makefile peut spécifier plusieurs miroirs de secours, réduisant le risque d’indisponibilité d’un site unique. En combinant un miroir complet avec le mode non privilégié, on obtient une chaîne d’approvisionnement totalement autonome, adaptée aux réseaux à bande passante limitée ou aux scénarios de continuité d’activité.