Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Balíčkovací systém distribuce Debian GNU/Linux, část druhá

V minulém dílu jsme se mj. dozvěděli, jak vypadá balíček Debianu uvnitř. Ukázali jsme si, jak lze s balíčky pracovat pomocí příkazů "ar" a "tar". S balíčky se ovšem pomocí těchto programů běžně neoperuje. Proto se dnes, kromě dalšího průzkumu nitra balíčkovacího systému, podíváme na základní operace pomocí nástrojů "dpkg-deb" a "dpkg".

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

Několik úrovní balíčkovacího systému

Nástroje balíčkovacího systému Debianu lze rozdělit do několika úrovní. Nejnižší vrstvu tvoří program dpkg-deb. Ten neumí pracovat s balíčkovacím systémem jako celkem, ale pracuje pouze se samostatnými balíčky. S jeho pomocí můžeme nad balíčky provádět zhruba stejné operace jako s programy ara tar. Jediným rozdílem je pravděpodobně poskytnutý komfort. Další vrstvou balíčkovacího systému Debianu je program dpkg. Ten již nepracuje pouze s jednotlivými balíčky, ale provádí také operace nad celým balíčkovacím systémem (např. kontrola závislostí, instalace a deinstalace balíčků atd.). Další úrovní balíčkovacího systému jsou tzv. frontendy. Tyto frontendy mohou být buď řízené z příkazové řádky pomocí argumentů (legendární apt), nebo mohou mít plně interaktivní uživatelské rozhraní (dselect). Nad nástroji apt jsou pak nástroje ještě vyšší úrovně. Zejména se jedná o grafické frontendy (gnome-apt, synaptic) a program aptitude, který lze použít jako interaktivní i neinteraktivní rozhraní k nástrojům apt.

Nástroj velmi nízké úrovně

dpkg-deb je nástroj velmi nízké úrovně a je zřídkakdy uživatelem používán přímo. Na tom má svůj podíl i fakt, že dpkg-deb je možné vyvolat pomocí dpkg, kterému lze poskytnout argumenty určené programu dpkg-deb. Zajímá-li někoho příkaz dpkg-deb podrobněji, odkazuji ho na manuálovou stránku (popř. zdrojový kód :-)). Jako příklad použití si ukážeme zjišťování, jaké informace o balíčku jsou obsaženy v souborucontrol (o něm jsme se zmínili v minulém dílu):

$ dpkg-deb -f geg_1.0.2-4_i386.deb
Package: geg
Version: 1.0.2-4
Section: math
Priority: optional
Architecture: i386
Depends: libc6 (>= 2.3.1-1), libglib1.2 (>= 1.2.0), libgtk1.2 (>= 1.2.10-4), xlibs (>> 4.1.0)
Installed-Size: 176
Maintainer: Frederic Peters <fpeters@debian.org>
Description: a GTK+ Equation Grapher
geg is a very simple utility for parsing and plotting 2D-functions, eg
f(x) = 3 + sin(x), and much more complicated functions of course.
It is written with GTK+ and provides a neat, configurable user interface.
$

Informace o balíčku

Z předchozího příkazu dpkg-deb -f vidíme, jaké záznamy o sobě balíček obsahuje v souboru control. Odtud také čerpají informace nástroje balíčkovacího systému. Každý záznam, kterému se říká pole (field), je složen ze jména (slovo před dvojtečkou) a hodnoty (za dvojtečkou). Hodnota pole Description (Popis) se skládá ze dvou částí, krátkého a dlouhého popisu balíčku. Jména polí jsou poměrně výstižná, a proto si je nebudeme nyní podrobně vysvětlovat. Vrátíme se k nim později, až si budeme popisovat, jak se vytváří balíček. Vysvětlíme si v tuto chvíli jen to nejdůležitější, tedy závislosti mezi balíčky. Pole Depends (Závisí) obsahuje seznam balíčků (a případně jejich verzí), na kterých daný balíček závisí a nebyl by bez nich funkční. Hodnoty stejného typu (tedy seznam balíčků s jejich případným upřesněním na verzi) obsahují i pole Recommends (Doporučuje), Suggests (Navrhuje),En­hances (Rozšiřuje), Pre-Depends (Před-Závisí) a Conflicts (Je v rozporu). Tato pole opět definují závislosti mezi balíčky, avšak mají pochopitelně jiný význam, který je buď intuitivně zřejmý z jejich názvu, nebo ho můžeme najít v dokumentu Debian Policy Manual.

