Установка Subversion + Trac под Windows
Установка Subversion + Trac под Windows
Компоненты
Перед установкой убеждаемся, что имеются все необходимые компоненты:
- Subversion 1.4.4
Прямая ссылка: http://subversion.tigris.org/files/documents/15/38369/svn-1.4.4-setup.exe
Страница закачки: http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 - Subversion 1.4.4 binaries for Apache 2.2.x
Прямая ссылка: http://subversion.tigris.org/files/documents/15/38212/svn-win32-1.4.4.zip
Страница закачки: http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100&expandFolder=8100&folderID=74 - TortoiseSVN 1.4.4 (опционально)
Клиент для системы контроля версий Subversion, выполненный как расширение оболочки Windows.
Прямая ссылка: http://prdownloads.sourceforge.net/tortoisesvn/TortoiseSVN-1.4.4.9706-win32-svn-1.4.4.msi?download
Страница закачки: http://tortoisesvn.net/downloads - Python 2.5.1
Прямая ссылка: http://www.python.org/ftp/python/2.5.1/python-2.5.1.msi
Страница закачки: http://www.python.org/download/ - Setuptools
Прямая ссылка: http://peak.telecommunity.com/dist/ez_setup.py
Страница закачки: http://peak.telecommunity.com/DevCenter/EasyInstall#installation-instructions - Pygments 0.8.1 (опционально)
Подсветка синтаксиса.
Прямая ссылка: http://cheeseshop.python.org/packages/source/P/Pygments/Pygments-0.8.1.tar.gz#md5=f71971cbe9db538a40ea808ac5da3dc0
Страница закачки: http://cheeseshop.python.org/pypi/Pygments - pytz 2007f (опционально)
Определения часовых поясов.
Прямая ссылка: http://cheeseshop.python.org/packages/source/p/pytz/pytz-2007f.zip#md5=168cc12fc4047097fce4f0ed305e7428
Страница закачки: http://cheeseshop.python.org/pypi/pytz/ - docutils 0.4 (опционально)
Разметка текста reStructuredText. Подробнее здесь.
Прямая ссылка: http://dfn.dl.sourceforge.net/sourceforge/docutils/docutils-0.4.tar.gz
Страница закачки: http://docutils.sourceforge.net/index.html - Python 2.5 bindings for Subversion 1.4.4 (for Apache 2.2.x)
Прямая ссылка: http://subversion.tigris.org/files/documents/15/38217/svn-python-1.4.4.win32-py2.5.exe
Страница закачки: http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100&expandFolder=8100&folderID=91 - Genshi 0.4.3
Прямая ссылка: http://ftp.edgewall.com/pub/genshi/Genshi-0.4.3.zip
Страница закачки: http://genshi.edgewall.org/wiki/Download#Zippackage - SQLite 2.3.5 bindings for Python 2.5
Прямая ссылка: http://initd.org/pub/software/pysqlite/releases/2.3/2.3.5/pysqlite-2.3.5.win32-py2.5.exe
Страница закачки: http://initd.org/tracker/pysqlite/wiki/pysqlite - SQLite 3.4.1
Прямая ссылка: http://www.sqlite.org/sqlite-3_4_1.zip
Страница закачки: http://www.sqlite.org/download.html - Apache 2.2.4
Прямая ссылка: http://www.apache.org/dist/httpd/binaries/win32/apache_2.2.4-win32-x86-no_ssl.msi
Страница закачки: http://httpd.apache.org/download.cgi - mod_python 3.3.1
Прямая ссылка: http://www.apache.lt/httpd/modpython/win/3.3.1/mod_python-3.3.1.win32-py2.5-Apache2.2.exe
Страница закачки: http://httpd.apache.org/modules/python-download.cgi
Установка
- Устанавливаем Subversion 1.4.4 - подробнее о работе с subversion можно почитать в книге Управление версиями в Subversion.
- Заменяем файлы в каталоге "C:\Program Files\Subversion" файлами из архива Subversion 1.4.4 binaries for Apache 2.2.x, т.к. иначе сервис Apache не запустится, когда будут подключены *.so модули от Subversion.
- Опционально: Устанавливаем TortoiseSVN 1.4.4 и перегружаем компьютер в конце по просьбе инсталятора.
- Устанавливаем Python 2.5.1. По-умолчанию устанавливается в каталог "C:\Python25". Убеждаемся, что в переменной окружения PATH есть этот путь.
- Устанавливаем Setuptools командой (потребуется соединение с интернетом):
python ez_setup.py - Опционально: Устанавливаем Pygments 0.8.1 - распаковываем архив и внутри каталога Pygments-0.8.1 выполняем команду:
python setup.py install - Опционально: Устанавливаем pytz 2007f - распаковываем архив и внутри каталога pytz-2007f выполняем команду:
python setup.py install - Опционально: Устанавливаем docutils 0.4 - распаковываем архив и внутри каталога docutils-0.4 выполняем команду:
python setup.py install - Устанавливаем Python 2.5 bindings for Subversion 1.4.4. Обратите внимание, что вы скачали версию скомпилированную под Apache 2.2.x. Если это будет другая версия, то при установке Trac
- Устанавливаем Genshi 0.4.3 - распаковываем архив и внутри каталога Genshi-0.4.3 выполняем команду:
python setup.py install - Устанавливаем SQLite 2.3.5 bindings for Python 2.5.
- Устанавливаем SQLite 3.4.1 - распаковываем из архива файл sqlite3.exe в каталог "C:\Python25".
- Создаём репозиторий
- Создаём каталог:
mkdir c:\svn - Создаём в нём репозиторий:
svnadmin create c:\svn\work
- Создаём каталог:
Network domain: localhost
Server name: localhost
Administrator's Email Address: admin@email
Install Apache for All Users, on Port 80, as a Service
Останваливаем пока сервер:
- Останавливаем сервис:
net stop Apache2 - Убиваем процесс ApacheMonitor:
taskkill /im apachemonitor.exe
- Идем в каталог "C:\Program Files\Apache Software Foundation\Apache2.2\conf", где по-умолчанию хранятся настройки Apache и редактируем файл httpd.conf.
- Строку
Listen 80
меняем наListen 8080
- Строку
ServerName localhost:80
меняем наServerName localhost:8080
- Создаём файл конфигурации для Apache с паролем для пользователя admin:
"C:\Program Files\Apache Software Foundation\Apache2.2\bin\htpasswd" -cm c:\svn\work\.htpasswd admin - В файле httpd.conf раскомментируем строки (убрав перед ними символ '#'):
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so - Там же добавляем строки:
LoadModule dav_svn_module "C:/Program Files/Subversion/bin/mod_dav_svn.so"
LoadModule authz_svn_module "C:/Program Files/Subversion/bin/mod_authz_svn.so" - В конце того же файла добавляем строки:
# Subversion <Location /svn/work> DAV svn SVNPath "c:/svn/work" AuthType Basic AuthName "Subversion" AuthUserFile "c:/svn/work/.htpasswd" AuthzSVNAccessFile "c:/svn/work/conf/authz" # try anonymous access first, resort to real authentication if necessary. Satisfy any Require valid-user Order deny,allow Deny from all # add granted ip's: Allow from localhost </Location>
- Далее редактируем файл "c:/svn/work/conf/authz", чтобы позволить пользователю admin читать и писать в репозиторий, а остальным только читать:
[groups] admins = admin [/] @admins = rw * = r
- Запускаем сервис Apache:
net start Apache2 - Тестируем наш Subversion под Apache:
http://localhost:8080/svn/work/
net stop Apache2
и вписываем в конфигурационный файл Apache httpd.conf строку:
LoadModule python_module modules/mod_python.soПроверяем как прошла установка:
- Дописываем в конец файла httpd.conf строки для тестирования:
<Location /mpinfo> SetHandler mod_python PythonHandler mod_python.testhandler </Location>
- Запускаем сервис Apache:
net start Apache2 - Проверяем, что mod_python работает:
http://localhost:8080/mpinfo/ - В целях безопасности останавливаем сервер:
net stop Apache2
и удаляем из файла httpd.conf строки вставленные выше для тестирования .
cd C:\src
svn checkout http://svn.edgewall.org/repos/trac/trunk
cd trunk
python setup.py install
На момент моей установки Trac командой checkout я получили последнюю ревизию под номером 5866. Если в будущем возникнет необходимость получить ту же самую ревизию, а не последнюю на момент установки, то команду checkout нужно будет изменить:
svn checkout -r 5866 http://svn.edgewall.org/repos/trac/trunk
- Инициализируем БД Trac для нашего репозитория. Считаем, что всё, что касается Trac, будет располагаться в каталоге "c:\svn\work.db":
cd C:\Python25\Scripts
trac-admin c:/svn/work.db initenv
На вопросы отвечаем примерно так:
Project Name [My Project]> My Work
Database connection string [sqlite:db/trac.db]>
Repository type [svn]>
Path to repository [/path/to/repos]> c:/svn/work
Важно правильно указать путь к репозиторию. Если значение по-умолчанию в квадратных скобках совпадает с желаемым, то можно нажать просто Enter.
После установки последним сообщением должны увидеть:
Congratulations! - Даём пользователю admin все административные привилегии:
trac-admin c:/svn/work.db permission add admin TRAC_ADMIN - Дописываем в конфигурационный файл Apache httpd.conf строки:
<Location /trac/work> SetHandler mod_python PythonHandler trac.web.modpython_frontend PythonOption TracEnv "c:/svn/work.db" PythonOption TracUriRoot /trac/work AuthType Basic AuthName "Work Trac Login" AuthUserFile "c:/svn/work/.htpasswd" Require valid-user Order deny,allow Deny from all Allow from localhost </Location>
- Запускаем сервис Apache:
net start Apache2
и проверям работу Trac:
http://localhost:8080/trac/work/