Debian administrace systému

Příručka administrátora

Viktor Matys v.matys@seznam.cz

Poslední úprava: 08.09.2006


Úvodem

editovat

Příručka administrátora navazuje na instalační příručku serveru na Grumpa.net - dokumentace.

Tento text je víceméně nahodilý záznam sbírání zkušeností. Přesto, když už to sem píšu, budu se to snažit psát tak, aby to bylo srozumitelné a mělo to hlavu a patu.

Rád přijmu tipy na to, co by tu podle vás mělo být.

1. Odkaz(y) jinam

Pokud máte tip na nějaké stránky v češtině či slovenštině, které se administrací Linuxu zabývají, dejte mi vědět, rád sem přidám odkaz.

[1]

Správa software v Debian Linuxu

editovat

Debian Linux má originální systém správy software. Každý program je zabalen do softwarového balíčku, který má jméno jako ten program včetně čísla verze programu a má příponu .deb. Např:

{{{ firefox_1.5.dfsg+1.5.0.4-1_i386.deb }}} To je oblíbený internetový prohlížeč Firefox, za názvem je podtržítko a za ním dost komplikované číslo verze. Za dalším podtržítkem je platforma, pro níž je balíček určen (zde i386 tedy normální PC). Nakonec je tam ta přípona .deb.

Balíčky jsou uloženy v archivu. Těchto archivů je po světě spousta viz:

[2]

Jeden z nich je originál archiv, ostatní jsou tzv. zrcadla, což je název, který jejich funkci přesně vystihuje - obsahují přesnou kopii toho, co je v originál archivu.

Pro nás budou zajímavá zrcadla v česku:

* [3]
* [4]

Možná, že máte lokálně vytvořené zrcadlo debianího archivu - to ví administrátor.

Vytvoření lokálního zrcadla Debian Linuxu

editovat

Máte-li hodně počítačů se stejnou verzí Debian Linuxu, určitě nebude efektivní provádět aktualizace přes internet - dost by to ucpávalo dráty. Místo toho je lepší udržovat si vlastní zrcadlo. Dělá se to pomocí programu debmirror.

Program debmirror

editovat

Tomuto programu můžete říct, jakou verzi má pro vás zrcadlit (stable, testning,...), pro jakou architekturu (nejspíš i386) a dokonce lze zadat, jaké sekce archivu chcete nebo nechcete.

Nejlepší je udělat si na to skript s názvem třeba mirrordeb.sh a uložit ho do /usr/local/bin/. Skript pak můžete nechat spouštět cronem, který zajistí, že bude váš archiv pravidelně aktualizován.

Skript může vypadat takto:

{{{ $ cat /usr/local/bin/mirrdeb.sh }}}

tee $ERRLOG


Skript v úvodu nastavuje parametry, které jsou pak použity přímo pro příkaz debmirror. Je to tak přehlednější. Vidíme, že archiv bude uložen na našem počítači v adresáři /home/ftp/debian. Že bude stahován ze zrcadla ftp.cz.debian.org metodou http (lze též ftp) a že budeme chtít verzi etch.

Dále budeme chtít, aby průběh stahování byl zaznamenáván do souboru /home/ftp/debmirror.log.

První if se ptá, zda už nějaký ten log z minula existuje a pokud ano, provede se příkaz savelog, který ten minulý log zaarchivuje - takto je udržováno osm posledních logů.

Druhý if je jasný - prostě než poprvé tento skript použijete, musíte vytvořit adresář pro stahování a v něm podadresář dists.

Jak instalovat sofware v Debian Linuxu

editovat

Debianí archiv máme, takže teď co dál. Debian má pro správu software řadu nástrojů. Od těch hardcore až po uživatelsky příjemné:

dpkg

