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

Petr Krčmář 13. 4. 2015

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:

# 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?

Našli jste v článku chybu?
DigiZone.cz: Náhrada za nevrácená zařízení?

Náhrada za nevrácená zařízení?

Měšec.cz: TEST: Vyzkoušeli jsme pražské taxikáře

TEST: Vyzkoušeli jsme pražské taxikáře

DigiZone.cz: Slováci první, Češi třetí. Krásný...

Slováci první, Češi třetí. Krásný...

120na80.cz: Jsou opalovací krémy pro děti jiné?

Jsou opalovací krémy pro děti jiné?

Podnikatel.cz: Neuvěříte, ale EET má pro podnikatele i výhody
MarketVoice

Neuvěříte, ale EET má pro podnikatele i výhody

Root.cz: Střílejte v obýváku, stačí kamera a projektor

Střílejte v obýváku, stačí kamera a projektor

Vitalia.cz: Máte chutě? Nejezděte do světa, ale do Dobřichovic

Máte chutě? Nejezděte do světa, ale do Dobřichovic

DigiZone.cz: Krajské televize na okraji zájmu?

Krajské televize na okraji zájmu?

Vitalia.cz: Epidemie: Klíšťová encefalitida po ovčím sýru

Epidemie: Klíšťová encefalitida po ovčím sýru

Lupa.cz: Jaké IoT tarify nabízejí mobilní operátoři?

Jaké IoT tarify nabízejí mobilní operátoři?

Root.cz: Quake slaví 20 let novou epizodou zdarma

Quake slaví 20 let novou epizodou zdarma

DigiZone.cz: ČT veze bronz z klání televizní grafiky

ČT veze bronz z klání televizní grafiky

Lupa.cz: Na základně u Dobříše se rozjel 3D tisk z kovu

Na základně u Dobříše se rozjel 3D tisk z kovu

Vitalia.cz: Ministři se přou o využívání antibiotik

Ministři se přou o využívání antibiotik

Root.cz: Nejvýkonnější počítač mají v Číně, podívejte se

Nejvýkonnější počítač mají v Číně, podívejte se

Lupa.cz: eIDAS je tu. O co přijdeme u elektronických podpisů?

eIDAS je tu. O co přijdeme u elektronických podpisů?

DigiZone.cz: Skylink: Nova Sport volně

Skylink: Nova Sport volně

Lupa.cz: Vydavatelé jsou v háji, ale neumí si to připustit

Vydavatelé jsou v háji, ale neumí si to připustit

DigiZone.cz: Markíza: tady je předběžné opatření

Markíza: tady je předběžné opatření

Podnikatel.cz: Eseróčko vs. živnost. Co vyhrává?

Eseróčko vs. živnost. Co vyhrává?