Ubuntu’ya subversion (svn) ile birlikte çalışan trac sunucusu kurmak:
İşe ilk önce kurulu değilse aşağıdaki paketleri kurarak başlıyoruz,
sudo apt-get install apache2 libapache2-mod-python libapache2-svn python-setuptools subversion python-subversion
apt-get install trac ile depodan trac’i kurabilirsiniz anacak depodaki paket son stabil sürüm değildir. Son stabil sürümü bu bağlantıdan görebilirsiniz. son stabil sürümün adresini aldığıktan sonra aşağıdaki komutları sırasıyla işletiyoruz:
sudo easy_install http://ftp.edgewall.com/pub/trac/Trac-0.11.4.tar.gz
sudo mkdir /svn
sudo mkdir /trac
sudo htpasswd -cm /etc/svnauth kullanıcıadın
sudo htpasswd -m /etc/svnauth başkakullanıcı
Yukarıdaki “kullanıcıadın” yerine login olmak için kullandığınız kullanıcı adını, “başkakullanıcı” yerine de, eğer başka kullanıcı eklemeniz gerekiyorsa o kullanıcının adını yazın.
sudo nano /etc/svnaccess
komutu ile dosyayı açıp aşağıdaki satırları içine ekleyip kaydediniz:
[groups]
developers = kullanıcıadın, başkakullanıcı
[ / ]
@developers = rw
* = r
Aşağıdaki komut ile apache için yeni bir konfigürasyon dosyası hazırlamak gerek:
sudo nano /etc/apache2/sites-available/myserver
<VirtualHost *:80>
ServerAdmin [email protected]DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory “/usr/lib/cgi-bin”>
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature OnAlias /doc/ “/usr/share/doc/”
<Directory “/usr/share/doc/”>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory><Location /svn>
DAV svn
SVNParentPath /svnAuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/svnauth
Require valid-userAuthzSVNAccessFile /etc/svnaccess
</Location><Location /trac>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /trac
PythonOption TracUriRoot /tracAuthType Basic
AuthName “Trac”
AuthUserFile /etc/svnauth
Require valid-user</Location>
</VirtualHost>
Yapılan değişikliklerin geçerli olması için aşağıdaki komutu uygulayın
sudo a2ensite /etc/apache2/sites-available/myserver
sudo /etc/init.d/apache2 reload
Daha önce oluşturduğumuz trac dizinin sahibini ve haklarını değiştirip etc altında trac.ini dosyasını düzenleyin.
sudo chown -R www-data /trac
sudo nano /etc/trac.ini
trac.ini dosyasına aşağıdaki satırları ekleyip kaydedin.
[header_logo]
alt = Logo
height = -1
link =
src = /logo.gif
width = -1
Bu dosya trac’ın öntanımlı ayarlarını barındıracaktır. eğer logo kullanmak istiyorsanız logo resmini “logo.gif” adıyla /var/www klasörüne kaydetmeniz yeterli.
Son olarak otomatik olarak trac projesi oluşturmak için aşağıdaki kodları init.pl dosyasına yazıp kaydediyoruz.
#!/usr/bin/perl
$sName = $ARGV[0];
$lName = $ARGV[1];
if ($lName eq “”) {
$lName = $sName;
}
$sName =~ tr/A-Z/a-z/;
$path = “sudo svnadmin create /svn/$sName”;
system ($path);
$path = “sudo chown -R www-data /svn/$sName”;
system ($path);
$path = “sudo trac-admin /trac/$sName initenv ‘$lName’ ‘sqlite:db/trac.db’ ‘svn’ ‘/svn/$sName’ –inherit=/etc/trac.ini”;
system ($path);
$path = “sudo chown -R www-data /trac/$sName”;
system ($path);
$path = “sudo trac-admin /trac/$sName permission add kullanıcıadınTRAC_ADMIN permission list kullanıcıadın”;
system ($path);
print “Done!nn”;
Kod içinde bulunan “kullanıcıadın” kısımlarını değiştirmeyi unutmuyoruz. Bu dosya sayesinde “init.pl projekısaadı ‘Proje Uzun Adı'” yazarak hızlı bir şekilde yeni projeniz için trac ve svn oluşturulmasını sağlayabilirsiniz.
Bu yazı “http://anantgarg.com/2009/03/25/subversion-trac-multiple-projects/” adresinden derlenmiştir.