Установка Apache2+SQLite+Trac+Subversion на (K)Ubuntu 8.04

Trac — инструмент управления проектами и отслеживания ошибок в программном обеспечении.

Не думаю что данное руководство пойдет только для версии 8.04. Trac мы будем ставить 0.11-ой версии

Нам потребуются некоторые библиотеки для установки. Открываем терминал (консоль в Kubuntu) и пишем:

  1. sudo apt-get update # обновить репозитарии
  2. sudo apt-get install apache2 libapache2-mod-python libapache2-svn python-setuptools subversion python-subversion
  3. sudo easy_install Trac

Также можно поставить SQLite (на момент написания статьи последняя версия: 3.5.9), но этот шаг является необязательным. Есть 2 варианта: установка из репозитариев или же компилирование из исходников. Выбирайте какой для вас удобнее.

1 способ (репозитарии):

  1. sudo apt-get install sqlite

2 способ (исходники):
P.S. способ НЕ рекомендуется для использования. Присутствует в ознакомительных целях

  1. sudo apt-get install g++
  2. cd
  3. mkdir ./distr
  4. cd ./distr
  5. wget http://www.sqlite.org/sqlite-3.5.9.tar.gz
  6. tar xvfz ./sqlite-3.5.9.tar.gz
  7. mv ./sqlite-3.5.9 ./sqlite # чтобы следовать букве README-руководства
  8. mkdir ./bld # временный каталог для скомилированных файлов
  9. cd ./bld
  10. ../sqlite/configure
  11. make
  12. sudo make install
  13. cd ..
  14. rm -r ./bld

Создадим дирректорию для Trac и дадим Apache доступ к нему:

  1. sudo mkdir /var/lib/trac
  2. sudo chown www-data:www-data /var/lib/trac

Настроим VirtualHost для Apache

  1. sudo vi /etc/apache2/sites-available/trac (можно использовать gedit (Ubuntu) или kate (Kubuntu) вместо редактора vi)

В открывшийся файл пишем:

<VirtualHost *>
        ServerAdmin webmaster@localhost
        ServerName trac.example.com
        DocumentRoot /var/www
        ErrorLog /var/log/apache2/error.trac.log
        CustomLog /var/log/apache2/access.trac.log combined

        <Location /projects>
                SetHandler mod_python
                PythonInterpreter main_interpreter
                PythonHandler trac.web.modpython_frontend
                PythonOption TracEnvParentDir /var/lib/trac
                PythonOption TracUriRoot /projects
        </Location>

        # use the following for one authorization for all projects (names containing "-" are not detected):
        <LocationMatch "/projects/[[:alnum:]]+/login">
            AuthType Basic
            AuthName "trac"
            AuthUserFile /etc/apache2/dav_svn.passwd
            Require valid-user
        </LocationMatch>

</VirtualHost>

Далее отключаем VirtualHost по умолчанию и активируем VirtualHost Trac, перезагружаем Apache:

  1. sudo a2dissite default
  2. sudo a2ensite trac
  3. sudo /etc/init.d/apache2 reload

Переходим в /var/lib, создаем папку для svn, и в ней новую папку для проекта:

  1. cd /var/lib
  2. sudo mkdir svn #необходимы права администратора
  3. sudo svnadmin create /var/lib/svn/ProjectName

Изменяем права доступа к папкам, перезапускаем Apache

  1. sudo chown -R www-data /var/lib/svn
  2. sudo /etc/init.d/apache2 restart

Создаем дирректорию для trac и новый проект с именем ProjectName (Имя то же, что и для svn)

  1. sudo trac-admin /var/lib/trac/YourProjectNameHere initenv
  2. sudo chown -R www-data /var/lib/trac

Во время создания проекта будут заданы вопросы:

  1. ProjectName - имя проекта
  2. Путь до SQLite - по умолчанию
  3. Репозиторий - svn
  4. Путь до репозитория - /var/lib/svn/ProjectName

Теперь настроим SVN. Файл /etc/apache2/mods-available/dav_svn.conf необходимо раскомментировать, чтобы получилось:

  1. sudo vi /etc/apache2/mods-available/dav_svn.conf (вместо vi можно использовать: Ubuntu - gedit, Kubuntu - kate)
<Location /svn>
    DAV svn
    SVNParentPath /var/lib/svn
    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile /etc/apache2/dav_svn.passwd
    AuthzSVNAccessFile /etc/apache2/dav_svn.authz
    Require valid-user
</Location>

Создадим соответствующих пользователей (любое количество, вам необходимое) в файлах авторизации (username - любое имя. Первый пользователь всегда с -c):

  1. sudo htpasswd -c /etc/apache2/dav_svn.passwd username1
  2. sudo htpasswd /etc/apache2/dav_svn.passwd username2

Создадим файл аутентификации и пишем в него (r - чтение, w - запись):

  1. sudo vi /etc/apache2/dav_svn.authz (вместо vi можно использовать: Ubuntu - gedit, Kubuntu - kate)
[/]
username1=r
username2=rw

[/ProjectName]
username1=rw
username2=r

Права на доступ Apache файлу /etc/apache2/dav_svn.passwd:

  1. sudo chown www-data /etc/apache2/dav_svn.passwd

Добавляем себя в админы Trac (ProjectName - имя проекта, username - имя пользователя)

  1. cd /var/lib/trac
  2. sudo trac-admin ProjectName permission add username TRAC_ADMIN

Добавляем пару необходимых модулей:

  1. sudo mkdir /var/www/.python-eggs
  2. sudo chown www-data /var/www/.python-eggs
  1. sudo apt-get install build-essential graphviz
  2. sudo easy_install http://svn.edgewall.org/repos/genshi/trunk/ #установщик задаст вопрос, отвечаем t
  3. sudo easy_install http://trac-hacks.org/svn/accountmanagerplugin/trunk
  4. sudo easy_install http://trac-hacks.org/svn/customfieldadminplugin/0.11
  5. sudo easy_install http://trac-hacks.org/svn/eclipsetracplugin/tracrpcext/0.10
  6. sudo easy_install http://trac-hacks.org/svn/iniadminplugin/0.11
  7. sudo easy_install http://trac-hacks.org/svn/masterticketsplugin/0.11
  8. sudo easy_install http://trac-hacks.org/svn/pagetopdfplugin/0.10/
  9. sudo easy_install http://trac-hacks.org/svn/progressmetermacro/0.11
  10. sudo easy_install http://trac-hacks.org/svn/ticketdeleteplugin/0.11
  11. sudo easy_install http://trac-hacks.org/svn/tracwysiwygplugin/0.11
  12. sudo easy_install http://wikinotification.ufsoft.org/svn/trunk

Последний шаг - перезагружаем Apache:

  1. sudo /etc/init.d/apache2 restart

Теперь по адресу:
http://localhost - видим "It works!"
http://localhost/svn/ProjectName - наш svn репозитарий
http://localhost/projects - список проектов trac

При написании использовались материалы с сайтов:

  1. http://trac.edgewall.org/wiki/0.11/TracOnUbuntu
  2. http://shamansir.wordpress.com/2008/03/17/trac-subversion-ubuntu-revisited/
  3. Свои вроде прямые руки =)
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License