RPM Package Manager (RPM) je výkonný systém správy balíčků používaný Red Hat Linuxem a jeho deriváty, jako jsou CentOS a Fedora. RPM také odkazuje na rpm
příkaz a .rpm
formát souboru. Balíček RPM se skládá z archivu souborů a metadat včetně informací, jako jsou závislosti a umístění instalace.
V tomto tutoriálu budeme hovořit o tom, jak používat rpm
příkaz k instalaci, aktualizaci, odstranění, ověření, dotazování a jiné správě RPM balíčků.
Instalace, aktualizace a odebrání RPM balíčků #
K instalaci nového balíčku v distribucích založených na Red Hatu obvykle použijete buď yum
nebo dnf
příkazy, které mohou vyřešit a nainstalovat všechny závislosti balíků.
Vždy byste měli raději používat yum
nebo dnf
nad rpm
při instalaci, aktualizaci a odstraňování balíčků.
Před instalací balíčku RPM si musíte balíček nejprve stáhnout do svého systému pomocí prohlížeče nebo nástrojů příkazového řádku, jako je curl
nebo wget
.
Při instalaci balíčků RPM se ujistěte, že jsou vytvořeny pro architekturu vašeho systému a verzi CentOS. Buďte zvláště opatrní při výměně nebo aktualizaci důležitých systémových balíků, jako je glibc, systemd nebo jiné služby a knihovny, které jsou nezbytné pro správné fungování vašeho systému.
Instalovat nebo odstraňovat balíčky RPM mohou pouze uživatelé root nebo uživatelé s právy sudo.
Chcete-li nainstalovat balíček RPM s rpm
, použijte -i
volba následovaná názvem balíčku:
sudo rpm -ivh package.rpm
-v
volba říká rpm
pro zobrazení podrobného výstupu a -h
možnost zobrazení ukazatele průběhu označeného hashem.
Můžete přeskočit část stahování a zadat adresu URL balíčku RPM do rpm
příkaz:
sudo rpm -ivh https://example.com/package.rpm
Chcete-li upgradovat balíček RPM, použijte -U
volba. Pokud balíček není nainstalován, bude nainstalován:
sudo rpm -Uvh package.rpm
Pokud balíček, který instalujete nebo aktualizujete, závisí na jiných balíčcích, které nejsou aktuálně nainstalovány, rpm
zobrazí seznam všech chybějících závislostí. Všechny závislosti si budete muset stáhnout a nainstalovat ručně.
Chcete-li nainstalovat balíček RPM, aniž byste měli v systému nainstalované všechny požadované závislosti, použijte --nodeps
možnost:
sudo rpm -Uvh --nodeps package.rpm
Chcete-li odstranit (vymazat) balíček RPM, použijte -e
možnost:
sudo rpm -e package.rpm
--nodeps
volba je také užitečná, když chcete odstranit balíček bez odstranění jeho závislostí:
sudo rpm -evh --nodeps package.rpm
--test
volba říká rpm
spustit příkaz k instalaci nebo odebrání, aniž by bylo cokoli provedeno. Ukazuje pouze, zda by příkaz fungoval nebo ne:
sudo rpm -Uvh --test package.rpm
Dotaz na balíčky RPM #
-q
možnost říká rpm
příkaz ke spuštění dotazu.
Chcete-li se zeptat (vyhledat), zda je nainstalován určitý balíček, předejte název balíčku do rpm -q
příkaz. Následující příkaz vám ukáže, zda je v systému nainstalován balíček OpenJDK 11:
sudo rpm -q java-11-openjdk-devel
Pokud je balíček nainstalován, uvidíte něco takového:
java-11-openjdk-devel-11.0.4.11-0.el8_0.x86_64
Předejte -i
pro získání více informací o dotazovaném balíčku:
sudo rpm -qi java-11-openjdk-devel
Chcete-li získat seznam všech souborů v nainstalovaném balíčku RPM:
sudo rpm -ql package
Pokud chcete zjistit, ke kterému nainstalovanému balíčku patří konkrétní soubor, napište:
sudo rpm -qf /path/to/file
Chcete-li získat seznam všech nainstalovaných balíčků na vašem systému, použijte -a
možnost:
sudo rpm -qa
Ověřování RPM balíčků #
Při ověřování balíčku rpm
příkaz zkontroluje, zda každý soubor nainstalovaný balíčkem existuje v systému, výtah souboru, vlastnictví, oprávnění atd.
Pro ověření nainstalovaného balíčku použijte -V
volba. Chcete-li například ověřit balíček openldap, který byste spustili:
sudo rpm -V openldap-2.4.46-9.el8.x86_64
Pokud ověření projde, příkaz nevytiskne žádný výstup. V opačném případě, pokud některá z kontrol selže, zobrazí se znak označující neúspěšný test.
Například následující výstup ukazuje, že mTime souboru byl změněn („T“):
.......T. c /etc/openldap/ldap.conf
Co jednotlivé znaky znamenají, viz manuálová stránka RMP.
Chcete-li ověřit všechny nainstalované balíčky rpm, spusťte následující příkaz:
sudo rpm -Va