Nástroj střední úrovně

Pomocí příkazu dpkg můžeme provádět základní operace nad balíčkovacím systémem, tedy zejména instalovat a odstraňovat balíčky. dpkg také kontroluje závislosti a např. odmítne instalaci balíčku, pokud ke svému běhu potřebuje jiný balíček, který nemáme nainstalován. Jednou z hlavních operací je tedy instalace balíčku:

# dpkg -i geg_1.0.2-4_i386.deb
Selecting previously deselected package geg.
(Reading database ... 120877 files and directories currently installed.)
Unpacking geg (from geg_1.0.2-4_i386.deb) ...
Setting up geg (1.0.2-4) ...

#

Podobně probíhá i odinstalování balíčku:

# dpkg -r geg
(Reading database ... 120887 files and directories currently installed.)
Removing geg ...
#

dpkg nám také umožňuje klást dotazy na informace o stavu balíčku v systému. Chceme-li se tedy dozvědět informace o balíčku gettext, můžeme spustit příkaz dpkg -l gettext. Tento přepínač podporuje žolíky (wildcards), takže se můžeme také zeptat např. takto:

$ dpkg -l 'gettext*'
Požadované=Neznámé/Instalovat/Odinstalovat/Odstranit/Nechat
| Stav=Ne/Instalován/Konfigurační
| soubory/Rozbalen/Nezkonfigurován/Nekompletní
| instalace
|/ Chyba?=(nic)/Nechat/Nutná přeinstalace/X=oba problémy
| (Stav,Chyba: velké písmeno=chyba)
||/ Název          Verze          Popis
+++-==============-==============-=========================
ii  gettext        0.10.40-8      GNU Internationalization
                    utilities
ii  gettext-base   0.10.40-8      GNU Internationalization
                    utilities for the b
ii  gettext-doc    0.10.40-8      Documentation
                    for GNU gettext.
ii  gettext-el     0.10.40-8      Emacs po-mode for
                    editing .po files.
$

Dalším často používaným přepínačem je -L. S jeho pomocí zjistíme, které soubory nainstalovaný balíček obsahuje:

$ dpkg -L gftp-text
/.
/usr
/usr/bin
/usr/bin/gftp-text
/usr/share
/usr/share/man
/usr/share/man/man1
/usr/share/doc
/usr/share/doc/gftp-text
/usr/share/doc/gftp-text/copyright
/usr/share/doc/gftp-text/TODO
/usr/share/doc/gftp-text/changelog.gz
/usr/share/doc/gftp-text/README.gz
/usr/share/doc/gftp-text/changelog.Debian.gz
/usr/share/man/man1/gftp-text.1.gz

$

Posledním přepínačem, který si ukážeme, je -S. Chceme-li zjistit, do kterého balíčku patří soubor /usr/bin/giftrans, spustíme příkaz (přepínač opět podporuje žolíky, a je tedy možné klást i složitější dotazy):

$ dpkg -S /usr/bin/giftrans
giftrans: /usr/bin/giftrans
$

Program dpkg má sice mnohem více přepínačů a možností, aby však tento článek nevypadal jako dokumentace k dpkg, odkazuji čtenáře na manuálovou stránku tohoto programu.

Tento článek sponzoruje soLNet, s.r.o..

Školení: Linux – Firewall, Samba, VPN

Na třídenním školení se naučíte nainstalovat a spravovat Firewall a Router, SAMBA Doménový a Souborový server. Dále si zprovozníte vlastní, zabezpečený VPN server.

Podrobnější informace a přihláška

Ohodnoťte jako ve škole:
Průměrná známka 3,15

Přehled názorů

vytvareni .deb
Dave 12. 6. 2003 08:36
Nový
├ 
Re: vytvareni .deb
Miloslav Ponkrác 12. 6. 2003 08:56
Nový
│
└ 
Re: vytvareni .deb
kaaja 12. 6. 2003 09:01
Nový
├ 
Re: vytvareni .deb
Viky 12. 6. 2003 09:03
Nový
├ 
Re: vytvareni .deb
Dalibor 12. 6. 2003 10:09
Nový
│
├ 
Re: vytvareni .deb
Petr Krčmář 12. 6. 2003 10:23
Nový
│
│
└ 
Re: vytvareni .deb
Petr Krčmář 12. 6. 2003 10:28
Nový
│
│
 
