Ukoliko održavate neki server na kojem se vrti Debian ili neka od distribucija temeljenih na Debianu (Kubuntu, Ubuntu i slično) ili ste jednostavno vlasnik računala sa takvih operativnim sustavom, sigurno često radite nadogradnju sustava sa novim verzijama instaliranih paketa (ukoliko ne radite, trebali biste :-) ). Obično je dovoljno u shell (komandnu liniju) upisati naredbe

debian:~# apt-get update
debian:~# apt-get upgrade

i instalacija novih verzija će se izvršiti automatski (pod uvjetom da postoje nove verzije paketa). No, ponekad se to ne dogodi nego se pojavi poruka ‘The following changes have been kept back’. To se događa zbog toga što su se promijenile ovisnosti (eng. dependencies) paketa koji su instalirani na računalu (ili serveru) i to na taj način da novi paket mora biti instaliran kako bi se napravio upgrade.

Na primjer, na mojem serveru mi se nedavno pojavila poruka:

debian:~# apt-get upgrade
Reading package lists... Done
Building dependency tree... Done
The following packages have been kept back:
  openssh-client openssh-server
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.

To znači da paketi openssh-client i openssh-server ne mogu biti samo nadograđeni na novu verziju već je potrebno instalirati nove pakete. Jednostavno rješenje je naredba apt-get dist-upgrade.

root@sun:~# apt-get dist-upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
Calculating Upgrade... Done
The following NEW packages will be installed:
  openssh-client openssh-server
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 3697kB of archives.
After unpacking 1860kB of additional disk space will be used.
Do you want to continue? [Y/n]

Na taj način instalirat će se nove verzije svih paketa kojima je potreban upgrade i sve nove ovisnosti koje su potrebne kako bi se nadogradnja mogla izvršiti.

Debian logoDanas sam saznao za jedan vrlo koristan programčić koji služi za slanje e-mail poruka u slučaju da pronađe novu verziju nekog programa.

Svi znamo da je važno svako malo provjeravati i instalirati nove verzije aplikacija i paketa instaliranih na računalu. Na Debian distribuciji postoji koristan programčić pod nazivom cron-apt koji će se pokrenuti jednom dnevno (može i češće ili rjeđe, ovisno kako ga konfigurirate), provjeriti postoji li nova verzija nekog programa instaliranog na računalu (pokrenut će naredbu apt-get upgrade) i ako postoji, obavijestit će vas e-mailom. Vrlo korisno ako ne želite svaki dan na serveru pokretati naredbu za provjeru novih verzija (ili ako imate mnogo servera o kojima brinete pa ne stignete stalno provjeravati).

Instalacija je jednostavna - upišite apt-get install cron-apt i nakon što instalacija završi, treba promijeniti samo nekoliko linija. Otvorite konfiguracijsku datoteku /etc/cron-apt/config i promijenite slijedeće:

  • liniju MAILON=”error” otkomentirajte i promijenite u MAILON=”always
  • liniju MAILTO=”root” otkomentirajte i promijenite u MAILTO=”email.adresa@domena.com (ovdje upišite e-mail adresu na koju želite da vam stižu obavijesti o dostupnosti novih verzija)

Po defaultu će se provjera raditi svaki dan u 4 sata ujutro. Ukoliko to želite promijeniti, otvorite datoteku /etc/cron.d/cron-apt i promijenite kako vam odgovara.

I to je to. Instalacija i konfiguracija su završene i sad ćete dobiti e-mail poruku svaki put kad nova verzija nekog programa postane dostupna.

I još nešto - neki će se upitati “zašto ne bi on odmah sam i instalirao nove verzije?”. To bi bilo idealno, ali kao i inače u životu, stvari ne mogu biti idealne. Automatska instalacija novih verzija programa nije preporučljiva (tako je i podešeno na Debianovoj inicijalnoj konfoguraciji) jer ponekad za instalaciju nove verzije programa instalacijski program traži neki input od korisnika.

Ovako izgleda e-mail poruka koju će korisnik dobiti ukoliko kod provjere program pronađe nove verzije:

CRON-APT RUN [/etc/cron-apt/config]: Wed Mar 26 04:00:07 CET 2008
CRON-APT SLEEP: 686, Wed Mar 26 04:11:33 CET 2008
CRON-APT ACTION: 0-update
CRON-APT LINE: /usr/bin/apt-get update -o quiet=2
CRON-APT ACTION: 3-download
CRON-APT LINE: /usr/bin/apt-get autoclean -y
Reading package lists…
Building dependency tree…
CRON-APT LINE: /usr/bin/apt-get dist-upgrade -d -y -o APT::Get::Show-Upgraded=true
Reading package lists…
Building dependency tree…
The following packages will be upgraded:
  libkrb53 unzip
2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 560kB of archives.
After unpacking 4096B of additional disk space will be used.
Get:1 http://security.debian.org etch/updates/main libkrb53 1.4.4-7etch5 [408kB]
Get:2 http://security.debian.org etch/updates/main unzip 5.52-9etch1 [152kB]
Fetched 560kB in 1s (557kB/s)
Download complete and in download only mode