Vyhledávání na webu

20 Praktické příklady RPM příkazů v Linuxu


RPM (Red Hat Package Manager) je výchozí open source a nejoblíbenější nástroj pro správu balíčků pro systémy založené na Red Hat, jako je (RHEL , CentOS a Fedora). Tento nástroj umožňuje správcům systému a uživatelům instalovat, aktualizovat, odinstalovat, dotazovat, ověřit a spravovat balíčky systémového softwaru v operačních systémech Unix/Linux. Soubor RPM dříve známý jako .rpm, který obsahuje zkompilované softwarové programy a knihovny potřebné pro balíčky. Tento nástroj funguje pouze s balíčky, které jsou založeny na formátu .rpm.

Tento článek poskytuje některé užitečné příklady příkazů 20 RPM, které by vám mohly být užitečné. Pomocí těchto příkazů rpm můžete spravovat instalaci, aktualizaci a odstranění balíčků ve vašich systémech Linux.

Některá fakta o RPM (RedHat Package Manager)

  1. RPM je zdarma a vydává se pod GPL (General Public License).
  2. RPM uchovává informace o všech nainstalovaných balíčcích v databázi /var/lib/rpm.
  3. RPM je jediný způsob, jak nainstalovat balíčky pod systémy Linux, pokud jste balíčky nainstalovali pomocí zdrojového kódu, pak to rpm nezvládne.
  4. RPM se zabývá soubory .rpm, které obsahují skutečné informace o balíčcích, jako jsou: co to je, odkud pochází, informace o závislostech, informace o verzi atd.

Existuje pět základních režimů příkazu RPM

  1. Instalovat: Používá se k instalaci libovolného balíčku RPM.
  2. Odstranit: Používá se k vymazání, odstranění nebo odinstalování jakéhokoli balíčku RPM.
  3. Upgrade: Používá se k aktualizaci stávajícího balíčku RPM.
  4. Ověřit: Používá se k ověření RPM balíčků.
  5. Dotaz: Používá se k dotazu na jakýkoli balíček RPM.

Kde najít balíčky RPM

Níže je seznam rpm stránek, kde můžete najít a stáhnout všechny RPM balíčky.

  1. http://rpmfind.net
  2. http://www.redhat.com
  3. http://freshrpms.net/
  4. http://rpm.pbone.net/

Přečtěte si také:

  1. 20 Příklady příkazů YUM v Linuxu
  2. 10 příkladů příkazů Wget v Linuxu
  3. 30 nejužitečnějších linuxových příkazů pro systémové administrátory

Pamatujte, že při instalaci balíčků v Linuxu musíte být root. S oprávněními root můžete spravovat příkazy rpm s jejich vhodnými možnostmi.

1. Jak zkontrolovat podpisový balíček RPM

Před instalací balíčků na systémy Linux vždy zkontrolujte podpis PGP a ujistěte se, že jeho integrita a původ jsou OK. Pomocí následujícího příkazu s možností –checksig (kontrola podpisu) zkontrolujte podpis balíčku s názvem pidgin.

[root@tecmint]# rpm --checksig pidgin-2.7.9-5.el6.2.i686.rpm

pidgin-2.7.9-5.el6.2.i686.rpm: rsa sha1 (md5) pgp md5 OK

2. Jak nainstalovat balíček RPM

Pro instalaci softwarového balíčku rpm použijte následující příkaz s volbou -i. Chcete-li například nainstalovat balíček rpm s názvem pidgin-2.7.9-5.el6.2.i686.rpm.

[root@tecmint]# rpm -ivh pidgin-2.7.9-5.el6.2.i686.rpm

Preparing...                ########################################### [100%]
   1:pidgin                 ########################################### [100%]
RPM příkaz a možnosti
  1. -i : instalace balíčku
  2. -v : podrobné pro hezčí zobrazení
  3. -h: tiskne značky hash při rozbalování archivu balíčků.

3. Jak zkontrolovat závislosti RPM balíčku před instalací

Řekněme, že byste chtěli provést kontrolu závislosti před instalací nebo aktualizací balíčku. Například použijte následující příkaz ke kontrole závislostí balíčku BitTorrent-5.2.2-1-Python2.4.noarch.rpm. Zobrazí se seznam závislostí balíčku.

[root@tecmint]# rpm -qpR BitTorrent-5.2.2-1-Python2.4.noarch.rpm

/usr/bin/python2.4
python >= 2.3
python(abi) = 2.4
python-crypto >= 2.0
python-psyco
python-twisted >= 2.0
python-zopeinterface
rpmlib(CompressedFileNames) = 2.6
RPM příkaz a možnosti
  1. -q : Dotaz na balíček
  2. -p : Seznam možností, které tento balíček poskytuje.
  3. -R: Seznam funkcí, na kterých tento balíček závisí.

4. Jak nainstalovat balíček RPM bez závislostí