Dpkg je nízkoúrovňový program, který umožňuje instalovat balíčky tak, že se mu přímo zadá název balíčku (asi jste to očekávali, ale v Debianu je to méně obvyklá metoda. Tento program taky umožňuje vyhledávání v seznamu balíčků (parametery -S, -l a -L)

apt-get

Program apt má spoustu možností. Pro nás může být zajímavý "podprogram" apt-get, který umí spoustu práce automatizovat. Stejně jako dpkg se spouští z příkazové řádky.

aptitude

Favorit číslo jedna. Sice nemá tak úchvatnou grafiku jako níže uvedený synaptic, ale jeho možnosti jsou jasně nejlepší. Pracuje se tu pomocí menu, balíčky tu jsou zobrazeny přehledně v sekcích,... Níže je uveden návod na práci s tímto programem, takže teď stop.

synaptic

Tento program má obvyklé grafické rozhraní. I když se s ním pracuje snadno, oproti aptitude má méně možností. Například nejde spustit pod normálním uživatelem, ale jen pod rootem. Také nezaznamenává provedené změny (co nainstaloval, co odinstaloval...)

Soubor /etc/apt/sources.list

editovat

Tento soubor obsahuje informace o umístění balíčků, které chcete ve svém systému používat k instalaci.

Tento soubor je využíván všemi instalačními programy s výjímkou

nízkoúrovňového programu dpkg.

Nejlépe bude ukázat si příklad tohoto souboru:

{{{

  1. deb file:///home/ftp/debian/ etch main contrib non-free

deb ftp://ftp.cz.debian.org/debian etch main non-free contrib

deb file:/home/ftp/debian-local/ etch local }}}

První údaj je (jednoduše pro nás) vždy ono deb. Pak je tam cesta k archivu - je-li na lokálním stroji, pak je použit protokol file:, je-li vzdálený, pak je tu protokol ftp:, nebo http: a sídlo archivu.

Za mezerou je pak jméno verze (distribuce). Může tu být uveden přímo název (zde etch), nebo obecné označenív verze (testing). Dávám přednost přesnému označení, protože při přechodu Debianu na nové verze, zůstane Etch stále Etchem, zatímco obsah testing se ze dne na den změní z Etche na Sida a mně by pak instalační program zničeho nic mohl začít významně přeinstalovávát software. To si raději ohlídám sám, tím, že po přechodu na nové verzi, si v tomto souboru sources.list změním etch na sid ručně v den, kdy na tento přechod budu mít čas a náladu.

Nakonec tu máme uvedeny sekce, které chceme, aby se do nich instalátor díval.

Poslední řádek příkladu napovídá, že mám ve svém počítači vytvořený adresář debian-local, kam si dávám debianí balíčky, které jsem si buď sám vytvořil, nebo stáhnul z neoficiálních zdrojů. Vytvoření lokálního archivu a jeho správu si ale necháme na jindy.

Více viz manuálová stránka {{{man sources.list}}}.

Struktura archivu Debian Linuxu

editovat

Archiv obsahuje několik adresářů, pro nás jsou podstatné dva:

dists zde jsou podadresáře jednotlivých verzí debianu (testing, stable, etch, sarge,...). V těchto podadresářích pak najdeme soubory Packages, které obsahují seznam softwarových balíčků. Pro každý balíček tu jsou podrobné informace - verze, velikost, popis toho, co ten program dělá a mj. umístění v adresáři pool

pool zde jsou umístěny balíčky. Aby se v tom dalo vyznat, jsou rozděleny do adresářů podle abecedy. Takže třeba cesta k firefoxu je: {{{ pool/main/f/firefox/firefox-dbg_1.5.dfsg+1.5.0.4-1_i386.deb }}}

Všimneme si, že v adresáři pool jsou podadresáře:

main to je hlavní část archivu. Zde jsou umístěny balíčky, které přesně odpovídají politice Debianu na svobodný software.

contrib zde jsou programy, které debianí kritéria splňují méně

non-free a zde jsou programy, které jsou sice také volně šiřitelné, ale debianí kritéria splňují nejhůře.

Pro nás je to ale všechno jeden pool a toto členění je pro nás nezajímavé.

Aptitude

editovat

Je naprosto geniální záležitost pro správu softwarových balíčků:

  • Může si ho spustit i obyčejný uživatel. Bez rootovských práv

sice nemůže software instalovat, ale může se probírat jeho seznamem, vybírat si a případně vznášet požadavky na administrátora.

  • Umí pracovat z příkazové řádky i jako aplikace s menu.
  • Umí prohledávat seznam balíčků podle názvu (i části), podle popisu balíčku,...
  • Má českou dokumentaci - přečíst! ;-)
  • Dá se ovládat jednoduše přímo z klávesnice.
  • Udržuje archiv provedených změn v /var/log/aptitude