├ 
Re: vytvareni .deb
Zdenek Havelka 12. 6. 2003 12:20
Nový
│
│
 
│
└ 
Re: vytvareni .deb
Petr Krčmář 12. 6. 2003 13:33
Nový
│
│
 
└ 
Re: vytvareni .deb
Prcek 13. 6. 2003 07:39
Nový
│
└ 
Re: vytvareni .deb
Dave 12. 6. 2003 19:41
Nový
│
 
└ 
Re: vytvareni .deb
dep 12. 6. 2003 23:18
Nový
├ 
Re: vytvareni .deb
Zdenek Havelka 12. 6. 2003 12:31
Nový
│
└ 
Re: vytvareni .deb
Libor Chocholaty 12. 6. 2003 13:56
Nový
│
 
└ 
Re: vytvareni .deb
Marcel Kolaja 13. 6. 2003 16:40
Nový
├ 
Re: vytvareni .deb
j 12. 6. 2003 14:14
Nový
│
└ 
Re: vytvareni .deb
networ 13. 6. 2003 10:25
Nový
│
 
└ 
Re: vytvareni .deb
Petr Balas 13. 6. 2003 18:14
Nový
│
 
 
└ 
Re: vytvareni .deb
networ 23. 6. 2003 12:52
Nový
├ 
Re: vytvareni .deb
Mr. Jumper 12. 6. 2003 14:48
Nový
├ 
Re: vytvareni .deb
Petr Jakubec 12. 6. 2003 22:42
Nový
├ 
Re: vytvareni .deb
tldv 13. 6. 2003 16:10
Nový
└ 
Re: vytvareni .deb
Mato 15. 6. 2003 08:07
Nový
Strom zavislosti
Zdenek 12. 6. 2003 09:21
Nový
├ 
Re: Strom zavislosti
MeDon 12. 6. 2003 15:46
Nový
├ 
Re: Strom zavislosti
Marcel Kolaja 13. 6. 2003 16:52
Nový
└ 
Re: Strom zavislosti
Petr Balas 13. 6. 2003 18:30
Nový
Asi hlopej dotaz
Grek 12. 6. 2003 10:05
Nový
└ 
Re: Asi hlopej dotaz
MeDon 12. 6. 2003 15:43
Nový
 
└ 
Re: Asi hlopej dotaz
skim 15. 6. 2003 14:23
Nový
dpkg vs. rpm
worm 12. 6. 2003 15:55
Nový
├ 
Re: dpkg vs. rpm
networ 12. 6. 2003 19:32
Nový
│
└ 
Re: dpkg vs. rpm
dep 12. 6. 2003 23:39
Nový
│
 
├ 
Re: dpkg vs. rpm
Tomáš 13. 6. 2003 08:42
Nový
│
 
└ 
Re: dpkg vs. rpm
Pichi 16. 7. 2004 14:14
Nový
├ 
Re: dpkg vs. rpm
Petr Kubanek 13. 6. 2003 11:41
Nový
├ 
Re: dpkg vs. rpm
skim 15. 6. 2003 14:30
Nový
└ 
Re: dpkg vs. rpm
martink 21. 6. 2003 18:45
Nový
 
└ 
Re: dpkg vs. rpm
networ 23. 6. 2003 12:55
Nový
Vypsani chybejicich souboru z ninst.baliku
Petr Kubanek 13. 6. 2003 11:36
Nový
└ 
Re: Vypsani chybejicich souboru z ninst.baliku
kokot 14. 6. 2003 23:16
Nový
 
└ 
Re: Vypsani chybejicich souboru z ninst.baliku
Marcel Kolaja 16. 6. 2003 13:42
Nový
ako vytvorit .deb tromi prikazmi
ja 13. 6. 2003 12:40
Nový
├ 
Re: ako vytvorit .deb tromi prikazmi
Petr Kubanek 13. 6. 2003 13:39
Nový
├ 
Re: ako vytvorit .deb tromi prikazmi
Dave 13. 6. 2003 15:03
Nový
└ 
Re: ako vytvorit .deb tromi prikazmi
Mato 15. 6. 2003 08:21
Nový
 
└ 
Re: ako vytvorit .deb tromi prikazmi
Milos Prudek 16. 6. 2003 15:14
Nový
význam statusu u dpkg -l
Pev 15. 12. 2005 10:56
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem