Развертывание под Ubuntu - LernaProject/Lerna GitHub Wiki
Данная инструкция поможет настроить Lerna под Ubuntu. Была получена путем конспектирования своих действий под Ubuntu 15.10 x32, но и на других системах алгоритм не должен сильно отличаться.
Устанавливаем все необходимое
Прежде всего рекомендуется обновить всю систему:
sudo apt-get update
sudo apt-get upgrade
Сначала скачиваем менеджер пакетов Python и обновляем его до последней версии:
sudo apt-get install python3-pip
sudo easy_install3 -U pip
Затем ставим качаться все остальное:
sudo apt-get install postgresql-server-dev-9.4 postgresql-9.4 git mercurial screen graphviz
Пока все это грузится, открываем второй терминал и ставим питоньи пакеты (этой же командой можно обновлять установленные пакеты или докачивать недостающие):
sudo pip3 install -r requirements.txt --upgrade
Немного о том, что же все это такое:
python3-pip
(Required) — Менеджер пакетов Python 3. Автоматически стянет и сам интерпретатор, если тот почему-то не установлен.postgresql-server-dev-9.4
&postgresql-9.4
(Required) — СУБД PostgreSQL. Подойдет также версия 9.3.git
(Required) — Распределенная система управления версиями Git.mercurial
— Распределенная система управления версиями Mercurial. Некоторые репозитории проекта работают под ней.screen
— Программа для создания виртуальных терминалов и переключения между ними. На production'е проект запускается через screen, так что может оказаться полезным иметь его у себя.graphviz
— Построитель графов.Django
(Required) — Web framework, используемый сайтом.PyYAML
(Required) — Библиотека для работы с данными в формате YAML.Pygments
(Required) — Библиотека подсветки исходного кода. Помимо того, что она требуется на сайте (подсветка кодов попыток), ее установка даст удобную утилиту командной строкиpygmentize
.psycopg2
(Required) — Привязка PostgreSQL к Python.pytz
(Required) — Библиотека часовых поясов.django-ajax-selects
(Required) — Написанный на JavaScript модуль автодополнения. Используется в админке.django-debug-toolbar
— Отладчик и профайлер. Незаменимая в разработке вещь.bpython
— Альтернативный фронтенд интерпретатора. Думаю, очевидно, что стандартный совершенно не приспособлен для написания кода (попробуйте запуститьpython3
и написать функцию в десяток строк). Этот поддерживает подсветку кода, автодополнение, вывод документации набираемой функции, откат и еще кучу всего, о чем можно прочитать на официальном сайте.pgcli
— Аналогично, обертка надpsql
. В ней работать с базой данных гораздо удобнее.
Выбираем редактор
Вам потребуется текстовый редактор или IDE. Их существует великое множество: обзор на официальном сайте, опрос на Хабрахабре — каждый может выбрать что-нибудь на свой вкус. Лично мне нравится Sublime Text 3.
Скачиваем проект
По желанию можно настроить соединение с Гитхабом по SSH, тогда не придется каждый раз вводить логин-пароль.
HTTPS:
git clone https://github.com/SoVictor/Lerna
SSH:
git clone [email protected]:SoVictor/Lerna
Кроме того, можно скачать Вики (одну из страниц которой вы сейчас читаете). Это самый обыкновенный
git-репозиторий SoVictor/Lerna.wiki
.
Настраиваем проект
Копируем lerna/local_settings.py.template
в lerna/local_settings.py
и редактируем его. Он
достаточно подробно прокомментирован.
Скачиваем еще немного сторонних библиотек:
./manage.py fetchstatic
Далее принимаемся за базу данных. Здесь возможны два варианта:
-
У вас уже есть БД от проекта Olympic:
Это рекомендуемый метод. Сначала стягиваем последние изменения:
pushd ~/olympic.tusur/trunk hg pull -u rake db:migrate popd
Убеждаемся, что в
lerna/local_settings.py
прописаны правильные реквизиты базы данных. Выполняем следующую команду:./manage.py migrate --fake-initial
Она создаст и заполнит все необходимые для Django таблицы. Приятный бонус в том, что Olympic может продолжать работать с вашей базой данных, ни о чем не подозревая.
-
У вас нет никакой БД:
Значит, надо ее создать:
pgcli -hlocalhost -Upostgres # Или psql, если вы решили не устанавливать pgcli.
ALTER USER postgres PASSWORD 'postgres'; # Пароль суперпользователя СУБД лучше поменять. CREATE USER hydra PASSWORD 'hydra'; CREATE DATABASE lerna OWNER hydra; [Ctrl+D]
Название БД, имя пользователя и пароль можно задать любые, главное — прописать их в
lerna/local_settings.py
в словареDATABASES
.А теперь заполняем схему данных:
./manage.py migrate
Теперь у нас есть полностью рабочая база данных. Правда, она совершенно пустая.
Создаем администратора сайта:
./manage.py createsuperuser
Готово!
Наконец, можно поднять тестовый сервер и насладиться результатом усилий:
./manage.py runserver
По умолчанию сайт доступен по адресу localhost:8000
, но порт можно поменять, передав его
параметром (т. е., например, ./manage.py runserver 3001
).