Fórum Root.cz
Hlavní témata => Distribuce => Téma založeno: Ondřej Caletka 12. 01. 2012, 17:31:02
-
Řeším následující problém v Debianu Squeeze. Nainstaloval jsem balik nscd, jeho součástí je i initskript /etc/init.d/nscd. Pak jsem balíček odinstaloval a init skript v systému zůstal. Tak jsem ho smazal ručně.
Když jsem balík znovu nainstaloval, init skript se už neobjevil. Zjistil jsem, že to tak nejspíš má být, aspoň v Debain Policy Manual (http://www.debian.org/doc/debian-policy/ap-pkg-conffiles.html) se píše:
However, note that dpkg will not replace a conffile that was removed by the user (or by a script). This is necessary because with some programs a missing file produces an effect hard or impossible to achieve in another way, so that a missing file needs to be kept that way if the user did it.
Proto se ptám:
- Jak odinstalovat balík včetně konfiguračních souborů a initskriptů?
- Jak vynutit přepsání uživatelem upravených/smazaných konfiguračních souborů a initskriptů při nové instalaci?
Předem díky za odpovědi.
-
1. apt-get purge název_balíku - odstraní nainstalovaný balík i se systémovými konfiguračními soubory
2. pokud je ten soubor v .deb balíku, dá se vybalit a zkopírovat na dané místo ručně
-
Tak nakonec pomohlo odinstalovat pomocí purge, tím pádem dpkg i zapomněl, které konfigurační soubory jsem kdy vymazal a po nové instalaci se vše nainstalovalo.
Stejně by mě ale zajímalo, kde si dpkg tyto informace o stavu konfiguračních souborů ukládá a zda je možné uložené informace nějak uživatelsky editovat.
-
Ty informace je možné vyvolat pomocí
$ dpkg --status balíček
Vypíše to mimo jiné i seznam konfiguračních souborů, které balíčkovací systém ke konkrétnímu balíčku zná. U každého souboru je zaznamenán hash, takže dpkg pak při aktualizacích (a jiných akcích) pozná, jestli byl tento soubor měněn. Ty informace jsou uložené v souboru /var/lib/dpkg/status, ale při ručních zásazích pozor, abys nerozbil balíčkovací systém.