Čišćenje zaostalih konfiguracijskih datoteka

Stiglo je proljeće, a s njime i vrijeme za proljetno čišćenje. Kako većina sistemaca na ustanovama upravo prelazi na novu inačicu Debiana, sada je pravi trenutak za čišćenje viškova koji su se nakupili tijekom godina rada poslužitelja.

Za početak ćemo se pozabaviti problematikom starih konfiguracijskih datoteka. Iako se rijetko dogodi da stare konfiguracijske datoteke predstavljaju problem, prilikom ove nadogradnje, a zbog prijelaza na dependency-based boot, upravo su one radile najviše problema (vidi http://sistemac.carnet.hr/node/952). Naravno, prije nego počnemo vrijedi uvijek upozorenje: "S diska se brišu samo one datoteke za koje ste apsolutno sigurni da vam ne trebaju".

Debianov paketni sustav prilikom instalacije pojedinog paketa s njim donese i konfiguracijske datoteke. One služe za postavljanje parametara pri pokretanju programa, najčešće ih može uređivati samo administrator, a uobičajeno se nalaze u direktorijima /etc/imepaketa, /etc/init.d/, /etc/cron.{hourly,daily,weekly,monthly} ili /etc/cron.d/. Promjene na tim datotekama se prate preko checksuma i vjerovatno nema administratora koji se pri dogradnji nije susreo s ovakvim pitanjem:

Configuration file `/etc/ime_datoteke'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** /etc/ime_datoteke (Y/I/N/O/D/Z) [default=N] ?

Odgovor Y uobičajeno znači backupiranje postojeće datoteke u ime_datoteke-old te postavljanje nove datoteke na njeno mjesto. Takve '-old' datoteke najčešće ne predstavljaju problem, ne zauzimaju puno mjesta i može ih se ostaviti na disku.

Datoteke koje mogu predstavljati problem, kao u navedenom slučaju s početka ove priče, pojavljuju se prilikom uklanjanja paketa sa sustava. Pri deinstalaciji paketa, a ukoliko deinstalacija nije napravljena s opcijom purge, paket se uklanja s diska, ali sve konfiguracijske datoteke se zadržavaju. Taj paket se nalazi u config-files stanju.

Popis paketa u config-files stanju može se dobiti naredbom:

user@stroj:~$ dpkg-query -f '${Package} ${Status}\n' -W | grep config-files
openoffice.org-base deinstall ok config-files
openoffice.org-calc deinstall ok config-files
openoffice.org-common deinstall ok config-files
openoffice.org-core deinstall ok config-files
openoffice.org-draw deinstall ok config-files
openoffice.org-filter-binfilter deinstall ok config-files
openoffice.org-gcj deinstall ok config-files
openoffice.org-hyphenation-hr deinstall ok config-files
openoffice.org-impress deinstall ok config-files
openoffice.org-math deinstall ok config-files
openoffice.org-thesaurus-en-us deinstall ok config-files
openoffice.org-writer deinstall ok config-files

Konfiguracijske datoteke izlistanih paketa možete ukloniti pojedinačnim purganjem:

dpkg -P ime_paketa

ili sve odjednom pomoću naredbe:

aptitude purge '~c'

 

Kuharice: 
Vote: 
0
No votes yet

Komentari

Ljubo, da li purgati prije instalacije Squeezea, ili poslije, ili i prije i poslije? :)

Pa svejedno. Kada ti zatreba. Jedan kolega je neki dan, nakon upgradea na Squeeze, počistio tristo i nešto starih paketa odjednom. Aptitude je inteligentan pa ti možda i rekonfigurira neki paket (update-alternatives), tako da nakon purganja dobiješ neki novi kojeg možeš purgati.

Naravno, ako imaš puno starih paketa koje prave problem s dependency-based bootom, počisti prije.

Ali uvijek treba biti pažljiv. Recimo na jednom stroju sam pokrenuo ovaj purge i među "zaostalim" paketima je bio mysql-server-5.0 (na serveru je trenutno mysql-server-5.1).

...
Removing mysql-server-5.0 ...
Purging configuration files for mysql-server-5.0 ...
Stopping MySQL database server: mysqld.
...

Nakon toga sam trebao ručno startati mysql-server.

Ah, hoćeš reći da je maknuo konfiguraciju za mysql-server? :)

Malo sam se igrao, kod mene su serveri virtualizirani, pa sam "klonirao" jednoga, digao ga na drugoj IP adresi, probao purge, probao upgrade na Squeeze... Ne prolazi sve glatko, čini se da je ovo teži prelazak na novu distribuciju od prethodnih. Prelazak na Lenny je bio lagodan. Probao sam bez carnet -upgrade skripte, neke servise je trebalo dizati ručno, neki se ne daju podići, dobiješ svakojake poruke u logovima (monit ne prepoznaje "match" u konfiguraciji, neke init skripte nemaju LSB header...). Probat ću još jednom s carnetovom skriptom.

Blažena virtualizacija, možeš se igrati dok produkcijski serveri rade. :)

Nije maknuo konfiguraciju za mysql-server-5.1, jer je ona vezana s conffiles za novi paket, ali je ugasio servis i nije ga sam pokrenuo :)