суббота, 9 ноября 2013 г.

Непростое обновление roundcube

Возникла задача обновить roundcube с версии 0.7 до 0.9.5

Казалось бы, что всё очень просто, но на деле возникли затруднения.

Под катом собственно детальный траблшутинг и подробное решение.



Перед тем, как начинать обновление хорошо бы проверить, что установлено:
# pkg_info | grep roundcube

Затем создать бэкапы на случай если что-то пойдет не так:
# mysqldump -u username -pPASS --all-databases > roundcube-SQL_backup-`date +%F`.sql
и
# tar -czf roundcube_backup-`date +%F`.tar.gz /usr/local/www/roundcube

Теперь проверка процесса обновления:
# portupgrade -nr roundcube

Выведет подробную информацию о том, как будет обновляться порт и какие зависимости за собой он еще потащит.
Можно сказать, что своеобразная демонстрация установки.

Вроде всё отлично, никаких новых зависимостей не появилось.
Запуск обновления порта:
# portupgrade -ir roundcube

ругнется, что отсутствует файл pdo_mysql.so:
"roundcube-0.9.5,1 depends on file: /usr/local/lib/php/20090626/pdo_mysql.so - not found"

Попытка установки из /usr/ports/databases/php5-pdo_mysql/ приведет в ошибке и невозможности установки, что впрочем понятно, так как установлен PHP 5.3.10, а пытается собрать модуль 5.4

Как собственно быть?
Первая мысль пойти в /usr/ports/databases/php53-pdo_mysql/ и собрать там.
Но и здесь будет проблема:
"cannot be installed: doesn't work with lang/php5 port"

Вполне очевидно, что корни проблемы идут от старого PHP, который когда-то был php5, а потом переехал в php53.

И так же понятно, что можно обновить все порты php, или даже перейти на последний билд.
Но иногда это неприемлемо, так как некоторые веб-приложения требуют только определенную версию php.

В итоге с официального зеркала был скачан пакет php5-pdo_mysql-5.3.10.tgz

И собственно установлен:
# pkg_add php5-pdo_mysql-5.3.10.tgz

После чего обновление прошло успешно, а после перезапуска apache новая версия roundcube заработала в полную силу.

Комментариев нет:

Отправить комментарий