CentOS ve Directadmin üzerine Subversion Kurulumu

Normal şartlarda centos üzerine subversion yum ile kurulabilmekte fakat sunucunuzda directadmin kurulu ise, mod_dav_svn gibi extensionlarda sorun çıkmakta dolayısıyla subversionu kaynağından derlememiz gerekmekte.

Yapmamız gereken adamları sıralamamız gerekirse;

1.  libexpat ve libneon paketlerini yüklüyoruz.

yum install expat-devel
yum install neon-devel

2. SVN kaynak dosyalarını çekeceğimiz bir geçici klasör oluşturuyoruz ve içine giriyoruz.

mkdir /etc/customsvn
cd /etc/customsvn

3. SVN’yi sunucumuza çekiyoruz ve arşivden çıkartıyoruz.

wget http://subversion.tigris.org/downloads/subversion-1.6.2.tar.gz
tar xzf subversion-1.6.2.tar.gz
mv subversion-1.6.2/* .
rm -r subversion-1.6.2

4.  sqlite amalgamation‘i çekiyoruz ve sqlite.c dosyasını çekiyoruz.

mkdir sqlite-amalgamation
cd sqlite-amalgamation
wget http://www.sqlite.org/sqlite-amalgamation-3.6.13.tar.gz
tar xzf sqlite-amalgamation-3.6.13.tar.gz
mv sqlite-3.6.13/sqlite3.c .

5. Gerikalan herşeyi siliyoruz.

rm -rf sqlite-*
cd ..

6. make, configure, install komutlarını uyguluyoruz.

./configure --prefix=/usr --with-apxs=/usr/sbin/apxs --with-apr=/usr/bin/apr-config
make
make install

7. Eğer aşağıdaki komut hata vermezse SVN düzgün kuruldu demektir.

svn help

8. Apache konfigürasyonunda svn ile ilgili LoadModule komutlarını yorum satırı haline getiriyoruz.

nano /etc/httpd/conf/extra/httpd-svn.conf

Açılan dosyada alttaki satırların başına diyez koyuyoruz. Son hali aşağıdaki şekilde oluyor;

#LoadModule dav_svn_module     /usr/lib/apache/mod_dav_svn.so
#LoadModule authz_svn_module   /usr/lib/apache/mod_authz_svn.so

9. Apache ayarlarımıza svn ile ilgili olan konfigürasyonu dahil ediyoruz.

nano /etc/httpd/conf/extra/httpd-includes.conf

Açılan dosyaya şu satırları ekliyoruz;

# All SVN directives
Include conf/extra/httpd-svn.conf

10. Apacheye SVN ile ilgili konfigürasyonu sağlayacak olan dosyayı yaratıyoruz ve kendimize göre düzenliyoruz.

nano /etc/httpd/conf/extra/httpd-svn.conf

Açılan dosyaya aşağıdaki satırları ekliyoruz ve kendimize göre düzenliyoruz.

LoadModule dav_svn_module /usr/lib/apache/mod_dav_svn.so
LoadModule authz_svn_module /usr/lib/apache/mod_authz_svn.so

<IfModule dav_svn_module>
  <IfModule authz_svn_module>
	  <Location /svn>
		  DAV svn
		  SVNParentPath /svn

		  AuthzSVNAccessFile /svn/authz
		  Satisfy Any
		  Require valid-user
		  AuthType Basic
		  AuthName "Subversion repository"
		  AuthUserFile /svn/passwd
	  </Location>
  </IfModule>
</IfModule>

11. mod_dav_svn.so gibi paketlerin düzgün çalışması için aşağıdaki komutu uyguluyoruz.

ldconfig

12. Herhangi bir hata var mı bunun kontrolü için httpd‘i yeniden başlatıyoruz.

service httpd restart

13. Ayar yaparken belirttiğimiz svn klasörünü yaratıyoruz.

mkdir /svn
cd /svn

14. Yeni bir svn reposu yaratıyoruz.

svnadmin create projects

15. Svn’in kendi yaratmış olduğu authz dosyasını kopyalıyoruz veya kendimiz yeni bir tane yazıyoruz ve giriş işlemleri için yeni bir kullanıcı ve şifre oluşturuyoruz.

cp projects/conf/authz .
htpasswd -cm passwd testuser

16. Yaratmış olduğumuz testuser kullanıcısına tüm repolar için okuma/yazma izni veriyoruz.

nano authz

Açılan dosyanın sonuna şunları ekliyoruz;

[/]
testuser = rw

17. Apache’yi commit yapabilmek için sahiplik veriyoruz.

chown -R apache:apache /svn

18. Son olarak Apacheyi yeniden başlatıyoruz.

service httpd restart

 

Yaratmış olduğunuz repoya http://site.com/svn/projects adresinden ulaşabilirsiniz.

Yazının orjinaline http://www.directadmin.com/forum/showthread.php?t=30972 adresinden ulaşabilirsiniz.

Leave a Response