En 2021, il y a plus de raisons que jamais pour lesquelles les gens aiment Linux. Dans cette série, je partagerai 21 raisons différentes d'utiliser Linux. Aujourd'hui, je vais parler de ce qui rend l'empaquetage pour Linux idéal pour les programmeurs.
Les programmeurs adorent programmer. Cela semble probablement être une affirmation évidente, mais il est important de comprendre que le développement de logiciels implique bien plus que la simple écriture de code. Il comprend la compilation, la documentation, la gestion du code source, les scripts d'installation, les paramètres de configuration par défaut, les fichiers de support, le format de livraison, etc. Passer d'un écran vide à un programme d'installation de logiciel livrable nécessite bien plus qu'une simple programmation, mais la plupart des programmeurs préfèrent programmer plutôt qu'empaqueter.
Qu'est-ce que l'emballage ?
Lorsque la nourriture est envoyée aux magasins pour être achetée, elle est emballée. Lorsque vous achetez directement auprès d'un agriculteur ou d'un magasin en vrac ou en bacs respectueux de l'environnement, l'emballage est le contenant que vous avez apporté avec vous. Lorsque vous achetez dans une épicerie, l'emballage peut être une boîte en carton, un sac en plastique, une boîte de conserve, etc.
Plus de ressources Linux
- Aide-mémoire des commandes Linux
- Aide-mémoire des commandes Linux avancées
- Cours en ligne gratuit :Présentation technique de RHEL
- Aide-mémoire sur le réseau Linux
- Aide-mémoire SELinux
- Aide-mémoire sur les commandes courantes de Linux
- Que sont les conteneurs Linux ?
- Nos derniers articles Linux
Lorsqu'un logiciel est mis à la disposition des utilisateurs d'ordinateurs en général, il doit également être conditionné. Comme pour la nourriture, il existe plusieurs manières de conditionner les logiciels. Les logiciels open source peuvent être laissés sans package car les utilisateurs, ayant accès au code brut, peuvent le compiler et le packager eux-mêmes. Cependant, les packages présentent des avantages, de sorte que les applications sont généralement livrées dans un format spécifique à la plate-forme de l'utilisateur. Et c'est là que les problèmes commencent, car il n'y a pas qu'un seul format pour les packages logiciels.
Pour l'utilisateur, les packages facilitent l'installation du logiciel car tout le travail est effectué par l'installateur du système. Le logiciel est extrait de son package et distribué aux endroits appropriés du système d'exploitation. Il y a peu de chances que quelque chose tourne mal.
Pour le développeur de logiciels, toutefois, le conditionnement signifie que vous devez apprendre à créer un package, et pas seulement un package, mais un package unique pour chaque système d'exploitation sur lequel vous souhaitez que votre logiciel soit installable. Pour compliquer les choses, il existe plusieurs formats et options de packaging pour chaque système d'exploitation, et parfois même pour le langage de programmation utilisé.
Packaging sous Linux
Les options d'empaquetage pour Linux ont traditionnellement semblé assez écrasantes. Les distributions Linux dérivées de Fedora, telles que Red Hat et CentOS, utilisent par défaut .rpm
paquets. Debian et Ubuntu (et similaires) utilisent par défaut .deb
paquets. D'autres distributions peuvent utiliser l'un ou l'autre, ou ni l'un ni l'autre, en optant pour un format personnalisé. Lorsqu'on leur demande, de nombreux utilisateurs de Linux disent qu'idéalement, un programmeur n'empaquetera pas du tout son logiciel pour Linux, mais s'appuiera plutôt sur les mainteneurs de paquets de chaque distribution pour créer le paquet. Tous les logiciels installés sur n'importe quel système Linux doivent provenir du référentiel officiel de cette distribution. Cependant, il reste difficile de savoir comment faire en sorte que votre logiciel soit empaqueté et inclus de manière fiable par une distribution, sans parler de toutes les distributions.
Flatpack pour Linux
Le système de packaging Flatpak a été introduit pour unifier et décentraliser Linux en tant que cible de livraison pour les développeurs. Avec Flatpak, un développeur ou n'importe qui (un membre d'une communauté Linux, un autre développeur, un membre de l'équipe Flatpak ou n'importe qui d'autre) est libre d'empaqueter des logiciels. Ils peuvent ensuite soumettre le package à Flathub ou choisir d'auto-héberger le package et de l'offrir à pratiquement n'importe quelle distribution Linux. Le système Flatpak est disponible pour toutes les distributions Linux, donc en cibler une revient à les cibler toutes.
Comment fonctionne la technologie Flatpak
Le secret de l'attrait universel de Flatpak est une base standard. Le système Flatpak permet aux développeurs de référencer un ensemble commun de modules SDK (Software Developer Kit). Ceux-ci sont empaquetés et gérés par les mainteneurs du système Flatpak. Les SDK sont intégrés au besoin chaque fois que vous installez un Flatpak, garantissant la compatibilité avec votre système. Un SDK donné n'est requis qu'une seule fois, car les bibliothèques qu'il contient peuvent être partagées entre tous les Flatpak qui l'appellent.
Si un développeur a besoin d'une bibliothèque qui n'est pas déjà incluse dans un SDK existant, le développeur peut ajouter cette bibliothèque dans le Flatpak.
Les résultats parlent d'eux-mêmes. Les utilisateurs peuvent installer des centaines de packages sur n'importe quelle distribution Linux à partir d'un référentiel central, appelé Flathub.
Comment les développeurs utilisent les Flatpaks
Les Flatpaks sont conçus pour être reproductibles, de sorte que le processus de construction est facilement intégré dans un flux de travail CI/CD. Un Flatpak est défini dans un fichier manifeste YAML ou JSON. Vous pouvez créer votre premier Flatpak en suivant mon article d'introduction, et vous pouvez lire la documentation complète sur docs.flatpak.org.
Linux facilite les choses
Créer un logiciel sur Linux est facile, et le conditionner pour Linux est simple et automatisable. Si vous êtes programmeur, Linux vous permet d'oublier facilement l'empaquetage en ciblant un système et en l'intégrant dans votre processus de construction.