Ubuntu'ya svn ile çalışan trac kurmak

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 On

Alias /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 /svn

AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/svnauth
Require valid-user

AuthzSVNAccessFile /etc/svnaccess
</Location>

<Location /trac>

SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /trac
PythonOption TracUriRoot /trac

AuthType 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.

Etiketler:  , , , ,