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?