Conversion Debian Cyrus 2.1 to 2.2, experiences

Gabor Gombas gombasg at sztaki.hu
Thu Aug 14 07:21:31 EDT 2008


On Thu, Aug 07, 2008 at 10:51:21AM +0200, Paul van der Vlis wrote:

> make backups:
> cp -a /var/lib/cyrus /var/lib/cyrus-backup
> cp -a /var/spool/sieve /var/spool/sieve-backup
> cp -a /usr/lib/cyrus/ /usr/lib/cyrus-backup
> cp -a /var/spool/cyrus /var/spool/cyrus-backup
> The last one takes long...

Don't you have regular backups? If you don't, you should better start
doing them... Anyway, you can use rsync to make an initial copy while
the old service is still running and a much quicker update when the old
service is stopped.

> remove packages:
> apt-get remove cyrus21-common cyrus21-admin cyrus21-clients
> libcyrus-imap-perl21
> dpkg --get-selections | grep cyrus
> 
> backup config-files:
> mv /etc/imapd.conf /etc/imapd.conf.backup
> mv /etc/cyrus.conf /etc/cyrus.conf.backup

I'd do that _before_ removing the packages...

> install packages:
> apt-get install cyrus-imapd-2.2 cyrus-admin-2.2 cyrus-clients-2.2
> libcyrus-imap-perl22 db4.2-util cyrus-pop3d-2.2
> 
> choose to overwrite cyrus.conf and imapd.conf (I wonder why this files
> are still there).

Because you've used "apt-get remove" instead of "apt-get purge". See the
dpkg manual for the description of the difference between the two
operations. Note: "purge" may also remove the spool directory if you've
choosen to do so, so be careful.

> then convert the databases (on one line):
> find /var/lib/cyrus/ -name \*.db -print -exec /usr/bin/db4.2_upgrade {} \;
> 
> this was my output:
> ----------
> /var/lib/cyrus/mailboxes.db
> db_upgrade: /var/lib/cyrus/mailboxes.db: unrecognized file type
> db_upgrade: DB->upgrade: /var/lib/cyrus/mailboxes.db: Invalid argument
> /var/lib/cyrus/tls_sessions.db
> /var/lib/cyrus/deliver.db
> /var/lib/cyrus/db.backup1/mailboxes.db
> db_upgrade: /var/lib/cyrus/db.backup1/mailboxes.db: unrecognized file type
> db_upgrade: DB->upgrade: /var/lib/cyrus/db.backup1/mailboxes.db: Invalid
> argument
> /var/lib/cyrus/db.backup2/mailboxes.db
> db_upgrade: /var/lib/cyrus/db.backup2/mailboxes.db: unrecognized file type
> db_upgrade: DB->upgrade: /var/lib/cyrus/db.backup2/mailboxes.db: Invalid
> argument
> ----------
> 
> So "mailboxes.db" did not work, but the other databases did.

This was my recipe for a 2.1 -> 2.3 (from experimental) migration:

cd /var/lib/cyrus/db
db3_recover
cd /var/lib/cyrus
db4.X_upgrade deliver.db
rm tls*db
cd db
db4.X_checkpoint -1

(replace 'X' with the correct BDB version)

Gabor

-- 
     ---------------------------------------------------------
     MTA SZTAKI Computer and Automation Research Institute
                Hungarian Academy of Sciences
     ---------------------------------------------------------


More information about the Info-cyrus mailing list