Pkgsrc
pkgsrc est un gestionnaire de paquets portable pour les systèmes d'exploitation de type Unix. C'est le gestionnaire de paquets par défaut pour NetBSD, SmartOS et Minix 3[2].
Première version | |
---|---|
Dernière version | 2024Q3 ()[1] |
Dépôt | github.com/NetBSD/pkgsrc.git |
Écrit en | C |
Système d'exploitation | Type Unix |
Type | Gestionnaire de paquets |
Licence | Licence BSD |
Documentation | www.netbsd.org/docs/pkgsrc |
Site web | www.pkgsrc.org |
Présentation
modifierUne des particularités de pkgsrc est d'être portable et de permettre de créer des paquets binaires pour 23 systèmes d'exploitation différents[3] dont la liste est donnée dans #Plateformes supportées.
pkgsrc contient actuellement plus de 26 000 paquets qui permettent de fournir des logiciels open source parmi les plus populaires.
pkgsrc est principalement basé sur l'utilisation d'un dérivé de NetBSD make et utilise un ensemble de fichiers appelés makefile pour construire de manière portable un paquet binaire à partir des sources téléchargés.
Installation de paquets
modifierIl existe plusieurs façons d'installer des programmes à l'aide de pkgsrc :
- Un utilitaire bootstrap contient un ensemble de paquets qui sont construits pour permettre de compiler les logiciels à partir des sources.
- Des packages binaires peuvent être installés depuis une source locale ou distante via les outils pkg_add et pkg_delete.
- Un utilitaire de haut niveau nommé pkgin[4] existe également et est conçu pour automatiser l'installation, la suppression et la mise à jour des paquets binaires d'une manière similaire à l'Advanced Packaging Tool de Debian[5].
Structuration d'un paquet
modifierUn paquet est structuré avec un ensemble de fichiers dont notamment :
- DESCR qui est un fichier texte décrivant le logiciel
- distinfo qui contient les sommes de contrôle des fichiers source nécessaires à la construction du paquet
- PLIST qui contient la liste des fichiers installés par le paquet
- Makefile qui définit les variables nécessaires à la construction et l'installation du paquet
DISTNAME= libmpdclient-2.20
PKGREVISION= 1
CATEGORIES= audio
MASTER_SITES= https://www.musicpd.org/download/libmpdclient/2/
EXTRACT_SUFX= .tar.xz
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= https://github.com/MusicPlayerDaemon/libmpdclient
COMMENT= Asynchronous API library for interfacing MPD
LICENSE= modified-bsd
LDFLAGS.SunOS+= -lsocket
PYTHON_FOR_BUILD_ONLY= tool
.include "../../devel/meson/build.mk"
.include "../../mk/bsd.pkg.mk"
Plateformes supportées
modifier
Plateforme | Date d'ajout |
---|---|
NetBSD | octobre 1997 |
Solaris | mars 1999 |
Linux | juin 1999 |
Darwin et macOS | octobre 2001 |
FreeBSD | novembre 2002 |
OpenBSD | novembre 2002 |
IRIX | décembre 2002 |
BSD/OS | décembre 2003 |
AIX | décembre 2003 |
Interix (pour Windows NT) | mars 2004 |
DragonFly BSD | octobre 2004 |
OSF/1 | novembre 2004 |
HP-UX | avril 2007 |
QNX | octobre 2007 |
Haïku | janvier 2010 |
MINIX3 | août 2010 |
MirBSD | janvier 2011 |
illumos et SmartOS | février 2011 |
Cygwin | mai 2013 |
GNU/kFreeBSD | juillet 2013 |
Bitrig | juin 2015 |
Histoire
modifierLe 3 octobre 1997, les développeurs Alistair Crooks et Hubert Feyrer créent pkgsrc[6] en se basant sur le catalogue de logiciels portés de FreeBSD. Leur objectif était de proposer un gestionnaire de paquets pour prendre en charge la collection des paquets NetBSD. Il a été officiellement publié dans NetBSD 1.3[7] le 4 janvier 1998. DragonFly BSD a utilisé pkgsrc comme système de paquets officiel de la version 1.4 en 2006 jusqu'à la version 3.4 en 2013[8],[9].
En 1999, la prise en charge par pkgsrc de Solaris a été ajoutée, suivie par la prise en charge d'autres systèmes d'exploitation[9].
Le 12 septembre 2017, une politique de message de validation adaptée au gestionnaire de version décentralisée a été établie par le projet[10].
De 2004 à 2019 s'est tenue la conférence technique pkgsrcCon dont l'objectif était de se faire rencontrer les développeurs, les contributeurs et les utilisateurs de pkgsrc[11].
Paquets
modifierLa Fondation NetBSD fournit des paquets binaires officiels prédéfinis pour plusieurs combinaisons de versions de NetBSD, d'architecture et de versions de pkgsrc[12],[13].
Plusieurs fournisseurs proposent des paquets binaires prédéfinis pour certaines plateformes :
- Depuis 2014 et jusqu'en 2022, l'entreprise Joyent a fourni des paquets binaires pour SmartOS / illumos, macOS et Red Hat Enterprise Linux[14]. Les paquets étaient fournis sur une base continue à partir du tronc (HEAD, dans la terminologie CVS) de pkgsrc, avec des mises à jour très régulières. De plus, des versions stables trimestrielles étaient également fournis pour la version SmartOS de Joyent[15].
- Depuis 2017, L'Université du Wisconsin-Milwaukee fournit des packages binaires pour NetBSD, Red Hat Enterprise Linux / CentOS et Darwin / macOS[16],[17]. Les packages sont uniquement construits à partir des versions trimestrielles de pkgsrc, ce qui facilite leur utilisation dans des expériences à long terme, où la stabilité et la reproductibilité des résultats sont essentielles.
- Depuis 2022, c'est MNX Cloud qui a pris la suite de Joyent pour fournir des paquets binaires pour SmartOS / Illumos[18], macOS[19], Linux[20] et NetBSD[21].
L'outil pbulk permet d'automatiser la construction de l'ensemble (ou d'un sous-ensemble défini) de la collection des paquets pour produire une distribution de paquets binaires[22],[23].
Notes et références
modifier- (en) Thomas Klausner, « pkgsrc-2024Q3 branch », (consulté le )
- (en) « MINIX 3 pkgsrc guide », (consulté le )
- (en) Jonathan Perkin, « Announcing the pkgsrc-2018Q3 release », NetBSD, (consulté le )
- (en) Emile Heitor, « pkgin, a tool to manage pkgsrc binary packages », (consulté le )
- Emile Heitor, « NetBSD a enfin son APT : un pkgin sans glace pour la 6 », Éditions Diamond, (consulté le )
- (en) « Alistair Crooks about the history, present state and future of pkgsrc », The NetBSD Foundation, Inc., (consulté le )
- (en) « Information about NetBSD 1.3 », The NetBSD Foundation, Inc., (consulté le )
- (en) Matthew Dillon, « PKGSRC will be officially supported as of the next release », (consulté le )
- (en) David Chisnall, « NetBSD: Not Just for Toasters », Prentice Hall Professional, (consulté le )
- (en) Thomas Klausner, « pkgsrc Commit Message Policy », NetBSD, (consulté le )
- (en) « pkgsrcCon » (consulté le )
- « Index des paquets de ftp.netbsd.org »
- « Index des paquets de nyftp.netbsd.org »
- (en) « Joyent's packages, available for SmartOS/Illumos, Linux, and OSX » [archive du ] (consulté le )
- « Index des paquets de joyent.com » [archive]
- « mirror1.hpc.uwm.edu/pkgsrc/ » (consulté le )
- « Software Management », University of Wisconsin–Milwaukee, High performance computing dept (consulté le )
- (en) « SmartOS Packages Documentation - Install on SmartOS/Illumos », MNX Cloud (consulté le )
- (en) « SmartOS Packages Documentation - Install on macOS », MNX Cloud (consulté le )
- (en) « SmartOS Packages Documentation - Install on Linux », MNX Cloud (consulté le )
- (en) « SmartOS Packages Documentation - Install on NetBSD », MNX Cloud (consulté le )
- (en) « Creating binary packages for everything in pkgsrc (bulk builds) », The NetBSD Foundation, Inc. (consulté le )
- (en) « Using pbulk to create a pkgsrc binary repository », The NetBSD Foundation, Inc. (consulté le )
Liens externes
modifier- (en) Site officiel
- (en) « pkgin, a binary package manager for pkgsrc »
- (en) « A web interface for pkgsrc »
- (en) « pkgsrc-wip (Work in Progress): a project to get more people actively involved with creating packages for pkgsrc »
- (en) « pkgsrc binary packages for SmartOS/Illumos, macOS, Linux and NetBSD »
- (en) « pkgsrc bulk build status »
- (en) « /r/pkgsrc »