Обновление Roundcube 3.1 до версии 4.2

Както в одной из предыдущих заметок я упоминал о том что на работе использую Roundcube в качестве почтового клиента. А что? Удобно! С любой машины в сети можно посмотреть почту 🙂 Короче клиент зачетный — рекомендую. Неоспоримой позитивной особенностью также является то что проэкт очень шустро розвивается. В результате, вроде, недавно ставил стабильный релиз 3.1, а вчера зашел на офсайт проэкта и увидел что уж давно стабильным считается четвертая версия 🙂 Ну чтож …. надо обновиться!

Первое что рекомендую сделать перед обновлением — бекап рабочей проги + дамп базы. Делается очень просто (у меня прога установлена в /opt/roundcube). Сначала бэкапим базу данных:

black:~# mysqldump -p rcmail |gzip -c > rcmail_SQL-`date +%F`.gz

После этого бекапим саму прогу:

black:~# tar -cjvf roundcube_backup-`date +%F`.tar.bz2 /opt/roundcube

Дальше можно браться за обновление. В случае если чтото накосячим, всегда сможем вернуться к тому что было используя сделанные бекапы 😉

Обновить Roundcube задача несложная, я делал так:

  • качаем более новый релиз (я всегда предпочитаю stable релизы, поэтому скачал стабильный на сегодня 4.2)
  • розпаковываем (можно и не розпаковывать, если есть mc просто открываем в mc)
  • копируем с заменой с нового релиза папки bin, SQL, program, installer, skins/default, plugins и файлик index.php в старую инсталяцию
  • переходим в папку SQL и выполняем обновление sql базы. К примеру у меня roundcube установлен в /opt/roundcube
black:~# cd /opt/roundcube/SQL
  • Теперь обновляем БД (в моем случае MySQL) файликом mysql.update.sql с помощью команды:
black:/opt/roundcube/SQL# mysql -u rcmail -p rcbase < mysql.update.sql

Спросит пароль — введите (ну вы же знаете пароль пользователя roundcube для доступа к БД 😉 ) Если не помните, можно подсмотреть в файлике config/db.inc.php

А вот и засада на которую я нарвался после выполнения этой команды:

black:/opt/roundcube/SQL# mysql -u rcube -p rcmail < mysql.update.sql
Enter password:
ERROR 1091 (42000) at line 7: Can't DROP 'idx'; check that column/key exists
black:/opt/roundcube/SQL#

Оказывается чтобы успешно обновить нашу раундкубовскую БД надо подправить файлик mysql.update.sql «под себя». А точнее началом файла должно стать упоминание нашей текущей версии БД. Я просто удалил сверху файла все до строчки:

-- Updates from version 0.3.1

Короче этот файл должен начинаться строчкой с названием вашей текущей версии, и если это так, то командочка обновления БД нормально отработает 🙂

  • После этого нужно запустить скрипт bin/update.sh Итак, переходим в директорию bin:
black:/opt/roundcube/SQL# cd ../bin
  • И запускаем скрипт для обновления:
black:/opt/roundcube/bin# ./update.sh
This instance of Roundcube is up-to-date.
Have fun!
black:/opt/roundcube/bin#

Ну вот и все! Дальше через веб можно пробовать зайти в RoundCube 😉 У меня все заработало нормально … без шума и пыли 🙂

Вот так просто и незатейливо обновляется roundcube!

P.S. Собственно написал ради того чтоб в следующий раз не забыть как бороться с ошибкой «ERROR 1091 (42000) at line 7: Can’t DROP ‘idx’; check that column/key exists». Остальное все и так понятно 🙂

    • 0legator
    • Июнь 9th, 2011 10:51дп

    Ой пасиба, помог 🙂

  1. Трэкбэков пока нет.

Why ask?