Toutes les distributions Linux modernes organisent les logiciels dans des packages qui contiennent des binaires d'applications, des fichiers, des métadonnées et des informations sur les dépendances des packages, les conflits possibles avec d'autres packages, etc.>dnf , le gestionnaire de packages de niveau supérieur, capable de gérer les dépendances. Une technologie relativement récente, flatpak
, installons également des applications en bac à sable avec leurs runtimes.
Dans ce didacticiel, vous apprendrez :
- Les trois principales manières d'installer un paquet à l'aide de rpm
- Comment installer des packages à l'aide de dnf
- Comment installer des applications graphiquement à partir de l'utilitaire gnome-software
- Comment installer des applications en bac à sable avec flatpak
Le manuel du gestionnaire de paquets rpm
Configuration logicielle requise et conventions utilisées
Catégorie | Exigences, conventions ou version du logiciel utilisée |
---|---|
Système | RHEL 8/CentOS 8 |
Logiciel | Les utilitaires utilisés dans ce tutoriel sont installés par défaut, aucun logiciel supplémentaire n'est nécessaire. |
Autre | Autorisation d'exécuter la commande avec les privilèges root. |
Conventions | # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant sudo commande$ – nécessite que les commandes linux données soient exécutées en tant qu'utilisateur normal non privilégié |
Qu'est-ce qu'un forfait ?
Dans RHEL 8 / CentOS 8, comme dans toutes les distributions Linux modernes, les logiciels sont organisés en référentiels, sous forme de packages. Mais qu'est-ce qu'un package exactement ? Un paquet est essentiellement une archive compressée qui contient les fichiers associés à un logiciel spécifique, comme les binaires compilés et les bibliothèques, ainsi que des métadonnées et des instructions sur où et comment ces fichiers doivent être installés sur le système, les dépendances externes dont le logiciel a besoin pour fonctionner correctement et Suite. RHEL et CentOS utilisent le rpm
format de package qui a été inventé par Red Hat lui-même :dans ce didacticiel, nous verrons comment installer et gérer les packages rpm sur Red Hat Enterprise Linux 8.
RPM :le gestionnaire de paquets Red Hat et yum/dnf
Pour faciliter la gestion des packages rpm, le gestionnaire de packages rpm
a été créé. Bien que très puissant, il se concentre sur des packages uniques, il n'est donc pas capable de résoudre les dépendances. Pour gérer les relations entre les packages et éviter le fameux enfer des dépendances, commencez par yum
gestionnaire de paquets (Yellow Updater Modified) puis son évolution, dnf
(Dandifié YUM), ont été adoptés. Dnf a été introduit pour la première fois dans Fedora 18 et remplace yum dans la dernière version de Red Hat Enterprise Linux.
Installer un paquet avec rpm
L'une des opérations les plus élémentaires que nous pouvons effectuer avec rpm est l'installation d'un paquet. Comme dit précédemment, cela ne fonctionnera que si le paquet n'a pas de dépendances externes, puisque rpm n'est pas capable de le gérer. Il existe essentiellement trois façons d'installer un paquet avec rpm :elles correspondent respectivement au -i
, -U
et -F
options.
Pour installer un nouveau paquet, nous pouvons exécuter rpm avec le -i
option (abréviation de --installer
). La syntaxe est très simple :
$ sudo rpm -i packagename.rpm
Lorsque nous exécutons la commande ci-dessus, le package spécifié est installé uniquement s'il n'est pas déjà installé sur le système. Si nous essayons d'installer un package déjà installé (gedit dans ce cas), nous recevons une erreur :
$ sudo rpm -i gedit-3.28.1-3.el8.x86_64.rpm package gedit-2:3.28.1-3.el8.x86_64 is already installed
Notez qu'ici, pour le même "paquet", nous entendons la même version exacte. Cette méthode d'installation est celle qu'il est recommandé d'utiliser lors de l'installation d'un nouveau noyau :dans de telles situations, le nouveau noyau coexistera avec l'ancien, donc si quelque chose ne fonctionne pas comme prévu, il sera possible de les utiliser comme solution de secours.
Les choses se passent différemment lorsque nous utilisons le -U
option, qui est l'abréviation de --upgrade
. Dans ce cas, si un paquet n'existe pas déjà dans le système, il est installé; si une version précédente du package existe, le package est mis à niveau. Cela signifie qu'après l'installation de la nouvelle version du package, les anciennes sont supprimées. Comme nous l'avons dit plus haut, la mise à jour d'un logiciel fondamental comme le noyau en place est fortement déconseillée :il est préférable d'être absolument sûr que le nouveau noyau fonctionne comme prévu avant de supprimer les anciennes versions.
Le -F
(ou –freshen) fait quelque chose de différent. Lorsqu'il est utilisé, seuls les packages déjà existants sont mis à jour. Si une version précédente du package que nous essayons d'installer n'existe pas déjà dans notre système, elle n'est pas installée.
Installer un package à partir d'un emplacement distant
Avec tr/min
est également possible d'installer un paquet qui n'est pas sur notre système de fichiers local. Disons par exemple que nous voulons installer un paquet accessible via le protocole ftp; la commande à exécuter serait la suivante :
$ sudo rpm -i ftp://ftp.someaddress.com/package.rpm
Il est également possible de fournir un nom d'utilisateur et un mot de passe si une authentification est requise, en incluant ces informations dans l'adresse :
$ sudo rpm -i ftp://username:[email protected]/package.rpm
Installer un paquet avec dnf
Bien que dnf
fonctionne au-dessus de rpm, il fournit des fonctionnalités très utiles telles que la gestion des dépendances logicielles et la possibilité d'installer des logiciels à partir des référentiels de distribution. Les métadonnées stockées dans un package rpm, entre autres, spécifient quels autres packages doivent être installés pour que le logiciel fonctionne et, éventuellement, quels packages pourraient entrer en conflit avec lui. Dnf, ou se charge d'effectuer toutes les opérations nécessaires, après avoir reçu la confirmation de l'utilisateur. Disons par exemple que nous voulons installer le vim
paquet utilisant dnf ; nous courrions :
$ sudo dnf install vim
Après avoir exécuté la commande ci-dessus, les opérations à effectuer et la liste des dépendances à installer s'affichent à l'écran :
Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: vim-enhanced x86_64 2:8.0.1763-7.el8 rhel-8-for-x86_64-appstream-beta-rpms 1.4 M Installing dependencies: gpm-libs x86_64 1.20.7-15.el8 rhel-8-for-x86_64-appstream-beta-rpms 39 k vim-filesystem noarch 2:8.0.1763-7.el8 rhel-8-for-x86_64-appstream-beta-rpms 47 k vim-common x86_64 2:8.0.1763-7.el8 rhel-8-for-x86_64-appstream-beta-rpms 6.3 M Transaction Summary ================================================================================ Install 4 Packages Total download size: 7.8 M Installed size: 30 M Is this ok [y/N]:
Si vous exécutez dnf à partir d'un script destiné à s'exécuter sans surveillance, le -y
option (forme courte de --assumeyes
) peut être utilisé :de cette façon, toutes les réponses recevront automatiquement une réponse "oui", et une interaction de l'utilisateur sera requise.
Comme rpm, dnf installons un paquet situé sur une url distante; il suffit de préciser ce dernier :
$ sudo dnf install http://path/to/package.rpm
Installer un package graphiquement
Lors de l'exécution de GNOME
environnement de bureau, il est également possible d'installer un paquet graphiquement, en utilisant le gnome-software
application. Si le package existe dans les référentiels de distribution, nous pouvons simplement effectuer une recherche de l'application que nous voulons installer en utilisant le champ de recherche :
Interface de recherche du logiciel Gnome
Après cela, nous pouvons cliquer sur le bouton "installer" pour installer réellement l'application :
Interface d'installation du logiciel Gnome
Lors de l'installation d'un package avec cette méthode, une procédure différente est utilisée. Les applications gnome-software sont une interface pour packagekit
qui est lui-même une interface de haut niveau qui fonctionne comme une abstraction sur le gestionnaire de paquets natif d'une distribution :son objectif principal est d'uniformiser les installations sur différentes distributions. Il est également important de noter que les packages installés de cette manière n'apparaîtront pas dans l'historique dnf, car packagekit n'utilise pas ce dernier sous le capot.
Installer des logiciels avec des packs plats
Sur RHEL 8 / CentOS 8, une autre façon possible d'installer des logiciels, à la fois depuis l'application gnome-software ou depuis la ligne de commande, consiste à utiliser des flatpacks. Les flatpacks fournissent des environnements sandbox à l'intérieur desquels un logiciel est fourni avec toutes ses dépendances :cela permet de faire tourner une version spécifique d'un programme sur toutes les distributions qui supportent cette technologie, indépendamment des librairies natives. Le référentiel principal de flatpacks est flathub. L'installation d'un flatpack à partir de ce site avec gnome-software est vraiment facile. Tout ce que nous avons à faire est de rechercher l'application que nous voulons installer et de cliquer sur installer
bouton.
Flathub est le référentiel principal utilisé pour les flatpaks
Le logiciel Gnome devrait se lancer automatiquement :sinon, ouvrez simplement le fichier téléchargé avec celui-ci. Après avoir cliqué sur le bouton d'installation et fourni notre mot de passe administratif, si nécessaire, le package sera installé.
Installation du flatpak du logiciel Gnome
Une fois que nous avons installé un flatpak de cette manière, le référentiel flathub est automatiquement ajouté en tant que source flatpak, il devient donc possible de rechercher d'autres applications qu'il contient, directement depuis l'interface du centre gnome-software.
Il est possible d'effectuer les mêmes opérations que nous avons vu ci-dessus depuis la ligne de commande en utilisant la commande flatpak. Lors de l'utilisation du flatpak
utilitaire, il est possible de décider si l'installation doit être globale ou juste pour un utilisateur spécifique. Dans ce dernier cas, les privilèges administratifs ne sont pas requis et le --user
L'option doit être fournie à la commande. Pour ajouter le référentiel flathub globalement, nous exécutons simplement :
$ sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
Nous pouvons maintenant installer notre package. Nous devons fournir le chemin complet du package ainsi que le nom du référentiel distant à partir duquel nous voulons installer. Par exemple, pour installer neovim, nous lancerions :
$ sudo flatpak install flathub io.neovim.nvim Required runtime for io.neovim.nvim/x86_64/stable (runtime/org.freedesktop.Sdk/x86_64/18.08) found in remote flathub Do you want to install it? [y/n]:
Si nous répondons par l'affirmative, le package et son runtime seront téléchargés et installés sur notre système. Si vous voulez en savoir plus sur la technologie flatpak, vous pouvez consulter notre article plus détaillé sur le sujet
Conclusion
Dans ce didacticiel, nous avons vu différentes manières d'installer des logiciels sur les systèmes Linux RHEL 8 / CentOS 8. Les logiciels sont organisés en packages, qui à un bas niveau sont gérés par le gestionnaire de packages rpm qui ne peut pas résoudre automatiquement les dépendances. Pour fournir cette fonctionnalité et plus encore, le programme dnf, qui fonctionne au-dessus de rpm, est utilisé. Enfin, nous avons appris à installer des logiciels en bac à sable en utilisant une technologie relativement récente, flatpak.