Oblíbené klávesové zkratky

editovat
u Provede aktualizaci databáze balíčků podle zdrojů v sources.list
/ Hledání podle názvu. Je možné zadat i část(i) názvu. Např: "python wx" hledá všechny balíčky obsahující slovo "python" nebo "wx". ~d Hledá v názvu a popisu regulární výraz.
\ Stejně jako /, ale hledá opačným směrem.
n Najde následující výskyt vyhovující zadanému vyhledávacímu výrazu
l (malé el) Obdobně jako /, ale omezí seznam balíčků na ty, které vyhovují vyhled. výrazu.
+ Označení balíčku pro instalaci.
- Označení balíčku pro odinstalaci - konfigurační soubory zůstanou.
_ Označení balíčku pro odinstalaci - konfigurační soubory budou odstraněny taky.
: Ponechání balíčku ve stávající verzi.
m Nastaví balíček, aby byl spravován automaticky. Tj. budou-li odstraněny balíčky, na nichž je tento závislý, bude navržen k odstranění taky.
M Nastaví balíček, aby byl spravován manuálně - opak "m".
ctrl+u Zpět (odznačí naposled označený balíček ap.) Často použijeme po "+", které označilo i spoustu dalších závislých balíčků.
U Nastaví příznak aktualizace u balíčků, které mají ve zdroji novou verzi a jsou automaticky aktualizovatelné (tedy --upgrade, ale ne --dist-upgrade).
g "Go!" - spustí aktualizaci označených balíčků.
d Zobrazí seznam balíčků, na kterých je tento balíček závislý.
r Zobrazí seznam balíčků závisejících na tomto balíčku. (Hodí se při pročišťovacích pracích k získání odpovědi na otázku, když to nepotřebuju já přímo, tak kdo jiný ještě?)

Pozor - Operace + - _ je možné dělat i na řádku označujícím skupinu balíčků, pak se bude týkat všech balíčků ve skupině. Stane-li se tak nedopatřením (což je skoro vždycky:), pomůže bezprostřední CTRL+u.

Prohledávání archivu Debianích balíčků

editovat

dpkg, dpkg-query

editovat

Tento program umí nainstalovat debianí balíček přímo - nevyužívá apt (tedy /etc/apt/sources.list), ale zadává se mu jméno balíčku jako parametr. Někdy se to může hodit, ale nedoporučuji.

Má ale pár zajímavých parametrů:

{{{ $ dpkg -l vzor }}} vypíše seznam balíčků, jejichž název odpovídá vzoru (je možno používat hvězdičky)

{{{ $ dpkg -L nazev-balicku }}} vypíše seznam souborů, které balíček obsahuje (balíček musí být nainstalovaný)

{{{ $ dpkg -S soubor }}} Najde balíčky, v nichž se nachází soubor. Prostě máme někde soubor a říkáme si: "Z jakého balíčku asi pochází...?"

dlocate

editovat

Rychlejší náhrada za dpkg -L a -S a něco navíc.

dpkg-www, dwww, info2www, man2html

editovat

Tyto utility umožní číst různé informace o balíčcích a dokumentaci v prostředí webového prohlížeče. Např:

