Dispatch-conf HOWTO

Z Gentoo Linux Wiki

Přejít na: navigace, hledání

Obsah

[editovat] Úvod

Díky tomu, že Gentoo vydává nové verze balíčků místo oprav stávajících, tak se jejich výchozí .conf soubory pořád mění. Co ale pokud už jste do něj přidali nějaké svoje změny? Hledat to ručně atd. by už bylo opravdu peklo, takže na to jsou pomocníci - v Handbooku je tuším pořád popsaný jako základní nástroj etc-update. Je možné, že se hodně zlepšil, ale po dost špatných zkušenostech s ním to ani nezkouším. Jediný možný je dispatch-conf a nejlépe s pár úpravami. Popíšu mé oblíbené nastavení, ale brzy zjistíte, že si ho můžete nastavit přesně jak se vám bude líbit.

Mé oblíbené nastavení je samozřejmě porůznu převzato z Gentoo Fóra atd.

[editovat] Instalace

Dispatch-conf používá pro důležité věci jako stránkování, zobrazení rozdílů a slučování změn externí programy. Což je přímo skvělé, protože si můžete výchozí jednoduše nahradit svým oblíbeným. Mí favorité, které budu potřebovat jsou Colordiff a RCS + oblíbený editor:

# emerge vim colordiff rcs

[editovat] Nastavení

Výchozí nastavení je ale nepoužívá, takže konfigurační soubor /etc/dispatch-conf.conf je potřeba trochu upravit, společně s několika změnami například automatická nahrazování změn pouze v komentářích atd.:

#
# dispatch-conf.conf
#

# Adresar pro verzovaci system
archive-dir=/etc/config-archive

# Pouzivat rcs jako jednoduchy versovaci system? Nic tim nezkazite :-)
# (yes or no)
use-rcs=yes

# Program pro zobrazeni zmen - colordiff se mi zatim libi dost
# %s old file
# %s new file
diff="colordiff -Nu %s %s"

# Strankovaci program. Muzete nahradit treba za most
pager="less -R --no-init --QUIT-AT-EOF"

# Program pro slucovani zmen. Nejradeji pouzivam vyhozi:
# %s output file
# %s old file
# %s new file
merge="sdiff --suppress-common-lines --output=%s %s %s"
# napriklad pro vim
# merge="vimdiff -c 'saveas %s' -c next -c 'setlocal nomodifiable readonly' -c prev %s %s"

# Automaticky updatovat soubory, ktere se lisi jenom v informacich o verzi
# (yes or no)
replace-cvs=yes

# Automaticky updatovat soubory, ktere se lisi v komentarich nebo prazdnych znacich
# (yes or no)
replace-wscomments=yes

# Automaticky nahrazovat soubory, ktere jste nezmenili
# (yes or no)
replace-unmodified=yes

# Odkomentujte s cestou pro logovani
#log-file=/var/log/dispatch-conf.log

[editovat] Použití

Pokud uvidíte po dokončení emerge, že je potřeba update konfiiguračních souborů, tak spusťe:

# dispatch-conf

Na začátku se objeví (pokud je) výpis souborů, které se změní samy, potom výpis prvního souboru, který bude vyžaduje vaší pozornost (jako rozdíl současného a nového) a nakonec ovládání:

>> (1 of 7) -- /etc/DIR_COLORS
>> q quit, h help, n next, e edit-new, z zap-new, u use-new
   m merge, t toggle-merge, l look-merge:

Jednotlivé příkazy znamenají:

  • q - okamžitě skončit
  • h - nápověda, velice překvapivé
  • n - skočí na další soubor v pořadí
  • e - otevře nový soubor v programu, určeném proměnnou $EDITOR
  • z - zahodí nový soubor
  • u - přepíše stávající soubor novou verzí
  • m - spustí program podle parametru merge
  • t - přepíná zobrazení souborů v merge starý / nový

Stisknutím m vám začne dispatch-conf začne postupně nabízet všechny změny a klikáním l a r si vybíráte jestli chcete pravou nebo levou verzi. Vždycky jsem si s tím vystačil, ale pokud chcete něco víc, tak stiskněte h pro nápovědu. Dokončený merge použijete stisknutím u.

S tím, jak bude postupně docházet k dalším změnám, tak dispatch-conf si kopíruje ovlivněné soubory do svého archivu. Díky tomu později dokáže poznat, jestli došlo ke změně a ptá se čím dál tím méně a méně. Z toho důvodu se nedivte, že se zpočátku ptá na soubory, které jste neměnili, i pokud je nastaveno replace-unmodified=yes - prozatím nemá jak to poznat.

[editovat] Závěr

Nejjednodušší způsob, jak si opravdu ušetříte starosti, je ale místo úpravy konfiguračních souborů vždycky napsat svůj vlastní, ve kterém budete nastavovat co potřebujete. Ten potom vložíte do hlavního souboru (většinou je možné použít Include "/cesta/k/souboru"), čímž se množství změn v něm minimalizuje a updaty nijak neovlivní vaše nastavení. Pokud to ale nepůjde, tak dispatch-conf práci se konfiguračními soubory dost ulehčí.