FreeBSD. Установка и настройка Trac
Trac — это инструмент управления проектами и отслеживания ошибок в программном обеспечении. Он использует минималистичный веб-интерфейс, основанный на технологии wiki, и позволяет организовать перекрёстные гиперссылки между базой данных зарегистрированных ошибок, системой управления версиями и wiki-страницами.
Это даёт возможность использовать Trac в том числе и как веб-интерфейс для доступа к системе контроля версий subversion, а так же, через плагины, к Mercurial, git, Bazaar и другим. Trac написан на языке программирования python и в настоящее время распространяется по модифицированной лицензии BSD.
Возможности
- Возможность просмотра всех изменений в svn и trac-проекте.
- Можно создавать подпроекты, например для портала это будет «Разработать сервис фотографий», «Разработка форума» или «Реконструкция поискового-модуля». И для каждого будут отдельные группы тикетов.
- Просмотреть изменения кодов проекта в svn-ревизиях и сравнивание их.
- Создание, просмотр и закрытие тикетов.
- Управление пользователями, участвующие в разработке.
- Wiki-движок, с помощью которого можно создавать как справочную информацию, так и документацию по проекту в целом.
Так же имеется куча , с помощью которых вы легко расширите функционал!
Установка
Для развертывания 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
Более подробно о mod_python можно почитать тут:
Установка Trac
Trac устанавливается очень просто:
-
# cd /usr/ports/www/trac
-
# make install clean
Если вы хотите управлять настройками trac-проекта и правами пользователей из web-панели, то установите плагин ”trac-webadmin”.
-
# cd /usr/ports/www/trac-webadmin/
-
# make install clean
Более подробно о WebAdmin можно почитать тут:
Использование MySQL
Если вы хотите использовать MySQL для хранения данных Trac, то вам надо установить MySQL-python драйвер. Если вам не надо, то можете использовать SQLite и пропустить установку MySQL-python, которую я опишу далее.
Для этого надо установить драйвер .
-
# 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
Более подробно о ключах:
Установка 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 / >
-
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-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 = http://trac.example.com
В конце файла добавляем активацию плагина «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-хуки, то добавьте эти строки в post-commit для оповещения trac-тикетов:
-
TRAC_ENV="/home/trac/example.com"
-
/usr/bin/python /usr/local/bin/trac-post-commit-hook -p "$TRAC_ENV" -r "$REV"

RSS Комментарии (6)
Оставить комментарий
Очепятка:
2.# ll | grep mod_python
По всей видимости был упомянут ls
Еще момент:
«Для этого надо установить драйвер MySQL-python.»
а зачем ставить из сырцов, если есть порт: databases/py-MySQLdb/
Нет, был использован именно ll
а вообще можно и ls
Откуда драйвер будет установлен – неважно )))
По поводу ll понял :)
позабыл про это, эххх память моя память..
Про драйвер – ну как-то идеологически корректнее использовать дерево портов ;)
Согласен, думаю, ближе к выходным поправлю ))