Hlavní navigace

Debian Goodies: správcovi šikovní pomocníci

13. 4. 2015
Doba čtení: 5 minut

Sdílet

Správce serveru či pracovní stanice má rád po ruce sadu šikovných utilitek, které mu zjednodušují, automatizují a zpříjemňují často prováděné operace. Debian už dlouho obsahuje balíček Debian Goodies, který je poměrně málo známý, ale je velmi užitečný. Povíme si, co všechno obsahuje a jak ho použít.

Pokud spravujete počítače s Debianem, určitě umíte používat utility jako dpkg, apt či aptitude. Jsou tu ale i další užitečné programy, které vás dokáží informovat o stavu balíků, kritických chybách či potřebě restartovat nějakou službu. Navíc brzy vyjde Debian Jessie a jako správci budete mít hromadu práce, při které se pomoc hodí.

Debian Goodies je balíček a sada utilit, které jsou správci k ruce a dovolují mu z balíčkovacího systému získat mnoho užitečných informací, které by jinak hledal složitě nebo by je neměl k dispozici vůbec. Ty nejzajímavější příkazy si v následujícím článku postupně představíme. Pro instalaci bude stačit balíček debian-goodies.

checkrestart: co je třeba restartovat

Velmi užitečná utilita, která vám po instalaci nebo aktualizaci balíčků řekne, které procesy používají staré verze souborů. Řekne vám, kde přesně je problém a co byste s ním měli dělat. Pokud má totiž proces otevřenou starou verzi knihovny, bude stále náchylný například na bezpečnostní chyby, které už jsou v aktualizované knihovně opravené. Je proto dobrý nápad takový proces restartovat, aby začal používat aktuální soubory.

Příklad výstupu po aktualizaci může vypadat takto:

# checkrestart
Found 12 processes using old versions of upgraded files
(5 distinct programs)
(5 distinct packages)

Of these, 3 seem to contain init scripts which can be used to restart them:
The following packages seem to have init scripts that could be used
to restart them:
nginx-extras:
    20534   /usr/sbin/nginx
    20533   /usr/sbin/nginx
    20532   /usr/sbin/nginx
    19113   /usr/sbin/nginx
openssh-server:
    3124    /usr/sbin/sshd
    22964   /usr/sbin/sshd
    25724   /usr/sbin/sshd
    22953   /usr/sbin/sshd
    25719   /usr/sbin/sshd
exim4-daemon-light:
    3538    /usr/sbin/exim4

These are the init scripts:
service nginx restart
service ssh restart
service exim4 restart

These processes do not seem to have an associated init script to restart them:
python2.7-minimal:
    2548    /usr/bin/python2.7
openjdk-7-jre-headless:amd64:
    4348    /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java

Pokud vše vyřešíte, bude výstup velmi jednoduchý:

# checkrestart
Found 0 processes using old versions of upgraded files

V připravovaném Debianu Jessie je přítomný nový balíček needrestart, který by měl být lépe integrován se systemd, i když ho k běhu nutně nepotřebuje. Navíc umí detekovat aktualizace jádra, démony napsané v interpretovaných jazycích a má několik dalších výhod.

dpigs: nejvypasenější balíčky

Dochází vám místo na disku a potřebujete zredukovat systém? Pomůže vám utilitka dpigs, která najde nejtučnější balíčky.

# dpigs
186078 google-chrome-stable
161748 linux-image-3.16.0-4-amd64
160455 linux-image-3.16-3-amd64
127000 sigil
123727 libreoffice-core
118348 libwine
113244 stellarium-data
80242 icedove
77158 inkscape
76398 libreoffice-common

Ve výchozím stavu vypíše deset položek, pokud jich chcete vidět více, použijte parametr -n následovaný počtem.

dglob: najdi balíček

Pro pohodlné hledání mezi nainstalovanými balíčky poslouží příkaz dglob, který umí hledat pomocí regulárních výrazů. Jednoduše tak najdete třeba všechny lokalizační balíky v systému:

# dglob l10n
iceweasel-l10n-cs
qtcore4-l10n
libgphoto2-l10n
libreoffice-l10n-cs
openoffice.org-l10n-cs
qttranslations5-l10n
icedove-l10n-cs

which-pkg-broke: kdo za to může

Pokud se po aktualizaci rozbije nějaký balíček a software přestane fungovat, může správce zkusit najít závislosti a jejich poslední aktualizace. Přesně k tomu slouží utilita which-pkg-broke, která vypíše poslední aktualizace závislostí konkrétního balíčku:

