Edgewall Software

Руководство по установке Trac для версии 1.2

На других языках:

Trac написан на языке программирования Python и использует базы данных SQLite, PostgreSQL или MySQL. Для генерации HTML, Trac использует систему шаблонов Genshi.

Trac может быть локализован, и скорее всего перевод на ваш язык уже доступен. Если вы хотите использовать интерфейс Trac на другом языке, убедитесь в том, что у вас установлен дополнительный пакет Babel. Обратите также ваше внимание на дополнительные шаги, которые потребуются для поддержки локализации в разделе Installing Trac ниже. При отсутствии пакета Babel, вы получите только английскую версию.

Если вас интересует поддержка новых переводов Trac на другие языки или поддержка существующих переводов, ознакомьтесь с документацией TracL10N.

Далее приведены общие инструкции по установке и настройке Trac. Несмотря на то что вы можете найти инструкции по установке Trac на конкретные платформы в разделе TracInstallPlatforms, мы советуем предварительно ознакомится с этими общими инструкциями для лучшего понимания описанных в них задач.

Этапы установки

  1. Зависимости
    1. Обязательное зависимости
    2. Опциональные зависимости
  2. Установка Trac
    1. Использование easy_install
    2. Использование pip
    3. Сборка из исходных файлов
    4. Использование установщика
    5. Использование менеджера пакетов
    6. Расширенные опции easy_install
  3. Создание окружения проекта
  4. Развертывание Trac
    1. Запуск встроенного сервера
    2. Запуск Trac на веб-сервере

Зависимости

Обязательное зависимости

Перед установкой 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:

Для более подробной информации, смотрите Серверы СУБД.

Для базы MySQL

Trac теперь может работать с MySQL, если вы будете следовать инструкциям.

  • MySQL версии 5.0 или новее
  • MySQLdb версии 1.2.2 или новее

Очень важно внимательно прочитать страницу 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 для запуска в любом из следующих окружений:

Прочие пакеты 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
    
  • Установка последней версии находящейся в разработке:
    $ easy_install https://download.edgewall.org/trac/Trac-latest-dev.tar.gz
    
    Обратите внимание, что в этом случае у вас не будет возможности запустить локализованную версию Trac; либо используйте стабильную версию, либо выполните установку из исходных файлов

Более подробная информация доступна на странице 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 поддерживает различные опции подключения к "реальному" веб-серверу:

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/ - статические ресурсы Trac
  • site/ - копия каталога 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
Last modified 8 months ago Last modified on Feb 14, 2019, 8:38:47 AM
Note: See TracWiki for help on using the wiki.