RPM (Redhat Package Manager) est un utilitaire de gestion de packages en ligne de commande utilisé pour installer, désinstaller, mettre à jour, interroger et vérifier des packages logiciels.
Dans ce didacticiel, j'expliquerai certaines des commandes rpm Linux les plus courantes pour un administrateur système. Certaines des distributions Linux basées sur RPM sont Redhat, Centos, Fedora et OpenSuse. Yum et DNF sont des frontaux pour la gestion des RPM qui ont plus de fonctionnalités et pourraient surmonter les limitations dont ils disposent.
Comment obtenir des packages RPM
Il existe plusieurs méthodes disponibles pour obtenir des packages RPM, comme indiqué ci-dessous.
- CD/DVD du logiciel
- Miroir CentOS
- RedHat (besoin d'un compte)
- Tous les sites Web de référentiels ouverts
Modes de base pour la commande RPM
- Install :Il est utilisé pour installer n'importe quel package RPM.
- Supprimer :il est utilisé pour effacer, supprimer ou désinstaller tout package RPM.
- Mise à jour :Il est utilisé pour mettre à jour le package RPM existant.
- Query :Il est utilisé pour interroger n'importe quel package RPM.
- Verify :Il est utilisé pour vérifier les packages RPM.
Exemples de package RPM
Application GéoIP GeoIP-1.5.0-11.el7.x86_64.rpm
est une bibliothèque de packages RPM pour le pays/la ville/l'organisation vers l'adresse IP ou le mappage du nom d'hôte. GeoIP
est le nom du package, la version est 1.5.0-11.el7
, la version est 7
et architecture .x86_64
.
Installer
1. Comment connaître les informations du package RPM sans l'installer
Après avoir téléchargé un package et nous voulons connaître les informations d'un package avant de l'installer. Nous pouvons utiliser -qip
option (query info package) pour lister les informations d'un package.
$ sudo rpm -qip GeoIP-1.5.0-11.el7.x86_64.rpm
output
Name : GeoIP
Version : 1.5.0
Release : 11.el7
Architecture: x86_64
Install Date: (not installed)
Group : Development/Libraries
Size : 2905020
License : LGPLv2+ and GPLv2+ and CC-BY-SA
Signature : RSA/SHA256, Sun 20 Nov 2016 05:49:19 PM UTC, Key ID 24c6a8a7f4a80eb5
Source RPM : GeoIP-1.5.0-11.el7.src.rpm
Build Date : Sat 05 Nov 2016 08:29:17 PM UTC
Build Host : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem
Vendor : CentOS
URL : http://www.maxmind.com/app/c
Summary : Library for country/city/organization to IP address or hostname mapping
Description :
GeoIP is a C library that enables the user to find the country that any IP
address or hostname originates from. It uses a file based database that is
accurate as of June 2007 and can optionally be updated on a weekly
basis by installing the GeoIP-update package. This database simply contains IP
blocks as keys, and countries as values. This database should be more complete
and accurate than using reverse DNS lookups.
This package includes GeoLite data created by MaxMind, available from
http://www.maxmind.com/
2. Comment installer le package RPM
Nous pouvons utiliser -ivh
paramètres pour installer un package particulier comme indiqué ci-dessous.
$ sudo rpm -ivh GeoIP-1.5.0-11.el7.x86_64.rpm
Output
Preparing... ################################# [100%]
package GeoIP-1.5.0-11.el7.x86_64 is already installed
3. Comment vérifier un package RPM installé
Nous pouvons utiliser -q
option avec le nom du package, il montrera si un package rpm est installé ou non.
$ sudo rpm -q GeoIP
output
GeoIP-1.5.0-11.el7.x86_64
4. Comment répertorier tous les fichiers d'un package RPM installé particulier
Nous pouvons lister tous les fichiers d'un paquet rpm installé, en utilisant le -ql
option avec la commande rpm.
$ sudo rpm -ql GeoIP
output
/etc/GeoIP.conf
/etc/GeoIP.conf.default
/usr/bin/geoiplookup
/usr/bin/geoiplookup6
/usr/bin/geoipupdate
/usr/lib64/libGeoIP.so.1
/usr/lib64/libGeoIP.so.1.5.0
/usr/lib64/libGeoIPUpdate.so.0
/usr/lib64/libGeoIPUpdate.so.0.0.0
/usr/share/GeoIP
/usr/share/GeoIP/GeoIP-initial.dat
/usr/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIPASNum.dat
/usr/share/GeoIP/GeoIPASNumv6.dat
/usr/share/GeoIP/GeoIPCity.dat
/usr/share/GeoIP/GeoIPCityv6.dat
/usr/share/GeoIP/GeoIPCountry.dat
/usr/share/GeoIP/GeoIPCountryv6.dat
/usr/share/GeoIP/GeoIPv6-initial.dat
...
5. Comment répertorier les packages RPM récemment installés
Nous pouvons utiliser -qa
option avec --last
, Il listera tous les packages RPM récemment installés.
$ sudo rpm -qa --last
output
GeoIP-1.5.0-11.el7.x86_64 Sat 01 Sep 2018 11:34:09 AM UTC
wget-1.14-15.el7_4.1.x86_64 Sun 26 Aug 2018 03:21:02 PM UTC
iwl7265-firmware-22.0.7.0-62.2.el7_5.noarch Thu 16 Aug 2018 02:10:18 PM UTC
libgomp-4.8.5-28.el7_5.1.x86_64 Thu 16 Aug 2018 02:10:15 PM UTC
iwl2030-firmware-18.168.6.1-62.2.el7_5.noarch Thu 16 Aug 2018 02:10:15 PM UTC
iptables-1.4.21-24.1.el7_5.x86_64 Thu 16 Aug 2018 02:10:15 PM UTC
yum-plugin-fastestmirror-1.1.31-46.el7_5.noarch Thu 16 Aug 2018 02:10:14 PM UTC
iwl6000-firmware-9.221.4.1-62.2.el7_5.noarch Thu 16 Aug 2018 02:10:14 PM UTC
iwl4965-firmware-228.61.2.24-62.2.el7_5.noarch Thu 16 Aug 2018 02:10:14 PM UTC
iwl105-firmware-18.168.6.1-62.2.el7_5.noarch Thu 16 Aug 2018 02:10:14 PM UTC
iwl100-firmware-39.31.5.1-62.2.el7_5.noarch Thu 16 Aug 2018 02:10:13 PM UTC
iwl1000-firmware-39.31.5.1-62.2.el7_5.noarch Thu 16 Aug 2018 02:10:13 PM UTC
ca-certificates-2018.2.22-70.0.el7_5.noarch Thu 16 Aug 2018 02:10:13 PM UTC
iwl6000g2b-firmware-17.168.5.2-62.2.el7_5.noarch Thu 16 Aug 2018 02:10:12 PM UTC
...
6. Comment installer le package RPM sans dépendances
Nous pouvons utiliser -ivh
paramètres avec --nodeps
signifie aucune vérification des dépendances, pour installer un package particulier sans dépendances, comme indiqué ci-dessous.
$ sudo rpm -ivh --nodeps GeoIP-1.5.0-11.el7.x86_64.rpm
Output
Preparing... ################################# [100%]
package GeoIP-1.5.0-11.el7.x86_64 is already installed
7. Comment remplacer le package RPM installé
Nous pouvons utiliser -ivh --replacepkgs
paramètres pour remplacer un package particulier installé comme indiqué ci-dessous.
$ sudo rpm -ivh --replacepkgs GeoIP-1.5.0-11.el7.x86_64.rpm
Output
Preparing... ################################# [100%]
Updating / installing...
1:GeoIP-1.5.0-11.el7 ################################# [100%]
Supprimer
8. Comment désinstaller le package RPM
Nous pouvons utiliser -e
paramètres pour désinstaller un package particulier installé sans dépendances (ne pas vérifier les dépendances) comme indiqué ci-dessous.
$ sudo rpm -e --nodeps GeoIP
Tapez maintenant la commande ci-dessous pour vous assurer que GeoIP n'est pas installé.
$ sudo rpm -q GeoIP
Output
package GeoIP is not installed
Mettre à jour
9. Comment mettre à jour le package RPM installé
Nous pouvons utiliser -Uvh
paramètres pour mettre à niveau un package particulier installé comme indiqué ci-dessous.
$ sudo rpm -Uvh GeoIP-1.5.0-11.el7.x86_64.rpm
Output
Preparing... ################################# [100%]
package GeoIP-1.5.0-11.el7.x86_64 is already installed
Requête
10. Comment interroger tous les packages installés
Nous pouvons utiliser -a
paramètres avec q
pour interroger tous les packages installés sur le serveur, comme indiqué ci-dessous.
$ sudo rpm -qa
Output
python-firewall-0.4.4.4-14.el7.noarch
ncurses-base-5.9-14.20130511.el7_4.noarch
plymouth-0.8.9-0.31.20140113.el7.centos.x86_64
kbd-misc-1.15.5-13.el7.noarch
vim-common-7.4.160-4.el7.x86_64
bash-4.2.46-30.el7.x86_64
dmidecode-3.0-5.el7.x86_64
filesystem-3.2-25.el7.x86_64
kbd-1.15.5-13.el7.x86_64
vim-enhanced-7.4.160-4.el7.x86_64
firewalld-0.4.4.4-14.el7.noarch
....
11. Comment interroger un package particulier
Nous pouvons utiliser grep
commande pour trouver un paquet particulier est installé ou non comme indiqué ci-dessous.
$ sudo rpm -qa | grep GeoIP
Output
GeoIP-1.5.0-11.el7.x86_64
12. Comment interroger un fichier qui appartient à quel package RPM
Dans l'exemple numéro 9, nous tapons la commande pour lister tous les fichiers d'un package RPM installé, maintenant nous voulons savoir /usr/lib64/libGeoIP.so.1.5.0
le fichier appartient à quel package RPM.
$ sudo rpm -qf /usr/lib64/libGeoIP.so.1.5.0
output
GeoIP-1.5.0-11.el7.x86_64
Vérifier
13. Comment obtenir des informations sur un package particulier
Nous pouvons utiliser -i
paramètres avec q
pour obtenir des informations sur un package particulier, comme indiqué ci-dessous.
$ sudo rpm -qi GeoIP
Output
Name : GeoIP
Version : 1.5.0
Release : 11.el7
Architecture: x86_64
Install Date: Thu 16 Aug 2018 02:04:09 PM UTC
Group : Development/Libraries
Size : 2905020
License : LGPLv2+ and GPLv2+ and CC-BY-SA
Signature : RSA/SHA256, Sun 20 Nov 2016 05:49:19 PM UTC, Key ID 24c6a8a7f4a80eb5
Source RPM : GeoIP-1.5.0-11.el7.src.rpm
Build Date : Sat 05 Nov 2016 08:29:17 PM UTC
Build Host : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem
Vendor : CentOS
URL : http://www.maxmind.com/app/c
Summary : Library for country/city/organization to IP address or hostname mapping
Description :
GeoIP is a C library that enables the user to find the country that any IP
address or hostname originates from. It uses a file based database that is
accurate as of June 2007 and can optionally be updated on a weekly
basis by installing the GeoIP-update package. This database simply contains IP
blocks as keys, and countries as values. This database should be more complete
and accurate than using reverse DNS lookups.
This package includes GeoLite data created by MaxMind, available from http://www.maxmind.com/
14. Comment vérifier un package RPM
Nous pouvons vérifier un paquet en comparant les informations des fichiers installés du paquet à la base de données rpm, en utilisant -Vp
option (vérifier le paquet).
$ sudo rpm -Vp GeoIP-1.5.0-11.el7.x86_64.rpm
15. Comment vérifier tous les packages RPM
Nous pouvons vérifier tous les packages rpm installés, en utilisant -Va
option (tout vérifier).
$ sudo rpm -Va
output
S.5....T. c /etc/sysconfig/authconfig
S.5....T. c /etc/yum.repos.d/CentOS-Base.repo
.M....... c /etc/machine-id
.M....... g /etc/udev/hwdb.bin
.M....... g /var/lib/systemd/random-seed
.M....... c /etc/shadow
S.5....T. c /etc/ssh/sshd_config
.M....... c /etc/audit/rules.d/audit.rules
S.5....T. c /etc/NetworkManager/NetworkManager.conf
....L.... c /etc/pam.d/fingerprint-auth
....L.... c /etc/pam.d/password-auth
....L.... c /etc/pam.d/postlogin
...
Lire aussi :
- Comment télécharger des packages sans les installer sur des distributions RPM
- 21 commandes DNF pour gérer les distributions Linux basées sur RPM
- Comment interroger des packages à l'aide de la commande Linux RPM
Un package rpm se compose de fichiers de programme, de fichiers de configuration et d'une liste de programmes logiciels compilés et de bibliothèques nécessaires aux packages (dépendances). Cet utilitaire rpm ne fonctionne qu'avec les packages construits au format '.rpm'.