Руководство по установке Trac для версии 1.2
Table of Contents
На других языках:
- English
- Русский
Trac написан на языке программирования Python и использует базы данных SQLite, PostgreSQL или MySQL. Для генерации HTML, Trac использует систему шаблонов Genshi.
Trac может быть локализован, и скорее всего перевод на ваш язык уже доступен. Если вы хотите использовать интерфейс Trac на другом языке, убедитесь в том, что у вас установлен дополнительный пакет Babel. Обратите также ваше внимание на дополнительные шаги, которые потребуются для поддержки локализации в разделе Installing Trac ниже. При отсутствии пакета Babel, вы получите только английскую версию.
Если вас интересует поддержка новых переводов Trac на другие языки или поддержка существующих переводов, ознакомьтесь с документацией TracL10N.
Далее приведены общие инструкции по установке и настройке Trac. Несмотря на то что вы можете найти инструкции по установке Trac на конкретные платформы в разделе TracInstallPlatforms, мы советуем предварительно ознакомится с этими общими инструкциями для лучшего понимания описанных в них задач.
Этапы установки
Зависимости
Обязательное зависимости
Перед установкой Trac, вам необходимо установить следующие пакеты:
- Python версии ≥ 2.6 и < 3.0 (обратите внимание, мы не поддерживаем Python 2.5 с этого выпуска)
- setuptools версии ≥ 0.6
- Genshi версии ≥ 0.6
Вам также необходима система управления базами данных и соответствующие библиотеки для Python (python bindings). Данная версия Trac поддерживает СУБД SQLite, PostgreSQL и MySQL.
Для базы SQLite
Так как вы должны использовать Python 2.6 или 2.7, у вас уже установлены все требуемые для SQLite библиотеки имеющиеся в стандартной поставке Python (модуль sqlite3
).
При желаниии вы можете установить более новую версию pysqlite чем та, что поставляется в дистрибутиве Python. Для более подробной информации, смотрите PySqlite.
Для базы PostgreSQL
Вам нужно установить СУБД и соответствующую библиотеку Python:
- PostgreSQL, версия 8.0 или новее.
- psycopg2, версия 2.0 или новее.
Для более подробной информации, смотрите Серверы СУБД.
Для базы MySQL
Trac теперь может работать с MySQL, если вы будете следовать инструкциям.
Очень важно внимательно прочитать страницу MySQLdb перед созданием базы данных.
Опциональные зависимости
Subversion
- Subversion, 1.6 или новее и соответствующие библиотеки Python.
Скомпилированные SWIG библиотеки доступны для различных платформ. (Удачи в поисках скомпилированных SWIG библиотек для любого Windows пакета. TracSubversion содержит ссылку на Algazam, где есть библиотеки, работающие с Python 2.6.)
Для информации о возникающих проблемах обратитесь к странице TracSubversion
Примечание:
- Заметьте, что Trac не использует PySVN, он ещё не работает с новыми
ctype
-style bindings. - При использовании Subversion, Trac должен быть установлен на той же машине. Удаленные репозитарии в данный момент не поддерживаются.
Git
Поддерживается Git версии 1.5.6 или новее. Более подробная информация доступна на странице TracGit.
Другие системы контроля версий
Поддержка для других систем контроля версий предоставляется по средствам сторонних плагинов. Смотрите PluginList#VersionControlSystems или VersionControlSystem.
Web-сервер
Web-сервер не является обязательным требованием, так как Trac предоставляется вместе со встроенным сервером, подробнее смотрите ниже в разделе Запуск встроенного сервера.
В противном случае вы можете настроить Trac для запуска в любом из следующих окружений:
- Apache с модулями
- mod_wsgi, смотрите TracModWSGI и ModWSGI IntegrationWithTrac.
- mod_python 3.5.0, смотрите TracModPython
- FastCGI-совместимый web-сервер (смотрите TracFastCgi)
- AJP-совместимый web-сервер (смотрите TracOnWindowsIisAjp)
- Microsoft IIS с FastCGI и FastCGI-to-WSGI шлюзом (смотрите IIS с FastCGI)
- CGI-совместимый web-сервер (смотрите TracCgi), но использование Trac в качестве cgi-скрипта сильно обескураживает, лучше используйте одну из предыдущих опций.
Прочие пакеты Python
- Babel, версия 0.9.6 или ≥ 1.3, необходим для поддержки переводов
- docutils, версия ≥ 0.3.9 для WikiRestructuredText.
- Pygments для [подсветки синтаксиса TracSyntaxColoring].
- pytz для получения полного списка временных зон, иначе Trac выдаст ограниченный список временных зон в соответствии со своей внутренней реализацией.
Внимание: Доступные версии данных зависимостей не обязательно взаимозаменяемы, поэтому обратите внимание на номера версий. Если у вас возникли проблемы с работой Trac, пожалуйста, ещё раз проверьте все зависимости, прежде чем обращаться за помощью в MailingList или IrcChannel.
Пожалуйста обратитесь к документации этих пакетов, чтобы найти информацию каким наилучшим способом они могут быть установлены. Дополнительно, большинство из платформо-специфических инструкций так же описывают установку этих зависимостей. Однако имейте в виду, что информация там вероятно, касается более старых версий Trac, чем та, которую вы устанавливаете.
Установка Trac
Инструмент командной строки trac-admin, используется для создания и поддержки проектного окружения ,а также tracd автономный сервер устанавливаются вместе с Trac. Существует несколько способов установки Trac.
В данном руководстве предполагается, что у вас есть права пользователя root
или возможность использовать утилиту sudo
. Umask 0002
должна использоваться для обычной установки на Unix-подобные платформы.
Использование easy_install
Trac может быть установлен из PyPI или Subversion репозитария с помощью утилит пакета setuptools.
Вот несколько примеров:
- Установка последней стабильной версии Trac:
$ easy_install Trac
- Установка последней версии находящейся в разработке:
Обратите внимание, что в этом случае у вас не будет возможности запустить локализованную версию Trac; либо используйте стабильную версию, либо выполните установку из исходных файлов
$ easy_install https://download.edgewall.org/trac/Trac-latest-dev.tar.gz
Более подробная информация доступна на странице setuptools.
Предупреждение Setuptools: Если ваша версия setuptools находится в диапазоне от 5.4 до 5.6, переменная окружения PKG_RESOURCES_CACHE_ZIP_MANIFESTS
должна быть установлена, воизбежание существенной потери производительности. Подробнее смотрите Deploying Trac.
Использование pip
'pip' это замена easy_install, которая очень полезна для быстрой установки пакетов Python. Для установки и запуска Trac менее чем за 5 минут:
Предполагаем что вы хотите видеть результат работы pip в /opt/user/trac
$ pip install trac psycopg2
или
$ pip install trac mysql-python
Убедитесь, что заголовочные файлы, характерные для вашей ОС, доступны pip для выполнения автоматической сборки библиотек PostgreSQL (libpq-dev
) или MySQL (libmysqlclient-dev
).
pip автоматически распознает все необходимые зависимости (такие как Genshi, pygments и т.д.), скачает последние версии пакетов с pypi.python.org и самостоятельно установит их в /opt/user/trac
.
Все команды (tracd
, trac-admin
) будут доступны из /opt/user/trac/bin
. Они так же могут использоваться для mod_python
(при использовании директивы PythonHandler
) и mod_wsgi
(при использовании директивы WSGIDaemonProcess
).
Дополнительно, с помощью pip вы можете установить некоторые подключаемые модули Trac (перечисленные здесь)
Сборка из исходных файлов
Так же доступна типичная для Python установка из базовой директории с исходными файлами. Вы можете получить архивы .tar.gz или .zip соответствующей версии (например, Trac-1.0.tar.gz
) на странице TracDownload, или можете скачать исходные файлы непосредственно из репозитария. Смотрите подробнее TracRepositories.
$ python ./setup.py install
Вам нужны права root или эквивалентные для выполнения этого шага.
Данная команда выполнит байт-компиляцию исходного кода на Python и установить его как файл .egg или каталог в директорию site-packages
вашего дистрибутива Python. Файл .egg будет также содержать все стандартные ресурсы, необходимые Trac, такие как htdocs
и templates
.
Если вы выполняете установку из исходных файлов и хотите добавить в Trac поддержку других языков, убедитесь что пакет Babel установлен. Только после этого, выполните команду install
(или просто выполните команду install
повторно если до этого пакет Babel не был у вас установлен):
$ python ./setup.py install
Кроме того, вы можете выполнить команду bdist_egg
и скопировать файл .egg из каталога dist/
в любое расположение на ваш выбор, а так же можете создать установочный файл Windows (bdist_wininst
).
Использование установщика
В операционной системе Windows, Trac может быть установлен с помощью стандартного установщика .exe, доступного на странице TracDownload. Установочные файлы доступны для обеих архитектур Python 32- и 64-битной. Убедитесь что установочные файлы соответствуют вашей архитектуре Python.
Использование менеджера пакетов
Trac может быть доступен в репозитарии пакетов для вашей системы. В любом случае примите к сведению, что версия предоставляемая вашим менеджером пакетов, скорее всего не будет последним доступным релизом.
Расширенные опции easy_install
Для установки Trac в нестандартное расположение, или для получения информации по дополнительным параметрам установки, выполните команду:
$ easy_install --help
Так же смотрите Установка Модулей Python для подробной информации.
Особенно вас может заинтересовать опция:
$ easy_install --prefix=/path/to/installdir
или, при установке Trac в операционной системе Mac OS X:
$ easy_install --prefix=/usr/local --install-dir=/Library/Python/2.6/site-packages
Примечание Mac OS X: В Mac OS X 10.6, запуск команды easy_install trac
выполнит установку в каталоги /usr/local
и /Library/Python/2.6/site-packages
по-умолчанию.
Команды tracd
и trac-admin
будут расположены в /usr/local/bin
, а библиотеки и зависимости Trac в /Library/Python/2.6/site-packages
, который Apple предпочитает в качестве хранилища по-умолчанию, для сторонних пакетов и приложений Python.
Создание окружения проекта
Окружение Trac - это серверное окружение, в котором Trac хранит информацию такую как вики страницы, карточки, отчёты, настройки и т.д. Окружение - это по существу директория, в которой содержится конфигурационный файл, а также другие файлы и директории.
Новое окружение создаётся с помощью trac-admin:
$ trac-admin /path/to/myproject initenv
Вам будет предложено ввести информацию, необходимую для создания окружения: имя вашего проекта и строку подключения к базе данных. Если вы не уверены в том, какую информацию нужно вводить в качестве параметров, просто нажмите клавишу <Enter>
, чтобы использовать значение по-умолчанию.
Использование строки соединения с базой данных по-умолчанию, работает всегда, так как SQLite у вас всегда установлен. Для других СУБД необходимо заранее разработать план и иметь установленную и полностью рабочую базу данных к этому моменту.
Также примите к сведению, что значения введенные на этом шаге, могут быть изменены позднее, при помощи TracAdmin или непосредственно, редактированием файла конфигурации conf/trac.ini.
Предупреждение Файловая система: При выборе расположения вашего окружения, убедитесь что файловая система носителя где расположен каталог вашего окружения поддерживает временные метки включающие миллисекунды (например, не такие как ext2
или ext3
в Linux, или HFS+ в OSX), так как изменения в файле conf/trac.ini
будут отслеживаться для определения необходимости в перезагрузке. Слишком грубое разрешение временной метки может повлечь нарушение целостности в Trac < 1.0.2. Отличный совет, выбрать платформу с более точными временными метками, вне зависимости от версии Trac.
В завершении, убедитесь что аккаунт пользователя под которым должен запускаться веб-интерфейс, имеет права на изменение каталога окружения и всех файлов в нем. Вы можете добится этого запустив команду trac-admin ... initenv
от имени этого пользователя, если нет, вы должны изменить пользователя самостоятельно. Например в Linux, веб-сервер запускается от имени пользователя apache
и группы apache
, введите команду:
$ chown -R apache:apache /path/to/myproject
Текущее имя пользователя и имя группы сервера Apache, не обязательно должно иметь значение apache
, и определяется в файле настроек сервера, директивами User
и Group
(если вы используете Apache httpd
).
Внимание: Пожалуйста используйте только ASCII-символы в имени пользователя и в пути к папке проекта, здесь не поддерживаются символы unicode.
Развертывание Trac
Предупреждение Setuptools: Если версия вашего пакета setuptools находится в диапазоне от 5.4 до 5.6, переменная окруженя PKG_RESOURCES_CACHE_ZIP_MANIFESTS
должна быть установлена, для предотвращения существенного снижения производительности.
При запуске tracd
, переменная окружения может быть установлена на уровне системы или только на уровне пользователя который запускает процесс tracd
. Есть несколько способов сделать то, о чем здесь говорится и зависит это от того, какой дистрибутив операционной системы у вас установлен.
Для установки переменной на системном уровне нужно добавить скрипт оболочки с оператором export
в /etc/profile.d
. Для установки на уровне пользовательской сессии оператор export
может быть добавлен в ~/.profile
.
export PKG_RESOURCES_CACHE_ZIP_MANIFESTS=1
Другой вариант, когда переменная устанавливается в оболочке перед запуском tracd
:
$ PKG_RESOURCES_CACHE_ZIP_MANIFESTS=1 tracd --port 8000 /path/to/myproject
При запуске веб-сервера Apache, пользователи Ubuntu/Debian должны добавить оператор export
в /etc/apache2/envvars
. Пользователи RedHat/CentOS/Fedora должны добавить оператор export
в /etc/sysconfig/httpd
.
Запуск встроенного сервера
После создания окружения Trac, вы легко можете ознакомиться с его веб-интерфейсом запустив встроенный сервер tracd:
$ tracd --port 8000 /path/to/myproject
Затем запустите браузер и перейдите на страницу http://localhost:8000/
. Вы должны увидеть простой список всех окружений о которых известно tracd
. Перейдите по ссылке в только что созданное окружение, и вы увидите Trac в действии. Если вы планируете использовать Trac для управления только одним проектом вы можете заставить встроенный сервер, пропустить список окружений, запустив его следующим образом:
$ tracd -s --port 8000 /path/to/myproject
Запуск Trac на веб-сервере
Trac поддерживает различные опции подключения к "реальному" веб-серверу:
- FastCGI
- Apache с mod_wsgi
- Apache с mod_python
- CGI (не должен использоваться, так как производительность далека от оптимальной)
Trac так же существует поддержка AJP, их вы можете выбрать если хотите подключится к IIS. Возможны и другие сценарии развертывания: nginx, uwsgi, Isapi-wsgi и прочие.
Создание директории Trac - cgi-bin
Скрипты приложения для CGI, FastCGI и mod-wsgi могут быть созданы при помощи команды trac-admin deploy
:
deploy <directory> Extract static resources from Trac and all plugins
Установите веб-серверу права на выполнение для скриптов в директории cgi-bin
.
Например, следующие шаги создадут типичную структуру каталогов:
$ mkdir -p /var/trac $ trac-admin /var/trac/<project> initenv $ trac-admin /var/trac/<project> deploy /var/www $ ls /var/www cgi-bin htdocs $ chmod ugo+x /var/www/cgi-bin/*
Размещение статических ресурсов
Без дополнительной настройки Trac будет обрабатывать запросы к статическим ресурсам таким как таблицы стилей и изображения. В любом случае, кроме развертывания встроенного сервера TracStandalone, это является не оптимальным, так как веб-сервер может напрямую обслуживать статические ресурсы. При использовании CGI, это крайне нежелательно , так как приводит к ужасной производительности.
Веб-сервера такие как Apache позволяют вам создавать Aliases-псевдонимы для ресурсов, присваивая им виртуальный URL который не обязательно отражает их физическое расположение в файловой системе. Мы можем перенапрявить запросы к статическим ресурсам напрямую к файловой системе, чтобы избежать обработки данных запросов в Trac.
Существуют два основных пути URL для статических ресурсов /chrome/common
и /chrome/site
. Плагины могут добавлять собственные ресурсы, обычно используется путь /chrome/<plugin>
.
Общий псевдоним /chrome
может быть использован если статические ресурсы извлечены для всех плагинов. Это означает, что команда deploy
(описанная в предыдущем разделе) должна выполнятся каждый раз после установки или обновления плагинов предоставляющих статические ресурсы, или после изменения ресурсов в каталоге $env/htdocs
. Возможно, это подходит для большинства вариантов развертывания, но это может оказаться не тем что хотелось бы вам. Например, если вы хотите загружать плагины через интерфейс администратора в разделе Plugins.
Команда deploy
создает каталог htdocs
содержащий:
common/
- статические ресурсы Tracsite/
- копия каталогаhtdocs/
окруженияshared
- статические ресурсы используемые несколькими окружениями Trac, распологающиеся по адресу определяемому параметром[inherit]
htdocs_dir
<plugin>/
- один каталог для каждого каталога ресурсов предоставляемых плагинами включенными в данном окружении
Следующий пример создает единый псевдоним /chrome
. Если на ваш взгляд это не правильный подход к установке, вам нужно просто создать больше конкретных псевдонимов:
Alias /trac/chrome/common /path/to/trac/htdocs/common Alias /trac/chrome/site /path/to/trac/htdocs/site Alias /trac/chrome/shared /path/to/trac/htdocs/shared Alias /trac/chrome/<plugin> /path/to/trac/htdocs/<plugin>
Пример: Apache и ScriptAlias
Предположим, что развертывание было выполнено следующим образом:
$ trac-admin /var/trac/<project> deploy /var/www
Добавьте следующий фрагмент кода в конфигурационный файл Apache, изменив пути в соответствии с вашей структурой развертывания. Данный фрагмент кода должен быть размещен перед директивами ScriptAlias
или WSGIScriptAlias
, так как указанные директивы перенаправляют все входящие запросы в приложение Trac:
Alias /trac/chrome /path/to/trac/htdocs <Directory "/path/to/www/trac/htdocs"> # Для Apache 2.2 <IfModule !mod_authz_core.c> Order allow,deny Allow from all </IfModule> # Для Apache 2.4 <IfModule mod_authz_core.c> Require all granted </IfModule> </Directory>
При использовании mod_python, так же добавьте следующий фрагмент, иначе все псевдонимы будут проигнорированы:
<Location "/trac/chrome/common"> SetHandler None </Location>
Другой альтернативой псевдониму /trac/chrome/common
является то, что Trac может генерировать прямые ссылки для этих статических ресурсов(и только для этих), для этого используется параметр конфигурации:
[trac] htdocs_location = http://static.example.org/trac-common/
Обратите внимание, что это упрощает назначение выделенного домена этими статическими ресурсами, предпочтительно без файлов cookie.
Конечно, от вас по прежнему требуется создать каталог htdocs/common
для Trac доступный по данному URL, через веб-сервер, например копированием(или созданием жёсткой ссылки) в каталог, в котором хранятся файлы веб-сервера:
$ ln -s /path/to/trac/htdocs/common /var/www/static.example.org/trac-common