Pokud víte, že všechny potřebné balíčky jsou již nainstalovány a RPM je jen hloupé, můžete tyto závislosti ignorovat pomocí volby –nodeps (žádná kontrola závislostí) před instalací balík.

[root@tecmint]# rpm -ivh --nodeps BitTorrent-5.2.2-1-Python2.4.noarch.rpm

Preparing...                ########################################### [100%]
   1:BitTorrent             ########################################### [100%]

Výše uvedený příkaz násilně nainstaluje balíček rpm ignorováním chyb závislostí, ale pokud tyto soubory závislostí chybí, program nebude vůbec fungovat, dokud je nenainstalujete.

5. Jak zkontrolovat nainstalovaný RPM balíček

Použití volby -q s názvem balíčku zobrazí, zda je nainstalován rpm nebo ne.

[root@tecmint]# rpm -q BitTorrent

BitTorrent-5.2.2-1.noarch

6. Jak zobrazit seznam všech souborů nainstalovaného balíčku RPM

Chcete-li zobrazit všechny soubory nainstalovaných balíčků rpm, použijte příkaz -ql (seznam dotazů) s příkazem rpm.

[root@tecmint]# rpm -ql BitTorrent

/usr/bin/bittorrent
/usr/bin/bittorrent-console
/usr/bin/bittorrent-curses
/usr/bin/bittorrent-tracker
/usr/bin/changetracker-console
/usr/bin/launchmany-console
/usr/bin/launchmany-curses
/usr/bin/maketorrent
/usr/bin/maketorrent-console
/usr/bin/torrentinfo-console

7. Jak zobrazit seznam nedávno nainstalovaných balíčků RPM

Použijte následující příkaz rpm s možností -qa (dotaz na vše), zobrazí seznam všech nedávno nainstalovaných balíčků rpm.

[root@tecmint]# rpm -qa --last

BitTorrent-5.2.2-1.noarch                     Tue 04 Dec 2012 05:14:06 PM BDT
pidgin-2.7.9-5.el6.2.i686                     Tue 04 Dec 2012 05:13:51 PM BDT
cyrus-sasl-devel-2.1.23-13.el6_3.1.i686       Tue 04 Dec 2012 04:43:06 PM BDT
cyrus-sasl-2.1.23-13.el6_3.1.i686             Tue 04 Dec 2012 04:43:05 PM BDT
cyrus-sasl-md5-2.1.23-13.el6_3.1.i686         Tue 04 Dec 2012 04:43:04 PM BDT
cyrus-sasl-plain-2.1.23-13.el6_3.1.i686       Tue 04 Dec 2012 04:43:03 PM BDT

8. Jak vypsat všechny nainstalované balíčky RPM

Chcete-li vytisknout všechny názvy nainstalovaných balíčků ve vašem systému Linux, zadejte následující příkaz.

[root@tecmint]# rpm -qa

initscripts-9.03.31-2.el6.centos.i686
polkit-desktop-policy-0.96-2.el6_0.1.noarch
thunderbird-17.0-1.el6.remi.i686

9. Jak upgradovat balíček RPM

Pokud chceme upgradovat jakýkoli RPM balíček, použije se možnost „–U“ (upgrade). Jednou z hlavních výhod použití této možnosti je, že nejen aktualizuje nejnovější verzi libovolného balíčku, ale také zachová zálohu staršího balíčku, takže v případě, že novější aktualizovaný balíček nespustí dříve nainstalovaný balíček lze znovu použít.

[root@tecmint]# rpm -Uvh nx-3.5.0-2.el6.centos.i686.rpm
Preparing...                ########################################### [100%]
   1:nx                     ########################################### [100%]

10. Jak odebrat balíček RPM

K odinstalaci balíčku RPM například použijeme název balíčku nx, nikoli původní název balíčku nx-3.5.0-2.el6.centos.i686.rpm . Volba -e (erase) se používá k odstranění balíčku.

[root@tecmint]# rpm -evv nx

11. Jak odebrat RPM balíček bez závislostí

Možnost –nodeps (Nekontrolovat závislosti) násilně odstraní balíček rpm ze systému. Ale mějte na paměti, že odstranění konkrétního balíčku může přerušit ostatní fungující aplikace.

[root@tecmint]# rpm -ev --nodeps vsftpd

12. Jak se dotazovat na soubor, který patří ke kterému RPM balíčku

Řekněme, že máte seznam souborů a chtěli byste zjistit, který balíček patří k těmto souborům. Například následující příkaz s možností -qf (query file) vám ukáže, že soubor /usr/bin/htpasswd vlastní balíček httpd-tools-2.2.15-15.el6.centos.1.i686.

[root@tecmint]# rpm -qf /usr/bin/htpasswd

httpd-tools-2.2.15-15.el6.centos.1.i686

13. Jak se dotazovat na informace o nainstalovaném RPM balíčku

