SVN szerver Apache és WebDAV segítségével

A következő leírásban bemutatom, hogyan tudunk Gentoora Apache és WebDAV alapú SVN (subveriosn) kiszolgálót építeni, hogy könnyen kezelhessük saját fejlesztéseinket.

Apache telepítése

Telepítsünk fel egy Apachet DAV támogatással. Ehhez az /etc/make.conf fálba írjuk be a következő sort:

APACHE2_MODULES="${APACHE2_MODULES} dav dav_fs dav_lock"

Ha így adjuk meg, akkor az alapértelmezett modulokhoz adja hozzá a dav modult.
Tersmézetesen egyesével is megadhatjuk a modulokat, Én a következőket használom:

APACHE2_MODULES="alias auth_basic authn_alias authn_default authn_file authz_default authz_groupfile authz_host authz_owner authz_user autoindex dav dav_fs dav_lock dir expires headers info log_config mime mime_magic negotiation rewrite status vhost_alias"
 

Ezután forgassuk le (vagy újra) az apacheot:

emerge -av apache

Subversion telepítése

Telepítsük a subversiont. Alapértelmezetten nem települ apache támogatással, így azt mondjuk meg neki mi. Nyissuk meg szerkesztésre az /etc/portage/package.use fájlt, majd az alábbi sort írjuk be a végére:

dev-util/subversion apache2

Majd forgassuk le a subversiont:

emerge -av dev-util/subversion

Ha kész a forgatás, akkor hozzunk létre egy /var/svn nevű mappát (ha nem jönne létre) és állítsuk be, hogy az apahe felhasználó és csoport legyen a tulajdonosa:

mkdir /var/svn
chown apache:apache -R /var/svn

Még ne hozzunk létre egy repot se, azt majd később. Egyelőre csak indítsuk el az svn szervert

/etc/init.d/svnserve start

Ha gondoljuk állítsuk be, hogy automatikusan induljon el:

/etc/init.d/svnserve start

Apache beállítása

Most, hogy megvan az SVN szerver, állítsuk be az Apacheot, hogy kiszolgálja WebDAV-on keresztül az SVN tárolókat.
Nyissuk meg szerkesztésre az /etc/conf.d/apache2 fájlt, majd keressük meg azt a sort, amelyik APACHE2_OPTS szöveggel kezdődik. Ide, a záró idézőjel után írjuk be a következőket:

-D SVN -D SVN_AUTHZ -D DAV

Nálam így néz ki a teljes sor:

APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D STATUS -D PHP5 -D AUTHNZ_EXTERNAL -D SVN -D SVN_AUTHZ -D DAV"

Majd nyissuk meg annak a vhostnak a konfigurációs fájlját, ahol el szeretnénk érni a repókat és másoljuk be a következőt:

<Location /repos>
DAV svn
SVNParentPath /var/svn
SVNListParentPath on
</Location>

Az SVNListParentPath opció hatására ha a böngészőnkbe csak a sajatdmain.tld/repos címet adjuk meg, akkor kilistázza a létező repókat, ellenkező esetben 403-at kapunk arra a címre.
Igény szerint elláthatjuk jelszavas védelemmel, pl. a rendszer felhasználóit használva.

SVN repok létrehozása

svnadmin paranccsal tudunk repokat létrehozni, kezelni. Vagy itt egyszerű szkript, melynek csak a repo nevét kell megadni, majd mindent létrehoz és beállít ahogy kell:

#!/bin/bash
#Függőségek:
#app-shells/bash (bash)
#sys-apps/coreutils (mktemp,...)
#dev-util/subversion
if [ ! -d /var/svn/ ] ;then
    echo "Hiba: Nem találom az /var/svn mappát"
    exit 1
fi
if [ -z $1 ] ;then
    echo "Használat: $0 &lt;repo-neve&gt;"
    exit 1
fi
if [ -d /var/svn/$1 ] ;then
    echo "Hiba: /var/svn/$1 repo már létezik"
    exit 1
fi
echo "Repo létrehozása..."
    svnadmin create /var/svn/$1
    echo "Alapértelmezett mappák létrehozása..."
    TDIR=`mktemp -d`
    cd $TDIR
    mkdir -p {trunk,tags,branches}
    echo "Initial import..."
    svn import -q -m "Initial Import" --non-interactive $TDIR file:///var/svn/$1
    echo "Jogosultságok beállítása..."
    chown -R apache /var/svn/$1
    echo "Takarítás..."
    rmdir $TDIR/{trunk,tags,branches}
    rmdir $TDIR
    echo "Kész!"

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Ez az oldal az Akismet szolgáltatást használja a spam csökkentésére. Ismerje meg a hozzászólás adatainak feldolgozását .