Collection de ports

Les collections de ports (ou arbres de ports, ou simplement ports) sont des ensembles de makefiles et de correctifs fournis par les systèmes d'exploitation dérivés de BSDFreeBSD, NetBSD et OpenBSD — offrant une méthode simple pour installer des logiciels ou créer des paquets binaires. Ils constituent généralement la base d'un système de gestion de paquets : les ports prennent en charge la création des paquets, tandis que des outils annexes gèrent leur suppression, leur mise à jour et d'autres tâches. Outre les systèmes BSD, quelques distributions Linux ont mis en place une infrastructure similaire, notamment Portage (en) pour Gentoo, l'Arch Build System (ABS) pour Arch, les Ports pour Crux Linux et les Templates pour Void Linux.

Le principal avantage du système de « ports » par rapport à un modèle de distribution binaire est que l'installation peut être personnalisée et optimisée en fonction des ressources disponibles. Par exemple, l'administrateur système peut facilement installer une version 32 bits d'un paquet si la version 64 bits n'est pas disponible ou n'est pas optimisée pour la machine en question. À l'inverse, le principal inconvénient réside dans le temps de compilation, qui peut être considérable. Ainsi, une installation complète d'un système FreeBSD via les ports peut prendre plusieurs jours, selon le matériel utilisé.

Ports FreeBSD

Jordan Hubbard a intégré ses macros de construction de ports (« port make macros ») au dépôt CVS de FreeBSD le [1]. Le Makefile de sa suite d'installation de paquets avait été intégré un an plus tôt (le )[2]. L'infrastructure centrale des ports a d'abord été maintenue par Hubbard et Satoshi Asami pendant plusieurs années. L'équipe de gestion des ports (Ports Management Team) a été constituée par la suite pour prendre en charge cette tâche.

pkgsrc de NetBSD

La collection de ports pkgsrc de NetBSD se distingue par sa portabilité et sa capacité à fonctionner sur divers systèmes d'exploitation autres que NetBSD lui-même, notamment les autres systèmes BSD, SmartOS/illumos, macOS[3], Minix 3 (en), Linux[4] et d'autres systèmes de type Unix. Créé en en s'inspirant du système de ports existant de FreeBSD, pkgsrc suit un calendrier de publication trimestriel et comptait plus de 22 000 paquets en . Lors de la sortie de la version 1.4, DragonFly BSD avait annoncé l'adoption de pkgsrc comme système officiel de gestion de paquets[5]. Toutefois, avec la version 3.4[6], le projet a développé sa propre implémentation de ports baptisée « dports » et a basculé intégralement vers celle-ci avec la version 3.6. Le développement s'effectue via leur dépôt Git[7].

Ports d'OpenBSD

Contrairement aux ports FreeBSD (en), sur lequel il était initialement fondé, le système de ports d'OpenBSD est conçu comme une source destinée à générer le produit final : les paquets. Ainsi, l'installation d'un port consiste d'abord à créer un paquet, puis à l'installer. Les ports se composent d'un fichier makefile, de fichiers texte contenant des descriptions et des messages d'installation, des éventuels correctifs (patches) nécessaires pour adapter le programme à OpenBSD, ainsi que d'une liste de fichiers (packing list) indiquant les éléments à inclure dans les paquets. L'arborescence des ports s'appuie sur un ensemble de makefiles standard — dont certains sont partagés avec l'arborescence des sources — pour assurer l'essentiel de ses fonctionnalités ; cette infrastructure commune inclut de nombreuses fonctions utilitaires destinées aux développeurs de ports, ce qui permet souvent de créer ces derniers très simplement.

Fin , Nikolay Sturm, développeur OpenBSD, a annoncé que l'arborescence des ports « -stable » devait être considérée comme n'étant plus maintenue, faute de ressources suffisantes. Cette situation contraignait de fait les utilisateurs à employer les arborescences « -current » (pour les ports comme pour le système de base) afin de pouvoir bénéficier des mises à jour de sécurité. En 2009, il a été décidé de relancer l'arborescence des ports « -stable » sous la supervision de Robert Nagy et Jasper Lievisse Adriaanse[8].

Il existe trois sites web non officiels proposant une liste des ports et paquets OpenBSD :

  • openports.pl[9]
  • openports.se[10], initialement annoncé sous le nom de ports.openbsd.nu en 2006[11], était un site web développé sur mesure qui analysait lui-même la structure de l'arborescence des ports ainsi que les mises à jour. Bien qu'il offrît une fonctionnalité de suivi des modifications pour un port donné, il présentait la lacune de ne pas prendre en charge certaines logiques de Makefile complexes ; il omettait ainsi environ 15 % des paquets nécessitant une connaissance approfondie de la structure de l'arborescence des ports et l'utilisation des outils officiels[12]. Le projet a été abandonné en [13].
  • ports.su[14], annoncé en et basé sur la base de données officielle sqlports[15], il dispose ainsi d'une collection complète de tous les paquets et variantes disponibles pour la plateforme AMD64. S'appuyant sur les outils officiels, il permet d'accéder facilement aux catégories « virtuelles » (non principales) ainsi qu'aux informations concernant les bibliothèques et les dépendances de compilation et d'exécution. Le code source du site web repose largement sur le port « ports-readmes » et est disponible sur GitHub. Le projet n'est plus mis à jour depuis novembre 2018.

Voir aussi

Références

  1. (en) « CVS log for ports/Mk/bsd.port.mk », sur www.freebsd.org (consulté le )
  2. (en) « CVS log for src/usr.sbin/pkg_install/Makefile », sur www.freebsd.org (consulté le )
  3. (en) « Joyent Packages Documentation - Install On macOS » [archive du ], sur pkgsrc.joyent.com (consulté le )
  4. (en) « Joyent Packages Documentation - Install On Linux » [archive du ], sur pkgsrc.joyent.com (consulté le )
  5. (en) Matthew Dillon, « PKGSRC will be officially supported as of the next release » [archive du ], sur www.dragonflybsd.org (consulté le )
  6. (en) Justin Sherrill, « DragonFly 3.4 release planning » [archive du ], sur www.dragonflybsd.org (consulté le )
  7. (en) « GitHub - DragonFlyBSD/DPorts: The dedicated application build system for DragonFly BSD » [archive du ], sur GitHub (consulté le )
  8. (en) William Yodlowsky, « 4.6-stable ports » [archive du ] (consulté le )
  9. « OpenBSD Ports Readme », sur openports.pl (consulté le )
  10. (en) « OpenPorts.se | The OpenBSD package collection » [archive du ], sur openports.se (consulté le )
  11. (en) « ports.openbsd.nu - frontend to ports », OpenBSD Journal,‎ (lire en ligne [archive du ], consulté le )
  12. (en) Marc Espie, « Re: Why is there no pkg_find(1)? » [archive du ], sur marc.info, (consulté le )
  13. (en) « Time to say goodbye » [archive], (consulté le )
  14. « OpenBSD ports ∴ categories », sur ports.su (consulté le )
  15. (en) « Introducing ports.su — ports-readmes mirror and ports search », OpenBSD Journal,‎ (lire en ligne [archive du ], consulté le )

Liens externes

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.