Les systèmes d'exploitation modernes vous offrent des méthodes simples pour configurer de nouvelles applications. Ceux-ci incluent des packages d'installation automatisés ainsi que des commandes qui installent de nombreux logiciels à la fois. Mais que se passe-t-il réellement lorsque vous exécutez ce programme d'installation ou exécutez cette commande ?
Voyons comment les logiciels sont installés sur trois principales plates-formes de bureau :Windows, macOS et Linux.
Il existe plusieurs façons d'exécuter de nouvelles applications sur votre ordinateur. Par ordre de complexité croissante, il s'agit notamment :
Dans cet article, nous examinerons les packages d'installation, car la plupart des gestionnaires de logiciels/magasins traitent finalement ces types de packages dans les coulisses de toute façon. Pour les principales plates-formes de bureau d'aujourd'hui - Windows, macOS et Linux - nous examinerons ce qui constitue l'un de ces packages et ce qui se produit lorsque vous les installez.
Les packages d'installation que vous êtes susceptible de rencontrer pour Windows sont disponibles dans l'une des deux versions principales. Les fichiers exécutables (EXE) peuvent configurer votre programme en faisant le gros du travail consistant à placer les fichiers au bon endroit et à effectuer les mises à jour du registre Windows. Les packages Windows Installer (MSI) ajoutent à cela en fournissant des services standardisés tels que les désinstallations.
Vous pouvez inspecter le contenu des fichiers EXE ou MSI en ouvrant l'archive avec 7-Zip. Si vous l'utilisez pour consulter le programme d'installation EXE de 7-Zip, vous y trouverez un certain nombre de fichiers différents :
Bien que ces fichiers n'aient pas de dossier contenant dans le programme d'installation, le développeur aura pointé chacun vers un répertoire cible. La plupart d'entre eux se retrouvent dans "l'emplacement d'installation par défaut" - la même suggestion que vous voyez généralement pour un dossier comme "C:\Program Files\[nom du programme]" ou "C:\Program Files (x86)\[votre nouveau application]."
Lors de l'utilisation d'un outil sophistiqué comme InstallShield pour créer des packages d'installation, les développeurs d'applications peuvent personnaliser l'installation. Par exemple, ils peuvent désigner les versions de Windows sur lesquelles ils seront installés, configurer des raccourcis à créer dans le menu Démarrer et/ou sur le bureau, ou collecter des informations utilisateur telles que le nom, l'adresse, etc. L'exemple de projet InstallShield dans l'image ci-dessous montre l'écran permettant de définir si les clés de registre Windows doivent être créées ou mises à jour.
Avec InstallShield, les fichiers d'application et les autres personnalisations sont regroupés dans un setup.exe fichier. L'ouvrir avec 7-Zip montrera qu'il contient un package MSI qui, lorsqu'il est exécuté, ressemble à l'installation à laquelle nous sommes tous habitués. Passons en revue ce qui se passe pendant ce processus.
Un programme d'installation suivra les étapes suivantes pour configurer votre application en vue de son utilisation (dont l'ordre précis peut varier en fonction des personnalisations du développeur) :
Ce processus peut sembler complexe par rapport au prochain système d'exploitation de la liste. Jetons un coup d'œil à l'installation de logiciels sur macOS.
Les installateurs Windows ont beaucoup à faire sous le capot. Mais si vous avez utilisé un Mac, vous savez que l'installation d'une application est souvent aussi simple que de télécharger une copie de l'application, d'ouvrir l'image disque (DMG) et de suivre quelques instructions simples. Parfois, le téléchargement vous propose même un "Faites glisser ici!" icône.
Plongeons-nous dans le bundle APP ainsi que dans son homologue le programme d'installation de PKG.
Le fichier APP sur la surface est en fait plus simple que Windows pour deux raisons principales. Premièrement, c'est un dossier standard. La seule différence est qu'il se termine par un suffixe ".APP". Si vous téléchargez l'un d'entre eux sous Windows, vous verrez qu'il s'affiche comme n'importe quel autre dossier de fichiers dans l'Explorateur. Deuxièmement, les fichiers APP exigent qu'absolument tout ce dont le programme a besoin soit inclus. Il n'y a pas de souci de dépendances manquantes avec ces types d'installateurs.
Ces bundles doivent contenir trois éléments dans un dossier appelé "Contents" :1) un fichier "Info.plist" contenant les métadonnées de l'application telles que le nom, la langue, le numéro de version, etc. ; 2) un répertoire "MacOS" contenant l'exécutable principal ; et 3) un répertoire "Ressources" qui contient les actifs dont l'application a besoin pour fonctionner (par exemple, une icône d'application). Il existe d'autres dossiers facultatifs tels que "Frameworks" (ensembles de fonctionnalités qui ne sont pas spécifiques à l'application), "Plug-Ins" (fonctionnalité de l'application qui n'est pas nécessaire pour l'exécuter) et "SharedSupport" (données superflues telles que modèles).
En revanche, le format PKG est une combinaison d'un programme d'installation de type Windows avec une structure de type Unix. L'application 7-Zip ouvrira également un fichier PKG, qui est compressé en xar format. À l'intérieur se trouve une ou plusieurs charges utiles files, qui est aussi une archive. Pour extraire son contenu, utilisez la chaîne de commandes suivante (cpio est un format d'archive ainsi qu'un programme pour les manipuler) dans un Terminal Mac ou Linux :
cat Charge utile | gunzip-dc | cpio -i
Une fois cela fait, vous verrez une arborescence de répertoires familière de type Unix.
Dans l'exemple ci-dessous, j'ai utilisé le convertisseur de documents, Pandoc. Il inclut un binaire dans /usr/local/bin et de la documentation dans /usr/local/share/man . Comment ces choses se mettent-elles en place? Nous verrons comment chacun de ces éléments s'installe réellement sur votre Mac.
J'ai utilisé la version Windows de 7-Zip pour illustrer cela, plutôt que la version Linux uniquement en ligne de commande.
Lorsque vous déposez ce fichier APP dans votre dossier Applications, cela ne change pas grand-chose. N'oubliez pas que tout ce dont vous avez besoin pour exécuter le programme est autonome. La seule différence avec un glisser-déposer standard est que le fichier "Info.plist" est enregistré dans le système.
Cela configurera des éléments tels que l'exécutable appelé lorsque vous démarrez l'application, l'icône affichée, les types de fichiers pris en charge, etc. Mais sinon, votre application (telle que le package APP pour l'éditeur Atom illustré ci-dessous) est maintenant prête à être utilisée.
L'ouverture d'un fichier PKG, en revanche, lance un programme d'installation de type "assistant". Pour les programmes simples, il s'agit généralement d'un installateur de composants , qui passe généralement par les étapes suivantes :
Les développeurs peuvent ensuite combiner plusieurs composants en une seule archive de produit installer. Cela ajoute des options telles que l'affichage d'un CLUF que l'utilisateur doit accepter, la collecte d'informations auprès de l'utilisateur et la sélection des composants à installer. Pendant ce temps, Apple Installer s'occupe de tous les détails de l'installation des composants nécessaires un par un en arrière-plan.
En parlant d'installateurs basés sur Unix, nous passerons aux deux principaux formats de packages Linux dans la section suivante.
Ah, DEB contre RPM. L'une des grandes guerres de flammes, vaincue uniquement par des gens comme vi contre emacs ou KDE contre GNOME. Pourtant, ces formats sont plus similaires que différents. Jetons un coup d'œil.
Pour jeter un œil à l'intérieur d'un fichier DEB, vous pouvez essayer un gestionnaire d'archives graphique. Sinon, utilisez le ar commander. La commande suivante saisie dans le terminal extraira le contenu d'un paquet Debian :
ar -x nom-de-votre-paquet.deb
Trois fichiers en sortiront :
Dans Fedora, vous pouvez utiliser le rpm2cpio et cpio commandes pour extraire un package RPM et parcourir leurs fichiers :
rpm2cpio nom-de-votre-paquet.rpm | cpio-idvm
Pour le package kde-cli-tools-5.9.4-2.fc26.x86_64.rpm, vous verrez une arborescence de fichiers similaire au package DEB. Mais il ne fournit pas les métadonnées, du moins pas dans le binaire emballer. Vous devrez télécharger le RPM source (.SRC.RPM) correspondant à votre version binaire, puis utiliser la même commande ci-dessus sur ce fichier. Inclus dans cela sera un fichier SPEC qui contient plusieurs des mêmes éléments que le Contrôle fichier dans un paquet Debian.
Maintenant que nous comprenons la structure des packages Linux, explorons ce qui se passe lorsque vous les installez réellement.
Lorsque vous installez des packages de l'un ou l'autre format, quel que soit le frontal, un ensemble d'étapes similaires se produit :
Étant donné que les développeurs de systèmes d'exploitation et des logiciels qui les exécutent font un excellent travail pour faciliter l'installation des logiciels, vous n'avez pas vraiment besoin de prêter attention aux détails. Mais avoir des connaissances sur ce qui se passe dans les coulisses vous donnera une certaine tranquillité d'esprit quant à ce qui est installé sur votre système, ainsi qu'une aide au dépannage.
Combien de méthodes d'installation de logiciels ci-dessus avez-vous utilisées ? Préférez-vous DEB ou RPM ? Ou les bundles APP de Mac représentent-ils le summum de la facilité d'utilisation ? Avez-vous déjà eu une installation cauchemardesque ? Faites-le nous savoir dans les commentaires ci-dessous !