Установка под Linux (Ubuntu, CentOS)

В данном примере описаны некоторые особенности установки Contenido на Linux на примере Ubuntu 12.04.5 LTS (GNU/Linux 3.13.0-53-generic x86_64) в минимальной конфигурации.

Ubuntu

Для подготовки системы к установки понадобятся права администратора. Вот список действий, которые пришлось совершить на Ubuntu, чтобы развернуть инсталляцию Contenido.

1. Создать пользователя с домашним каталогом

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

2. Настроить профиль пользователя

Привычка работать с bash - ничего с ней не поделаешь – пришлось доустановить bash и прописать .bash_profile. Это не обязательно, но какой-то профиль все равно должен быть, так как для нормальной установки необходимо установить

umask 002

3. Установить subversion

Понятно, что без svn инсталлятор просто не развернуть, если только руками притащить исходники и вручную внести несколько исправлений в инсталляционный config.mk.

sudo apt-get install subversion

4. Установить gmake

Все сборочные файлы Contenido написаны под gmake.

sudo apt-get install make
sudo apt-get install gmake

5. Установить gcc

sudo apt-get install gcc

6. Установить patch

sudo apt-get install patch

7. libperl.so

Perl в системе был установлен, версия 5.14.2, сборка под данной версией осуществляется без проблем. Но при сборке самого проблемного модуля: Apache 1.3 линковщик искал и не находил библиотеку libperl.so. На всякий случай был установлен пакет libperl,

sudo apt-cache search libperl
sudo apt-get install libperl5.XX

XX - это найденная в системе версия Perl, в нашем случае 5.14. Но библиотеку libperl.so этот пакет не установил. Установлена она была вместе с dev-версией:

sudo apt-cache install libperl-dev

Еще одна проблема возникла в процессе установки инсталляции, к которой было получено вот такое сообщение об ошибке:

************* WARNING *************

  Your Perl is configured to link against libgdbm,
  but libgdbm.so was not found.
  You could just symlink it to /usr/lib/x86_64-linux-gnu/libgdbm.so.3.0.0


************* WARNING *************

Если таковое случилось, рецепт указан в самом сообщении – найти или доустановить libgdbm.so и сделать симлинк к библиотеке, примерно так:

sudo ln -s /usr/lib/x86_64-linux-gnu/libgdbm.so.3.0.0 /usr/lib/x86_64-linux-gnu/libgdbm.so

8. Net::SSLeay, Crypt::SSLeay

Эти две библиотеки отказались собираться из-за найденных несовместимостей в компиляторах, использованных при сборке Perl, системной библиотеки шифрования и данных двух модулей. Вывод - собрать глобально:

sudo apt-get install libnet-ssleay-perl
sudo apt-get install libcrypt-ssleay-perl

В процессе установки в случае конфликта версий выбрать [S]kip!

9. Клиент постгреса psql

sudo apt-cache search postgresql-client
sudo apt-get install postgresql-client-X.X

X.X - версия PostgreSQL, которую вы собираетесь использовать для проектов и которая будет найдена в пакетах.

10. Драйвер Постгреса тоже должен быть установлен глобально

sudo apt-get install libdbd-pg-perl

11. Установить глобально ImageMagick

Хоть тушкой, хоть чучелом, но поставить. Идеально – без X11 и в соответствии с рекомендациями. Но в тестируемой системе пришлось ставить пакет полностью:

sudo apt-get install imagemagick

12. Linux::Pid

Для работы Apache::SizeLimit оказался необходим Linux::Pid. Порт наиболее последней версии (0.04) был добавлен в дистрибутив, соответствующее правило было создано в конфигах инсталляции. Но если вдруг по какой-то причине в процессе выполнения make install данный порт не будет установлен, придется сделать это вручную:

make port_install PORT=Linux-Pid

в корне инсталляции.

13. nging

Здесь мы уже выходим за рамки установки самой Contenido, простое напоминание - надо установить, настроить и запустить nginx.

14. Далее везде

После всех предварительных действий можно приступать к установке (см. УстановкаРазвертывание проекта и далее везде). Установка в любом случае потребует пристального внимания.

Возможные проблемы

Естественно, при установке на других версиях Linux вообще и Ubuntu, в частности, на других версиях Perl и gcc возникнут какие-то еще казусы. Основной совет, который можно дать - смотреть, на чем сломалось, чего не хватило для установки и, по возможности, доставить ЭТО в систему. И – обязательно! – написать нам. Как в случае, если НЕ удалось решить проблему, так и в случае, если удалось.

CentOS

На представленной CentOS в качестве программного менеджера использовался yum. Почти все вышеперечисленные рекомендации остались верны с поправкой на формат вызова менеджера и библиотек. Однако, добавились и свои чудесатости:

  • Библиотеки Perl развернуты без учета каталога версии (видимо, не предполагается использование сразу нескольких версий Perl в системе)
  • Добавились библиотеки, которые необходимо собирать заранее

Пункты с 1 по 6

Совершенно аналогичны предыдущему разделу.

7. Дополнительные библиотеки

sudo yum install perl-Tk-devel.x86_64
sudo yum install perl-Module-Build-XSUtil.noarch
sudo yum install perl-XML-Parser.x86_64

При установке XML::Parser в момент развертывания инсталляции, соответственно, необходимо отказаться от установки в пользу системного модуля.

Пункты с 8 по 12

Аналогичны предыдущему разделу. ImageMagick также пришлось ставить со всей X-оберткой.

13. Проблема при установке Apache

При установке apache столкнулись с попыткой найти скрипт xsubpp; по документации эту утилиты ставит вместе с собой ExtUtils::MakeMaker или Module::Build. И кто-то из них этот скрипт честно поставил, но совершенно не туда, где его искал апач. Вылечилось установкой симлинка:

sudo ln -s /usr/bin/xsubpp /usr/share/perl5/ExtUtils/

 

Структура директорий инсталляции Contenido 7
SRC versus USR или чем отличается Боевая инсталляция от Девелоперской
Установка под Linux (Ubuntu, CentOS)
Система управляющих команд Contenido 7