# which-pkg-broke coreutils
libselinux1:amd64                                      Tue Sep  9 21:38:46 2014
libattr1:amd64                                         Thu Sep 25 09:15:01 2014
libacl1:amd64                                          Thu Sep 25 09:15:01 2014
coreutils                                              Tue Nov 11 21:31:02 2014
libpcre3:amd64                                         Tue Jan 27 08:51:59 2015
libc6:amd64                                            Mon Mar  9 11:15:38 2015
libgcc1:amd64                                          Mon Mar  9 11:15:42 2015
gcc-4.9-base:amd64                                     Mon Mar  9 11:15:42 2015
multiarch-support                                      Mon Mar  9 11:18:44 2015

Pokud se vám podaří korelovat dobu vzniku problému s dobou aktualizace souvisejícího balíčku, jste na stopě, máte šanci odhalit viníka a problém vyřešit.

dhomepage: vezmi mě na domovskou stránku

Občas potřebujete navštívit původní domovskou stránku projektu, která je uvedena v popisu balíčku. Pokud to chcete udělat rychle a jednoduše, zavoláte utilitu dhomepage. Ta ve výchozím prohlížeči otevře novou stránku, pokud je adresa u balíčku uvedena. Například:

# dhomepage stellarium

Vás vezme na www.stellarium.org.

debget: stáhni mi balíček

Občas potřebujete z balíčku vypreparovat nějaké soubory nebo se na něco podívat před instalací. Můžete samozřejmě ručně navštívit některé ze zrcadel a hledat balíčky v adresářové struktuře. Jednodušší je ale použít utilitu debget, která ve vaší současné apt databázi balík najde a jednoduše stáhne.

# debget sl
(sl -> 3.03-17)
Downloading sl from http://ftp.debian.cz/debian/pool/main/s/sl/sl_3.03-17_amd64.deb
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 26888  100 26888    0     0  49758      0 --:--:-- --:--:-- --:--:-- 49792

debman: ukaž manuál

Když už máte balíček stažený, můžete se pomocí utility debman podívat na jeho manuálovou stránku. Použití je jednoduché, stačí za parametr specifikovat soubor a poté jméno manuálu, který vás zajímá:

# debman -f sl_3.03-17_amd64.deb sl

Pokud jste balíček ještě nestáhli, můžete oba předchozí kroky spojit do jednoho. Soubor se stáhne a rovnou ukáže manuál:

debman -p needrestart needrestart

debmany: ukaž všechny manuály

Obvykle má balíček více manuálových stránek a pokud jste informace nenašli v tom prvním, neznamená to, že nejsou jinde. Všechny dokumenty najdete v /usr/share/, ale nemusíte je hledat ručně. Utilita debmany vám je přehledně ukáže a dovolí vám je rovnou přečíst:

# debmany sl

dgrep: prohledej soubory balíku

Po instalaci balíčku se soubory rozsypou po celém disku. Občas v nich ale potřebujete vyhledávat a jejich ruční hledání je poměrně zdlouhavé a nepříjemné. Pomůže vám ale utilita dgrep, která funguje jako klasický grep (včetně regexpů), ale automaticky prohledává jen soubory patřící zadanému balíčku:

root_podpora

# dgrep copyright tmux
/usr/share/doc/tmux/README:license. Files under examples/ remain copyright their authors unless otherwise
/usr/share/doc/tmux/README:tmux. All other files have a license and copyright notice at their start.
/usr/share/doc/tmux/copyright: copyright notice and this permission notice appear in all copies.
/usr/share/doc/tmux/copyright: 1. Redistributions of source code must retain the above copyright
/usr/share/doc/tmux/copyright: 2. Redistributions in binary form must reproduce the above copyright
/usr/share/doc/tmux/copyright: 1. Redistributions of source code must retain the above copyright
/usr/share/doc/tmux/copyright: 2. Redistributions in binary form must reproduce the above copyright

Znej své pomocníky

To jsou téměř všechny utility, které jsou součástí Debian Goodies. Ještě zbývá popbugs, který se hodí vývojářům Debianu. Dokáže spojit statistiky z Popularity Contestu, seznamy nevyřešených bugů a vytvořit přehled o tom, které problémy se týkají nejpoužívanějších balíčků a kterým by se měl vývojář přednostně věnovat.

Všechny výše zmíněné utilitky se můžou správci hodit, je dobré alespoň vědět, že něco podobného Debian obsahuje. Jeho repozitáře jsou plné podobných zajímavých balíčků, pokud budete mít zájem, můžeme se věnovat některým dalším. Máte tip na užitečný balík?

Byl pro vás článek přínosný?

Autor článku

Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. Studoval počítače a média, takže je rozpolcen mezi dva obory. Snaží se dělat obojí, jak nejlépe umí.