Обновление Ubuntu, версия Perl сломала ZImbra
В некотором роде здесь, поскольку вчера вечером я услышал об ошибках в bash, я решил обновить все свои серверы, не только пакеты, но и полную ОС, он прекрасно работал на всех моих серверах, кроме моего почтового сервера, который работал Ubuntu 12.04 и я обновляюсь до 14.04.
Кажется, все работает правильно, но когда я пытаюсь запустить службу Zimbra, я получаю следующее:
Perl API version v5.14.0 of Socket does not match v5.18.0 at
/usr/share/perl/5.18/XSLoader.pm line 92. Compilation failed in
require at /usr/lib/perl/5.18/Sys/Syslog.pm line 10. BEGIN
failed--compilation aborted at /usr/lib/perl/5.18/Sys/Syslog.pm line
10. Compilation failed in require at /opt/zimbra/zimbramon/lib/Zimbra/Mon/Logger.pm line 21. BEGIN
failed--compilation aborted at
/opt/zimbra/zimbramon/lib/Zimbra/Mon/Logger.pm line 21. Compilation
failed in require at /opt/zimbra/bin/zmcontrol line 27. BEGIN
failed--compilation aborted at /opt/zimbra/bin/zmcontrol line 27.
Я догадывался, что это были проблемы с моей версией Perl, поэтому я скачал perlbrew, но когда я пытаюсь изменить версию с 5.18.0 на 5.14.0, я получаю следующее:
Perl API version v5.14.0 of List::Util does not match v5.18.0 at
/usr/share/perl/5.18/XSLoader.pm line 92. Compilation failed in
require at /usr/local/share/perl/5.18.2/App/perlbrew.pm line 22. BEGIN
failed--compilation aborted at
/usr/local/share/perl/5.18.2/App/perlbrew.pm line 22. Compilation
failed in require at /usr/local/bin/perlbrew line 6. BEGIN
failed--compilation aborted at /usr/local/bin/perlbrew line 6.
Не могу увидеть мою версию Zimbra, потому что из zmcontrol -v я получаю следующее:
Perl API version v5.14.0 of Socket does not match v5.18.0 at
/usr/share/perl/5.18/XSLoader.pm line 92. Compilation failed in
require at /usr/lib/perl/5.18/Sys/Syslog.pm line 10. BEGIN
failed--compilation aborted at /usr/lib/perl/5.18/Sys/Syslog.pm line
10. Compilation failed in require at /opt/zimbra/zimbramon/lib/Zimbra/Mon/Logger.pm line 21. BEGIN
failed--compilation aborted at
/opt/zimbra/zimbramon/lib/Zimbra/Mon/Logger.pm line 21. Compilation
failed in require at /opt/zimbra/bin/zmcontrol line 27. BEGIN
failed--compilation aborted at /opt/zimbra/bin/zmcontrol line 27
Довольно большой переплет для меня, любая помощь будет оценена.
3 ответа
Я сделал ту же ошибку, что и вы.
Пакет Zimbra поставляется с множеством бинарных модулей Perl, скомпилированных с версией Perl, которую, как ожидается, можно найти в версии Ubuntu, поддерживаемой установочным пакетом.
Другими словами, установочный пакет Zimbra для Ubuntu 12.04 будет поставляться с модулями Perl, скомпилированными для версии Perl, поставляемой с Ubuntu 12.04.
Установочный пакет Zimbra для Ubuntu 14.04 будет поставляться с теми же модулями Perl, но скомпилированными для версии Perl, поставляемой с Ubuntu 14.04.
Другими словами, поскольку вы не можете отменить обновление Ubuntu, вам придется обновить версию Zimbra с помощью установочного пакета Zimbra, специально созданного для Ubuntu 14.04.
В настоящее время последняя версия Zimbra, ветка 8.5.x, первой поддерживает Ubuntu 14.04.
При обновлении Zimbra не принимайте проверку целостности базы данных хранилища сообщений, как это делается с помощью скрипта из текущей установленной версии Zimbra, который не будет запускаться по той причине, что движок Perl теперь обновляется до другая версия.
Правильные шаги:
Запустите установщик только с опцией программного обеспечения:
./install.sh -s
Не запускайте проверку целостности базы данных
Когда закончите, пожалуйста, запустите установщик обычным способом:
./install.sh
Как сообщает @Jorge of Zimbra на IRC, первый запуск
./install -s
А затем запустите установщик в обычном режиме, обновление должно пройти нормально.