{{{ http://localhost/cgi-bin/man2html }}} umožní procházet manuálovými stránkami nainstalovaných programů. Obdobně:

{{{ http://localhost/cgi-bin/dpkg }}} Zobrazí seznam nainstalovaných balíčků a umožní procházení popisů obdobně jako aptitude, ale navíc tu máme rovnou i seznam souborů, které balíček obsahuje a kde jsou umístěny.

apt-file

editovat

Funguje podobně jako {{{dpkg -L}}}, ale umí vypsat obsah i nenanistalovaných balíčků.

Neprve musí root provést

{{{

  1. apt-file update

}}} aby se sesynchronizovala databáze balíčů. Provede to stažením souboru Contents-<arch>.gz.

{{{ $ apt-file list vzor }}} vypíše obsah balíčků, odpovídajících vzoru. Nemusíte přidávat žádné hvězdičky.

{{{ $ apt-file search vzor }}} vyhledá soubor jehož název odpovídá vzoru a vypíše seznam balíčků a umístění souboru.

Parametry:

* -x - považuj vzor za regulární výraz
* -F - ber vzor tak jak je (apt-file jinak ke vzoru přidává na konci wildcard *)
* -l - vypisuj jenom jména balíčků (ne soubory)
* -v - ukecaný výpis (vhodné, když apt-get nepodává očekávané výsledky).

apt-cache

editovat

Obdobně jako apt-file, ale pracuje s cache balíčků. Zdá se mi trochu rychlejší. Ale ani s jedním nemám dlouhodobé zkušenosti. Apt-cache toho ale dovede víc, třeba zobrazovat nevyřešené závislosti ap. Důležitý je spíš rozdíl oproti dpkg, který umí dotazy jen na balíčky, které jsou nainstalované. Pohříchu většinou chceme dávat dotazy na balíčky, které nainstalované nejsou, abychom se něco víc o nich dověděli. Aptitude je v tomto směru výborný, ale neumí třeba vypsat, jaké jsou v balíčku soubory.

packages.debian.org

editovat

Tohle je dost klíčová internetová adresa. Dá se tu i vyhledávat.

Překládání popisů balíčků

editovat

Existuje bohulibý projekt, který se snaží lokalizovat popisy blalíčků ([5]), takže dpkg, apt, aptitude a další pak budou zobrazovat popisy podle locales, které má uživatel nastavené. To by mohlo nakopnout Debian Linux u uživatelů hodně dopředu. Většina jich totiž na angličtině vyhoří a nedovědí se tak, co jim to ten skvěle zásobený Debian Linux nabízí.

Praktické využití lokalizací je připraveno (Aptitude už to umí, apt zatím jen ve verzi experimental), ale zatím tyto přeložené popisy nejsou v debianích archivech. (info z 24.7.2006)

další užitečné utility

editovat

apt-ftparchive

editovat

Tento program umí vytvořit soubor Packages, který čtou aptovské programy. Můžeme si tak vytvořit vlastní, lokální archiv balíčků z neoficiálních zdrojů, nebo z těch, které jsme si sami vytvořii.

Tisk - CUPS

editovat

Common Unix Printing System.

Užitečné příkazy

editovat

Vypíše stav tiskáren.

Se v systému stará o pravidelné spouštění úloh. Jeho činnost je řízena démonem crond a konfigurací:

* v /etc/crontab je obecné nastavení toho, co se má spouštět jako systémové úlohy.

Nastavení tu zpravidla odkazuje na spouštění úloh pomocí programu run-parts, který spouští úlohy v zadaných adresářích. Těmi bývají:

 * /etc/cron.houry
 * /etc/cron.daily
 * /etc/cron.weekly
 * /etc/cron.monthly
* /var/cache/cron pak je místem, kam se mohou umisťovat crontabs uživatelů.

Naše vlastní skripty pro pravidelné spouštění

editovat

Máme-li nějaký vlastní skript, který chceme spouštět pravidelně, stačí ho přidat do jednoho z adresářů pravidelného spouštění. Např. do /etc/cron.daily/, chceme-li ho spouštět denně.

Pozor: V man run-parts se dočtete, že název skriptu může obsahovat pouze ASCII písmena, číslice, pomlčky a podtržítka - tedy ne kupř. tečku. Soubory porušující toto pravidlo spuštěny nebudou - kupř. skript.sh se vám nespustí.

    1. moin code generated by txt2tags 2.3 (http://txt2tags.sf.net)
    2. cmdline: txt2tags -t moin -o moin/administrator.moin administrator.t2t