trac

Trac — это инструмент управления проектами и отслеживания ошибок в программном обеспечении. Он использует минималистичный веб-интерфейс, основанный на технологии wiki, и позволяет организовать перекрёстные гиперссылки между базой данных зарегистрированных ошибок, системой управления версиями и wiki-страницами.

Это даёт возможность использовать Trac в том числе и как веб-интерфейс для доступа к системе контроля версий subversion, а так же, через плагины, к Mercurial, git, Bazaar и другим. Trac написан на языке программирования python и в настоящее время распространяется по модифицированной лицензии BSD.

http://ru.wikipedia.org/wiki/Trac

Возможности

  • Возможность просмотра всех изменений в svn и trac-проекте.
  • Можно создавать подпроекты, например для портала это будет «Разработать сервис фотографий», «Разработка форума» или «Реконструкция поискового-модуля». И для каждого будут отдельные группы тикетов.
  • Просмотреть изменения кодов проекта в svn-ревизиях и сравнивание их.
  • Создание, просмотр и закрытие тикетов.
  • Управление пользователями, участвующие в разработке.
  • Wiki-движок, с помощью которого можно создавать как справочную информацию, так и документацию по проекту в целом.

Так же имеется куча плагинов для Trac, с помощью которых вы легко расширите функционал!

Установка

Для развертывания Trac нам понадобится:

  • Apache 2.2 — но вы можете так же развернуть и на Apache 1.3 или на Nginx, к примеру
  • mod_python3 — это для Apache 2, а для 1.3 надо просто «mod_python»
  • Subversion — либо другие системы контроля версия, например Mercurial, git или Bazaar
  • py-subversion — для работы из Python с Subversion
  • MySQL — можете также использовать SQLite или PgSQL. Подробнее http://trac.edgewall.org/wiki/DatabaseBackend
  • Ну и сам Trac разумеется :)

Установка mod_python3 на Apache 2.2

# cd /usr/ports/www/mod_python3/
# make install clean

Зайдите и проверьте установился ли модуль mod_python.so

# cd /usr/local/libexec/apache22/
# ll | grep mod_python

Если он есть, то впишите в конфиг httpd.conf

LoadModule python_module libexec/apache22/mod_python.so

Более подробно о mod_python: http://trac.edgewall.org/wiki/TracModPython

Установка Trac

Trac ставиться очень просто:

# cd /usr/ports/www/trac
# make install clean

Если вы хотите управлять настройками trac-проекта и правами пользователей из web-панели, то установите плагин ”trac-webadmin”.

# cd /usr/ports/www/trac-webadmin/
# make install clean

Более подробно о WebAdmin: http://trac.edgewall.org/wiki/WebAdmin

Использование MySQL

Если вы хотите использовать MySQL для хранения данных Trac, то вам надо установить MySQL-python драйвер. Если вам не надо, то можете использовать SQLite и пропустить установку MySQL-python, которую я опишу далее.

Для этого надо установить драйвер MySQL-python.

1
2
3
4
5
6
# cd /tmp
# fetch http://downloads.sourceforge.net/sourceforge/mysql-python/MySQL-python-1.2.2.tar.gz
# tar -xvf MySQL-python-1.2.2.tar.gz
# cd MySQL-python-1.2.2
# python setup.py build
# python setup.py install

Если вы используете Apache, то перезагрузите его, дабы достучатся до mod_python.

Теперь создадим базу данных и пользователя для Trac:

CREATE DATABASE trac DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER tracuser IDENTIFIED BY 'password';
GRANT ALL ON trac.* TO tracuser;
FLUSH PRIVILEGES;

Не забудьте заменить пароль в запросе на придуманный вами.

Установка Subversion с поддержкой Python

# cd /usr/ports/devel/subversion
# make WITH_PYTHON=true WITH_BERKELEYDB=db42 WITH_MOD_DAV_SVN= install

Более подробно о ключах: http://trac.edgewall.org/wiki/TracFaq

Установка py-subversion

# cd /usr/ports/devel/py-subversion
# make FORCE_PKG_REGISTER= install clean

Более подробно о ключе: http://trac.edgewall.org/wiki/TracSubversion

Настройка Apache

Отредактируем конфиг Apache и добавим новый виртуальный хост:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<VirtualHost *:80>
    DocumentRoot "/home/trac"
    ServerName trac.example.com
    <Location />
        SetHandler mod_python
        PythonInterpreter main_interpreter
        PythonHandler trac.web.modpython_frontend
        PythonOption TracEnv /home/trac/example.com
        PythonOption TracUriRoot /

        AuthType Basic
        AuthName "Trac Server"
        AuthUserFile /home/trac/example.com/.htpasswd
        Require valid-user
    </Location>
</VirtualHost>

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

AuthType Basic
AuthName "Trac Server"
AuthUserFile /home/trac/example.com/.htpasswd
Require valid-user

Вынести в отдельный <Location>, например вот так получится в результате:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<VirtualHost *:80>
    DocumentRoot "/home/trac"
    ServerName trac.example.com
    <Location />
        SetHandler mod_python
        PythonInterpreter main_interpreter
        PythonHandler trac.web.modpython_frontend
        PythonOption TracEnv /home/trac/example.com
        PythonOption TracUriRoot /
    </Location>
    <Location /login>
        AuthType Basic
        AuthName "Trac Server"
        AuthUserFile /home/trac/example.com/.htpasswd
        Require valid-user
    </Location>
</VirtualHost>

