1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
|
\chapter{Установка}
Mongrel2 компилируется на большинстве Unix-систем, в частности на Linux и Mac OSX.
Он написан на C (\emph{не на Ruby}) и использует достаточно простой код и стандартные
библиотеки. В остальном же, после того как вы поставите все зависимости,
команды \shell{make \&\& sudo make install} будет достаточно, чтобы поставить Mongrel2.
Если, когда я упомянул зависимости, вы начали тяжело вздыхать, то, мой друг,
добро пожаловать в будущее. А кто говорил, что я хочу изобретать велосипед?
Да, мой софт зависит от другого софта, поэтому все зависимости надо установить.
В противном случае вам придётся подождать лет этак 10 пока я напишу всё своё
и всё с нуля, как многие недальновидные идиоты.
Итак, идея понята? Отлично, приступим.
\section{Установка зависимостей}
Чтобы всё заработало, нужно установить следующее:
\begin{itemize}
\item GNU make (gmake).
\item \href{http://zeromq.org}{ZeroMQ 2.0.10} для передачи сообщений.
\item \href{http://www.sqlite.org/}{SQLite3}.
\end{itemize}
Если вы будете устанавливать программы в перечисленном порядке, то всё должно быть хорошо.
Поскольку каждая система уникальна, то сложно сказать точно, как устанавливать
эти пакеты на вашей ОС. В листинге Source 1 перечислены команды, которые я
выполнял у себя на компьютере.
\begin{code}{Установка зависимостей на ArchLinux}
\begin{lstlisting}
# install ZeroMQ
> wget http://www.zeromq.org/local--files/area:download/zeromq-2.1.7.tar.gz
> tar -xzvf zeromq-2.1.7.tar.gz
> cd zeromq-2.1.7/
> ./configure
> make
> sudo make install
# install sqlite3
> sudo pacman -S sqlite3
\end{lstlisting}
\end{code}
Если в процессе установки вы наткнётесь на какие-либо пакеты, которые
не установлены по-умолчанию в вашем дистрибутиве, что вполне может быть
в системах Debian и SuSE, то вам также придётся их доставить.
\section{Загрузка исходников}
Если всё прошло гладко, то вы можете скачать исходники Mongrel2 и
попытаться скомпилировать. Исходники можно получить двумя путями:
\begin{enumerate}
\item Установить \href{http://fossil-scm.org}{Fossil SCM} (это такая система управления версиями) и сделать check-out.
\item Взять исходники с сайта, распаковать и установить.
\end{enumerate}
\subsection{Загрузка исходников из .tar.bz2}
Самый простой способ установки --- из запакованных исходников, которые лежат на сайте.
Зайдите в \href{http://mongrel2.org/home#download}{раздел Download} и скачайте .tar.bz2 или .zip файл.
\subsection{Загрузка исходников с помощью Fossil}
Если вы всегда хотите иметь самую свежую
версию, то установите fossil и периодически обновляйтесь. В этом конечно нет
необходимости, но если хотите оставаться впереди планеты всей, то вот что нужно сделать:
\begin{enumerate}
\item Зайдите на \href{http://www.fossil-scm.org/download.html}{страничку скачивания fossil},
возьмите инсталяционный файл для вашей системы, либо исходные коды в tar.gz.
\item Выполните \href{http://fossil-scm.org/index.html/doc/tip/www/build.wiki}{инструкции по установке}
и поставьте на свою машину.
\item Если у fossil возникнут проблемы с подключением к mongrel2.org, дайте мне знать ---
возможно мне придётся обновиться.
\end{enumerate}
Как только установите fossil, вы можете создать копию Mongrel2:
\begin{code}{Клонирование исходников}
\begin{lstlisting}
> mkdir ~/fossils
> fossil clone http://mongrel2.org:44445 ~/fossils/mongrel2.fossil
> mkdir mongrel2
> cd mongrel2
> fossil open ~/fossils/mongrel2.fossil
\end{lstlisting}
\end{code}
Убедитесь, что вы выполняете команды в заданном порядке, иначе будут ошибки.
Например, если вы не создадите директорию \file{\~{}/fossils},
fossil не сможет склонировать файл и т.п. В общем, будьте бдительны и не вините fossil
во всех грехах.
\section{Сборка и установка}
Все сводится к выполнению одной единственной команды: \shell{make all install}
Не нужно запускать \shell{./configure}, да её и нет, поскольку Mongrel2 избегает
какой-либо зависимости от операционной системы и все различия обрабатывает в коде.
Конечный результат таков:
\begin{enumerate}
\item Mongrel2 компилируется без ошибок.
\item Все юнит-тесты работают. \footnote{Если что-то не работает, пожалуйста, сообщите.}
\item Утилита m2sh установлена.
\item Наконец, программа mongrel2 установлена.
\end{enumerate}
Если вы допустили ошибку и что-то из перечисленного выше не сработало --- найдите
и устраните ошибку и выполните \shell{make clean all \&\& sudo make install} --- всё скомпилируется
заново.
\section{Тестирование}
Когда вы закончите, вы скорее всего захотите проверить, что всё установилось
правильно. Вы можете провести испытание на тестовом конфигурационном файле ---
\file{tests/config.sqlite}:
\begin{code}{Первый пробный запуск}
\begin{lstlisting}
> mkdir run
> mkdir logs
> mkdir tmp
> m2sh servers -db tests/config.sqlite
> m2sh start -db tests/config.sqlite -host localhost
\end{lstlisting}
\end{code}
Пока что нажмите CTRL-C, чтобы выйти, а позже мы ещё поиграемся с настройками.
\section{Обновление}
\begin{code}{Обновите свою рабочую директорию}
\begin{lstlisting}
> cd mongrel2
> fossil pull http://mongrel2.org
> fossil up trunk
\end{lstlisting}
\end{code}
Не забываем --- \shell{make clean all \&\& sudo make install}.
\section{Далее}
Теперь у вас есть веб-сервер Mongrel2, который запускается и работает, а также
утилита m2sh для его настройки. В последующих разделах руководства мы
научимся делать больше --- создавать свои конфигурации, писать
обработчики и другие интересные вещи.
|