Установка и настройка Trac на FreeBSD
Trac — это инструмент управления проектами и отслеживания ошибок в программном обеспечении. Он использует минималистичный веб-интерфейс, основанный на технологии wiki, и позволяет организовать перекрёстные гиперссылки между базой данных зарегистрированных ошибок, системой управления версиями и wiki-страницами.
Это даёт возможность использовать Trac в том числе и как веб-интерфейс для доступа к системе контроля версий subversion, а так же, через плагины, к Mercurial, git, Bazaar и другим. Trac написан на языке программирования python и в настоящее время распространяется по модифицированной лицензии BSD.
Возможности
- Возможность просмотра всех изменений в 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. Подробнее
- Ну и сам 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
Установка Trac
Trac ставиться очень просто:
# cd /usr/ports/www/trac # make install clean
Если вы хотите управлять настройками trac-проекта и правами пользователей из web-панели, то установите плагин ”trac-webadmin”.
# cd /usr/ports/www/trac-webadmin/ # make install clean
Использование MySQL
Если вы хотите использовать MySQL для хранения данных Trac, то вам надо установить MySQL-python драйвер. Если вам не надо, то можете использовать SQLite и пропустить установку MySQL-python, которую я опишу далее.
Для этого надо установить драйвер MySQL-python.
# cd /tmp # fetch # 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
Установка py-subversion
# cd /usr/ports/devel/py-subversion # make FORCE_PKG_REGISTER= install clean
Настройка Apache
Отредактируем конфиг Apache и добавим новый виртуальный хост:
<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>, например вот так получится в результате:
<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:
Далее, укажите имя проекта и адрес для соединения с MySQL
mysql://tracuser:password@localhost:3306/trac
Тип используемого сервера контроля версия "svn" и путь до svn-репозитория вашего проекта
/home/svn/repos/example.com
Настройка trac-проекта
Отредактируйте файл "/home/trac/example.com/conf/trac.ini" и измените следующие директивы:
default_charset = utf-8 base_url =
В конце файла добавляем активацию плагина "webadmin":
[components] webadmin.* = enabled
Если вы заходите на адрес "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 и управлять всеми подпроектами и тикетами!
Если есть вопросы, то добро пожаловать в комментарии!

Комментарии
спасибо :)
Спасибо надо говорить в теме http://pyha.ru/forum/topic/3025.0 :)
Смени диз плз
123, вы кто?
что с моей авкой?
спамер это!
CTAPbIu_MABP,
1. а что с ней?
2. точно? у тебя такой же спам был?
точно, у меня еще и не такой спам был
они более мение общей фразой сначала получают первый камент
а потом пользуются настройкой "разрешать, если есть хоть один подтвержденный камент"
и спамят в собственное удовольствие
Ну, у меня тогда это первое спам сообщение после http://adw0rd.ru/2009/antispam/
И получается это человеческий спам...
индусы за 10 центов тебе и не такое сделают
Я не на столько популярен думаю.. )
adw0rd, ты мега крут и мегапопулярен! например на пыха.ру
Хорош жечь :)
Не какой я не спамер,просто глаза режет такой диз.Устроили тут :)
Индусов в своём коде ищите.
123, да что ты злися?
123, нарисуй другой, говорить все мастаки ;)
Убери тень и оранжевый цвет...
А какой поставить цвет?
123, убрал тени, жду когда вы порекомендуете цвет, спасибо. Но если вы о просто черном или сером цвете, то сразу скажу, что будут заголовки сливаться.
Так приятней намного,можно и ораньжевый оставить.Без теней гораздо лучше.
Оки, спасибо!
Пример аналогичной установки для Debian/Ubuntu:
Установка и настройка Trac в Debian / Ubuntu
debianworld ниче так :)
Оставьте свой комментарий