Также, я использую пароли от Subversion для авторизации, если посмотрите статью FreeBSD. Установка и настройка Subversion, то у нас был путь «/home/svn/svn-auth-file», вот его и будем использовать в качестве AuthUserFile:

...
AuthUserFile /home/svn/svn-auth-file
...

Настройка Trac

Для начала нам надо создать trac-проект и настроить его.

Создание trac-проекта

# trac-admin /home/trac/example.com initenv

initenv — создание и использование интерактивного режима

Более подробно о командах trac-admin: http://trac.edgewall.org/wiki/TracAdmin

Далее, укажите имя проекта и адрес для соединения с MySQL

mysql://tracuser:password@localhost:3306/trac

Тип используемого сервера контроля версия «svn» и путь до svn-репозитория вашего проекта

/home/svn/repos/example.com

Подробнее http://trac.edgewall.org/wiki/TracEnvironment

Настройка trac-проекта

Отредактируйте файл «/home/trac/example.com/conf/trac.ini» и измените следующие директивы:

default_charset = utf-8
base_url = http://trac.example.com

В конце файла добавляем активацию плагина «webadmin»:

[components]
webadmin.* = enabled

Подробнее по всем директивам http://trac.edgewall.org/wiki/TracIni

Если вы заходите на адрес «trac.example.com» и видите:

Permission denied: '/home/trac/example.com/.egg-cache'

то, настройте права на запись для каталога trac-проекта.

Назначаем права администратора одному из пользователей

# trac-admin /home/trac/example.com permission add имя_пользователя TRAC_ADMIN

Синхронизацию trac-проекта с svn-проектом

# trac-admin /home/trac/example.com resync

Автоматическое оповещения svn-изменений для trac-тикетов

И на последок, если вы используете svn-хуки, как я уже описывал в статье Subversion. Автоматическое обновление проекта при помощи хуков, то добавьте эти строки в post-commit для оповещения trac-тикетов:

TRAC_ENV="/home/trac/example.com"
/usr/bin/python /usr/local/bin/trac-post-commit-hook -p "$TRAC_ENV" -r "$REV"

Резюме

Вот и все, Trac установлен и настроен для комфортной работы, в последующих статьях буду рассказывать как настроить Mylyn, что бы непосредственно из IDE работать с Trac и управлять всеми подпроектами и тикетами!

Если есть вопросы, то добро пожаловать в комментарии!


Комментарии (24) на запись «Установка и настройка Trac на FreeBSD»

» Трекбеки скрыты, показать их?
  1. CTAPbIu_MABP | 20.07.2009 в 11:21

    спасибо :)

  2. adw0rd | 20.07.2009 в 11:23

    Спасибо надо говорить в теме pyha.ru/forum/topic/3025.0 :)

  3. 123 | 25.07.2009 в 19:22

    Смени диз плз

  4. adw0rd | 25.07.2009 в 19:30

    123, вы кто?

  5. CTAPbIu_MABP | 25.07.2009 в 19:32

    что с моей авкой?

  6. CTAPbIu_MABP | 25.07.2009 в 19:33

    спамер это!

  7. adw0rd | 25.07.2009 в 19:37

    CTAPbIu_MABP,

    1. а что с ней?

    2. точно? у тебя такой же спам был?

  8. CTAPbIu_MABP | 25.07.2009 в 19:39

    точно, у меня еще и не такой спам был

    они более мение общей фразой сначала получают первый камент

    а потом пользуются настройкой «разрешать, если есть хоть один подтвержденный камент»

    и спамят в собственное удовольствие

  9. adw0rd | 25.07.2009 в 19:41

    Ну, у меня тогда это первое спам сообщение после adw0rd.ru/2009/antispam/

    И получается это человеческий спам...

  10. CTAPbIu_MABP | 25.07.2009 в 19:44

    индусы за 10 центов тебе и не такое сделают

  11. adw0rd | 25.07.2009 в 19:47

    Я не на столько популярен думаю... )

  12. CTAPbIu_MABP | 25.07.2009 в 19:48

    adw0rd, ты мега крут и мегапопулярен! например на пыха.ру

  13. adw0rd | 25.07.2009 в 20:30

    Хорош жечь :)

  14. 123 | 29.07.2009 в 16:36

    Не какой я не спамер,просто глаза режет такой диз.Устроили тут :)

  15. 123 | 29.07.2009 в 16:37

    Индусов в своём коде ищите.

  16. CTAPbIu_MABP | 29.07.2009 в 16:48

    123, да что ты злися?

  17. adw0rd | 29.07.2009 в 18:51

    123, нарисуй другой, говорить все мастаки ;)

  18. 123 | 29.07.2009 в 22:45

    Убери тень и оранжевый цвет...

  19. adw0rd | 29.07.2009 в 22:47

    А какой поставить цвет?

  20. adw0rd | 29.07.2009 в 22:52

    123, убрал тени, жду когда вы порекомендуете цвет, спасибо. Но если вы о просто черном или сером цвете, то сразу скажу, что будут заголовки сливаться.

  21. 123 | 31.07.2009 в 03:57

    Так приятней намного,можно и ораньжевый оставить.Без теней гораздо лучше.

  22. adw0rd | 31.07.2009 в 09:28

    Оки, спасибо!

  23. debianworld.ru | 12.08.2009 в 10:52

    Пример аналогичной установки для Debian/Ubuntu:

    Установка и настройка Trac в Debian / Ubuntu

  24. CTAPbIu_MABP | 12.08.2009 в 11:32

    debianworld ниче так :)

Оставить комментарий