Obvykle je nainstalován obsah souboru RPM. To znamená, že soubory RPM jsou zkopírovány na jejich správná umístění v systému souborů, aby mohly být použity. Například instalace binárního RPM bash umístí soubor „/bin/bash“ do jeho očekávaného umístění. Chcete-li nainstalovat RPM, použijte buď „-i “ nebo „-U ” přepínač:
$ rpm -ivh bash-3.1-16.1.x86_64.rpm
Výpis souborů v balíčku RPM
Seznam souborů v RPM můžete získat provedením dotazu RPM a přidáním „-p ” přepínač:
$ rpm -q -l -p bash-3.1-16.1.x86_64.rpm /bin/bash /bin/sh /etc/skel/.bash_logout /etc/skel/.bash_profile /etc/skel/.bashrc ...
Jak extrahovat soubory ze souboru balíčku RPM
Někdy můžete chtít získat obsah nebo jeden soubor z balíčku RPM. K tomu můžete použít rpm2cpio konverzní nástroj. Nástroj rpm2cpio extrahuje obsah zdrojového nebo binárního RPM ve formě archivu CPIO, nikoli TAR. Výstup rpm2cpio se zapisuje na standardní výstup a obvykle se přenáší do příkazu cpio.
1. Výpis souborů v souboru balíčku
V tomto příkladu jsme použili -t možnost nasměrovat cpio k vytvoření „obsahu“ archivu vytvořeného pomocí rpm2cpio. To může výrazně usnadnit získání správného souboru a cesty, když chcete extrahovat soubor.
$ rpm2cpio bash-3.1-16.1.x86_64.rpm | cpio -t
Všimněte si, že příkaz „rpm -qpl“ zobrazuje název souboru jako absolutní cestu „/bin/bash“, ale výstup „cpio -t“ místo toho používá relativní cestu „./bin/bash“. To je velmi užitečné, protože rpm2cpio můžete použít jako běžný uživatel k extrahování souborů, které by se normálně instalovaly do privilegovaných adresářů.
Následující příklad ukazuje, jak výstup vypadá:
$ rpm2cpio bash-3.1-16.1.x86_64.rpm | cpio -t ./bin/bash ./bin/sh ./etc/skel/.bash_logout ./etc/skel/.bash_profile ./etc/skel/.bashrc ... 10510 blocks
2. Extrahování jednoho nebo více souborů ze souboru balíčku
Pomocí rpm2cpio vygenerujte archiv CPIO a pomocí přepínače cpio „-i“ extrahujte požadované soubory:
$ rpm2cpio bash-3.1-16.1.x86_64.rpm | cpio -ivd ./bin/bash ./bin/bash 10510 blocks
$ ls -l /home/user/bin/bash total 744 -rwxr-xr-x 1 user user 753720 March 1 13:10 bash
V tomto případě jsou možnosti „-i “, „-v “ a „-d ” přímé cpio na:
-i – Extrahujte jeden nebo více souborů z archivu. Požadovaný soubor(y) musí přesně odpovídat obsahu „cpio -t“ nebo vzoru zástupných znaků v shellu. Pokud cílový soubor již existuje, cpio jej odmítne přepsat, pokud není k příkazu přidán přepínač „-u“.
-d – Vytvořte všechny adresáře, které předcházejí názvu souboru zadanému v příkazu cpio. Pokud již adresáře existují, lze přepínač „-d“ vynechat, ale neškodí, pokud je vždy zadán.
-v – Zobrazte názvy všech zpracovaných souborů spolu s velikostí archivního souboru CPIO v 512bajtových blocích. Všimněte si, že tato velikost není velikostí RPM balíčku, který cpio nikdy přímo nevidí.
Pokud nejsou zadány žádné názvy souborů, budou extrahovány všechny soubory RPM.