RPM balíčkovací systém a distribuce openSUSE, 2. část
Úkolem druhé části článku bude říci si, o všech příkazech pomocí kterých můžeme instalovat / odinstalovat balíček.
Obsah článku
Seznam příkazů, které můžeme použít při instalaci balíčku
rpm -i (or --install) options file1.rpm … fileN.rpm
--test
test se hodí pro zjištění, které nám chybý součásti, potřebné pro správnou funkčnost balíčku.
# rpm -i --test rpm-2.0.11-1.i386.rpm
/bin/rpm conflicts with file from rpm-2.3-1
/usr/bin/gendiff conflicts with file from rpm-2.3-1
/usr/bin/rpm2cpio conflicts with file from rpm-2.3-1
/usr/bin/rpmconvert conflicts with file from rpm-2.3-1
/usr/man/man8/rpm.8 conflicts with file from rpm-2.3-1
error: rpm-2.0.11-1.i386.rpm cannot be installed
#
--percent místo výpisu právě prováděné části instalce se zobrazí procentuální pozice instalce. 100% znamená kompletní instalce.
# rpm -i --percent iBCS-1.2-3.i386.rpm
%f iBCS:1.2:3
%% 0.002140
%% 1.492386
%% 5.296632
%% 9.310026
%% 15.271010
%% 26.217846
%% 31.216000
%% 100.000000
%% 100.000000
#
--excludedocs RPM rozděluje instalační soubory do tří kategorií
1.konfigurační soubory
2.soubory obsahující dokumentaci
3.ostatní soubory
--excludedocs parametr znamená, že se zabrání instalaci souborů s dokumentací. V následujícím příkladu by měla být dokumentace uložena v adresáři /usr/man/man1/ ale zadali jsme, že dokumentaci instalovat nechceme a proto soubor s dokumentací neexistuje. Použití tohoto paremetru má význam pokud chcete ušetřit pár MB na vašem HDD.
# rpm -iv --excludedocs cdp-0.33-3.i386.rpm
Installing cdp-0.33-3.i386.rpm
# ls -al /usr/man/man1/cdp.1
ls: /usr/man/man1/cdp.1: No such file or directory
#
--includedocs pokud má balíček ve svém konfiguračním souboru nastaveno že se nemá instalovat dokumentace excludedocs: 1, můžeme pomocí --includedocs instalaci dokumentace povolit
# ls /usr/man/man1/cdp.1
ls: /usr/man/man1/cdp.1: No such file or directory
# rpm -iv --includedocs cdp-0.33-3.i386.rpm
Installing cdp-0.33-3.i386.rpm
# ls /usr/man/man1/cdp.1
-rw-r--r-- 1 root root 4550 Apr 24 22:37 /usr/man/man1/cdp.1
#
--replacepkgs použije se pokud chceme znovu nainstalovat již existující balíček (třeba pro jeho opravu) instalace balíčku
# rpm -iv cdp-0.33-2.i386.rpm
Installing cdp-0.33-2.i386.rpm
#
balíček je již nainstalovaný a proto se znovu nenainstaluje a instalátor nám vypíše chybu
# rpm -iv cdp-0.33-2.i386.rpm
Installing cdp-0.33-2.i386.rpm
package cdp-0.33-2 is already installed
error: cdp-0.33-2.i386.rpm cannot be installed
#
pokud ale přidáme --replacepkgs instalace proběhne v pořádku
# rpm -iv --replacepkgs cdp-0.33-2.i386.rpm
Installing cdp-0.33-2.i386.rpm
#
--replacefiles pokud máme dva instalační balíky a ty se snaží nainstalovat do stejného adresáře soubor se stejným jménem dojde k chybě. Přiklád je instalace nové verze programu a náhrada jeho staré. pomocí --replacefiles můžeme říci aby se na starý soubor nehledělo a přepsal se.
# rpm -iv cdp-0.33-3.i386.rpm
Installing cdp-0.33-3.i386.rpm
/usr/bin/cdp conflicts with file from cdp-0.33-2
error: cdp-0.33-3.i386.rpm cannot be installed
# Chyba
# rpm -iv --replacefiles cdp-0.33-3.i386.rpm
Installing cdp-0.33-3.i386.rpm
# OK
--force
instalace v každém případě (ikdyž nastane konflikt) je to spojení --replacepkgs a --replacefiles.
--noscripts
některé balíčky vyžadují před svou instalací aby jisté programy byly vykonané předtím, po, nebo před a po instalaci balíčku.
--noscripts zabrání vykonávání těchto pre- a post-install skriptů.
--prefix
některé balíčky umožňují aby si uživatel zvolil na které místo disku (do kterého adresáře) se bude balíček instalovat.
--ignorearch
když je balík vytvořen, RPM specifikuje architekturu, nebo typ počítačového hardwaru pro který byl balík vytvořen.
--ignorearch použijeme pokud nechceme aby se architektura nebo hardware kontroloval.
tento příkaz se doporučuje použív pouze v případě, že víte co děláte.
--ignoreos
když je balík vytvořen, RPM specifikuje operační systém pro který byl balík vytvořen.
--ignoreos použijeme pokud nechceme aby se operační systém kontroloval.
tento příkaz se doporučuje použív pouze v případě, že víte co děláte.
--nodeps nehledět na závislosti (potřeba mít nainstalovaný související program) a bez problémů ho nainstalovat.
# rpm -i blather-7.9-1.i386.rpm
failed dependencies:
bother >= 3.1 is needed by blather-7.9-1
# Error
# rpm -i --nodeps blather-7.9-1.i386.rpm
# OK
--ftpproxy a --ftpport pro nastavení FTP proxy a portu
--httpproxy a --httpport pro nastavení HTTP proxy a portu
RPM balíčky lze instalovat i pomocí internetu resp. HTTP a FTP účtů někde v síti internetu. Pokud budete instalovat ze serveru chráněného heslem, můžete přihlašovací jméno přidat do adresy serveru před zavináč takto:
ftp://user:pass@jmeno.domena/pub/SUSE10.2/balicek-0-2.i386.rpm
nebo
ftp://user@jmeno.domena/pub/SUSE10.2/balicek-0-2.i386.rpm
Ve druhém případě se rpm na heslo zeptá.
rpm -U ftp://jmeno.domena/pub/SUSE10.2/balicek-0-2.i386.rpm
Odinstalování balíčku
Odinstalování balíčků se provádí jednoduše pomocí volby -e. Rozdíl oproti instalaci je v tom, že rpm nepředáváte jméno souboru, ale jméno balíčku. Tzn. bez .rpm.
Obsah příštích článku
- Získávání informací z databáze balíčků
- URPMI
- dpkg
- YAST - Yet Another Setup Toolkit
- Instalace openSUSE 10.2.
- Literatura