Я написал некоторое программное обеспечение, которое использует код Perl, работающий внутри Apache (с использованием mod_perl), для работы (среди прочего) с Subversion (с использованием модуля mod_dav_svn).
В настоящее время я пишу несколько инструкций о том, как настроить и запустить эту систему в различных ОС, и у меня возникли проблемы с Solaris.
Похоже, мой вариант - собрать либо mod_perl, либо subversion из исходников, чем я и был действительно надеясь избежать, поскольку я пытаюсь сделать инструкции по установке как можно более нетехническими.
Итак, доступен ли бинарный пакет, который позволяет мне запускать mod_perl и mod_dav_svn в том же Apache на Solaris 10, который я пропустил?
В противном случае, если есть кто-то, кому приходилось делать это раньше, не хотели бы они прокомментировать, какая сборка svn или сборка mod_perl будет наименьшей головной болью.
Сборка пакетов из исходных текстов в целом является сложной задачей, но как только это будет сделано, вы можете использовать его для создания пакета и предоставления двоичных файлов самостоятельно, избавив других от необходимости делать это для вашего проекта.
Я делал только Subversion, а не mod_perl, но я взглянул на скрипт сборки, который мы используем для mod_perl (к сожалению, он очень специфичен для нашей среды и не принесет вам особой пользы), и он выглядит как mod_perl будет самым простым вариантом, так как у него меньше зависимостей (только perl и apache).
Сборка mod_perl выглядит так же просто, как perl Makefile.PL MP_APXS=/path/to/your/apache/bin/apxs; make; make install
.
Subversion, с другой стороны, требует как минимум apr и apru и, в зависимости от ваших требований, других зависимостей (например, мы строим с привязками python для trac). Если вы решите скомпилировать Subversion, вы, вероятно, захотите отключить как можно больше зависимостей (например, если вам не нужна поддержка berkely db, передайте --without-berkley-db
настроить). Если configure жалуется на отсутствие зависимости, решите, нужна ли она вам, и просто добавьте --without-featurex
если вам это не нужно.
Сначала вам нужно будет собрать apr и apru (или установить бинарные пакеты) и передать --with-apr=/some/path
и --with-apr-util=/some/path
параметры (оба являются путями к файлу apr / apu-1-config, расположенному в каталоге bin).
Получение поддержки SSL также может потребовать некоторой работы, поскольку библиотеки ssl solaris находятся в месте, которое обычно не определяется. Убедитесь, что у вас есть -I/usr/sfw/include
в переменной среды CFLAGS и -L/usr/sfw/lib -R/usr/sfw/lib
(или / usr / sfw / lib / amd64 или sparcv9, если вы хотите 64-разрядную версию) в переменной среды LDFLAGS. Обе переменные необходимо установить перед запуском configure. Если вы создаете 32-разрядную версию, вам, возможно, удастся просто выполнить --with-ssl=/usr/sfw
, но маловероятно, что Subversion правильно найдет 64-битные библиотеки, если вам требуется 64-битная версия без правильной настройки CFLAGS / LDFLAGS.
Как и при создании mod_perl, вам нужно сообщить Subversion, где находится apxs, просто пропустите --with-apxs=/path/to/apache/bin/apxs
настроить.
Этот последний совет, вероятно, очевиден, но на всякий случай: превратите инструкции сборки в сценарий (или Makefile), чтобы вы могли легко повторить их на новых машинах или с немного другими параметрами конфигурации.
Просто отвечу здесь, чтобы записать, что сработало для меня, следуя очень полезному ответу Марка.
Поскольку компиляция mod_perl выглядела менее хлопотно, чем компиляция Subversion, я установил Subversion 1.6 и его зависимости (включая Apache 2.2.15) из sunfreeware.com.
Затем я скачал и собрал mod_perl согласно инструкции.
Мне пришлось отредактировать /usr/local/apache2/bin/apxs
потому что предполагалось, что Perl находится в /usr/local/bin
вместо того /usr/bin
но после этого он все скомпилировал и поставил mod_perl.so
В правильном месте.
Другая небольшая проблема с установкой модулей Perl против стандартного Perl 5.8, включенного в Solaris, заключается в том, что он был скомпилирован с использованием компилятора Sun, а не gcc, и у вас будет меньше проблем, если вы скачать и используйте это вместо этого (убедитесь, что каталог bin находится перед gcc на вашем пути).
Я только что осознал, что OpenCSW пакеты могут быть другим решением. Похоже, у них есть бинарные пакеты apache, mod_perl и subversion. Но я их еще не пробовал.
Просто используйте Web Stack, интегрированную компиляцию этих продуктов Sun (вы можете выборочно установить то, что вам нужно):
Программное обеспечение Web Stack включает следующее программное обеспечение:
- Серверное программное обеспечение - веб-сервер Apache, Apache Tomcat, прокси-сервер Squid, lighttpd.
- Программное обеспечение БД - MySQL Server.
- Среда программирования - PHP, Perl, Ruby и Python.
- Программное обеспечение для кеширования - memcached.
Полное руководство здесь: http://wikis.sun.com/display/WebStack/Web+Stack+Getting+Started+Guide