Řekněme, že jste nainstalovali balíček rpm a chcete znát informace o balíčku. Následující možnost -qi (dotaz info) vytiskne dostupné informace o nainstalovaném balíčku.

[root@tecmint]# rpm -qi vsftpd

Name        : vsftpd				   Relocations: (not relocatable)
Version     : 2.2.2				   Vendor: CentOS
Release     : 11.el6				   Build Date: Fri 22 Jun 2012 01:54:24 PM BDT
Install Date: Mon 17 Sep 2012 07:55:28 PM BDT      Build Host: c6b8.bsys.dev.centos.org
Group       : System Environment/Daemons           Source RPM: vsftpd-2.2.2-11.el6.src.rpm
Size        : 351932                               License: GPLv2 with exceptions
Signature   : RSA/SHA1, Mon 25 Jun 2012 04:07:34 AM BDT, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://vsftpd.beasts.org/
Summary     : Very Secure Ftp Daemon
Description :
vsftpd is a Very Secure FTP daemon. It was written completely from
scratch.

14. Před instalací získejte informace o balíčku RPM

Stáhli jste si balíček z internetu a před instalací chcete znát informace o balíčku. Například následující volba -qip (dotazový informační balíček) vytiskne informace o balíčku sqlbuddy.

[root@tecmint]# rpm -qip sqlbuddy-1.3.3-1.noarch.rpm

Name        : sqlbuddy                     Relocations: (not relocatable)
Version     : 1.3.3                        Vendor: (none)
Release     : 1                            Build Date: Wed 02 Nov 2011 11:01:21 PM BDT
Install Date: (not installed)              Build Host: rpm.bar.baz
Group       : Applications/Internet        Source RPM: sqlbuddy-1.3.3-1.src.rpm
Size        : 1155804                      License: MIT
Signature   : (none)
Packager    : Erik M Jacobs
URL         : http://www.sqlbuddy.com/
Summary     : SQL Buddy â Web based MySQL administration
Description :
SQLBuddy is a PHP script that allows for web-based MySQL administration.

15. Jak se dotazovat na dokumentaci nainstalovaného RPM balíčku

Chcete-li získat seznam dostupné dokumentace nainstalovaného balíčku, použijte následující příkaz s volbou -qdf (dotazový soubor dokumentu) zobrazí manuálové stránky související s balíčkem vmstat.

[root@tecmint]# rpm -qdf /usr/bin/vmstat

/usr/share/doc/procps-3.2.8/BUGS
/usr/share/doc/procps-3.2.8/COPYING
/usr/share/doc/procps-3.2.8/COPYING.LIB
/usr/share/doc/procps-3.2.8/FAQ
/usr/share/doc/procps-3.2.8/NEWS
/usr/share/doc/procps-3.2.8/TODO

16. Jak ověřit RPM balíček

Ověření balíčku porovnává informace o nainstalovaných souborech balíčku s databází rpm. K ověření balíčku se používá -Vp (verify package).

[root@tecmint downloads]# rpm -Vp sqlbuddy-1.3.3-1.noarch.rpm

S.5....T.  c /etc/httpd/conf.d/sqlbuddy.conf

17. Jak ověřit všechny balíčky RPM

Zadejte následující příkaz a ověřte všechny nainstalované balíčky rpm.

[root@tecmint]# rpm -Va

S.5....T.  c /etc/rc.d/rc.local
.......T.  c /etc/dnsmasq.conf
.......T.    /etc/ld.so.conf.d/kernel-2.6.32-279.5.2.el6.i686.conf
S.5....T.  c /etc/yum.conf
S.5....T.  c /etc/yum.repos.d/epel.repo

18. Jak importovat RPM GPG klíč

Chcete-li ověřit balíčky RHEL/CentOS/Fedora, musíte importovat klíč GPG. Chcete-li tak učinit, proveďte následující příkaz. Importuje klíč GPGCentOS 6.

[root@tecmint]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

19. Jak vypsat všechny importované klíče RPM GPG

Chcete-li vytisknout všechny importované klíče GPG ve vašem systému, použijte následující příkaz.

[root@tecmint]# rpm -qa gpg-pubkey*

gpg-pubkey-0608b895-4bd22942
gpg-pubkey-7fac5991-4615767f
gpg-pubkey-0f2672c8-4cd950ee
gpg-pubkey-c105b9de-4e0fd3a3
gpg-pubkey-00f97f56-467e318a
gpg-pubkey-6b8d79e6-3f49313d
gpg-pubkey-849c449f-4cb9df30

20. Jak znovu vytvořit poškozenou databázi RPM

Někdy se databáze rpm poškodí a zastaví všechny funkce rpm a dalších aplikací v systému. V tu chvíli tedy potřebujeme znovu sestavit databázi rpm a obnovit ji pomocí následujícího příkazu.

[root@tecmint]# cd /var/lib
[root@tecmint]# rm __db*
[root@tecmint]# rpm --rebuilddb
[root@tecmint]# rpmdb_verify Packages