File: installing.tex

package info (click to toggle)
mongrel2 1.12.0-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 5,976 kB
  • sloc: ansic: 39,083; python: 2,833; sql: 1,555; sh: 467; makefile: 360; asm: 189; yacc: 145; php: 73; awk: 28; sed: 5
file content (153 lines) | stat: -rw-r--r-- 8,340 bytes parent folder | download | duplicates (5)
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 для его настройки. В последующих разделах руководства мы
научимся делать больше --- создавать свои конфигурации, писать
обработчики и другие интересные вещи.