Debian administrace systému
Příručka administrátora
Viktor Matys v.matys@seznam.cz
Poslední úprava: 08.09.2006
Úvodem
editovatPří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.
Správa software v Debian Linuxu
editovatDebian 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:
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
editovatMá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
editovatTomuto 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
editovatDebianí 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
editovatTento 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:
{{{
- 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
editovatArchiv 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
editovatJe 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
editovatu | 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ů
editovatdpkg, dpkg-query
editovatTento 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
editovatRychlejší náhrada za dpkg -L a -S a něco navíc.
dpkg-www, dwww, info2www, man2html
editovatTyto 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
editovatFunguje podobně jako {{{dpkg -L}}}, ale umí vypsat obsah i nenanistalovaných balíčků.
Neprve musí root provést
{{{
- 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
editovatObdobně 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
editovatTohle je dost klíčová internetová adresa. Dá se tu i vyhledávat.
Překládání popisů balíčků
editovatExistuje 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
editovatapt-ftparchive
editovatTento 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
editovatCommon Unix Printing System.
Užitečné příkazy
editovatlpstat
editovatVypíše stav tiskáren.
Cron
editovatSe 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í
editovatMá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í.
- moin code generated by txt2tags 2.3 (http://txt2tags.sf.net)
- cmdline: txt2tags -t moin -o moin/administrator.moin administrator.t2t