Tuesday, April 17, 2012

Debian - автоматичен update и dpkg опцията hold.

Случвало ли ви се е да направите upgrade при който някои от пакетите да ви развалят конфигурацията. Ето какво често се случва.

Стандартна инсталация на Debian при която някои от пакетите са преправени от мен. Dovecot-imapd пакета нямаше поддръжка за vpopmail затова ми се наложи да го rebuild с тази опция. Всичко работи до момента в който направите upgrade. Upgrade процесът премахва ръчно преправените пакети на dovecot и слага оригиналните. В този случай задължително е да ползвате опцията на dpkg - HOLD. Това прави така наречените HOLD пакети да не бъдат обновявани при цялостен upgrade на системата.

Следните 2 пакета не искам да бъдат обновявани при upgrade  на системата:

root@server:~# dpkg -l | grep dove
ii  dovecot-common                    1:1.2.15-7     secure mail server that supports mbox and maildir mailboxes
ii  dovecot-imapd                      1:1.2.15-7       secure IMAP server that supports mbox and maildir mailboxes

За целта е нужно да се направи следното:

root@server:~# echo dovecot-common hold | dpkg --set-selections
root@server:~# echo dovecot-imapd hold | dpkg --set-selections

Ето и разликата:

root@server:~# dpkg -l | grep dove
hi  dovecot-common                    1:1.2.15-7     secure mail server that supports mbox and maildir mailboxes
hi  dovecot-imapd                      1:1.2.15-7       secure IMAP server that supports mbox and maildir mailboxes

Забележете буквата 'h' в началото на пакетите. Подобна информация можем да получим и чрез:

root@server:~# dpkg --get-selections | grep hold
dovecot-common                                hold
dovecot-imapd                                   hold

Остава само да сложите в crontab-а един ред за автоматичен update (apt-get update && apt-get -y dist-upgrade) и машината спокойно може да я забравите някъде зазидана след поредния ремонт...



1 comment:

Георги Георгиев said...

Аз в момента на един сървър с Debian съм сложил unattended-upgrades и в крайна сметка не е лош вариант, защото поддържа и логове + известия :)