2010. május 7., péntek

Subversion (SVN) telepítése CentOS-re

Ritkán kell bármit is telepítenem Linux alá - leginkább azért, mert be kell, hogy valljam némileg szakbarbár módon kezelem ezt a kérdést -, de egyszerűbb feladatokkal megbírkózom. Ilyen volt egy subversion szerver telepítése is. A régi szerverünkön a Kylix-os kódok miatt még egy RedHat AS 2.1-es fut, míg az újon, megszabadulva a kötöttségektől egy CentOS telepített jóságos rendszergazdánk. Terhelni viszont általában nem szeretem őt, csak akkor, ha számomra megoldhatatlan vagy megoldhatatlannak tűnő feladattal/problémával szembesülök. Egy sima svn szerver telepítése nem ilyen.

A lépések:

A yum jó barát, egyszerű, mint a faék, ezért a szerver telepítése egy sor:
yum install subversion.x86_64

Hozzuk létre az svn usert, megfelelő jelszóval
useradd svn
passwd svn

Ha ez megtörtént, hozzuk létre a repository root-ot:
mkdir /mnt/data1/subversion/repositories

Adjunk jogot az svn usernek erre az alkönyvtárra:
chown svn.svn /mnt/data1/subversion/repositories

Át is jelentkezhetünk svn user-nek és hozzuk létre az első projekt repository-t:
cd  /mnt/data1/subversion/repositories
svnadmin create proj1

Nincs más dolgunk, mint beállítani a projekthez tartozó hozzáférési beállításokat, amiket így tehetünk meg:
szerkesszük meg a proj1/conf/svnserve.conf állományt és szedjük ki a kommentjeleket az alábbi sorok elől:
anon-access = none
auth-access = write
password-db = passwd

Hozzuk létre a proj1-hez tartozó felhasználók táborát a passwd file-ban:
user1=jelszo

Ezen a ponton akár el is indíthatnánk az svn szerverünket, de én szeretem, ha service-ként fut, boot-kor elindul, ezért hozzuk létre root-ként a /etc/init.d/subversion állományt az alábbi tartalommal:

#!/bin/bash
#
#   /etc/rc.d/init.d/subversion
#
# Starts the Subversion Daemon
#
# chkconfig: 345 90 10
# description: Subversion Daemon

# processname: svnserve

source /etc/rc.d/init.d/functions

[ -x /usr/bin/svnserve ] || exit 1

# To pass additional options (for instace, -r root of directory to server) to
# the svnserve binary at startup, set OPTIONS here.
#
OPTIONS="-r /var/www/subversion/repositories"
RETVAL=0
prog="svnserve"
desc="Subversion Daemon"

start() {
        echo -n $"Starting $desc ($prog): "
   daemon $prog -d $OPTIONS
   RETVAL=$?
   [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
   echo
}

stop() {
   echo -n $"Shutting down $desc ($prog): "
   killproc $prog
   RETVAL=$?
   [ $RETVAL -eq 0 ] && success || failure
   echo
   [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
   return $RETVAL
}

case "$1" in
  start)
   start
   ;;
  stop)
   stop
   ;;
  restart)
   stop
   start
   RETVAL=$?
   ;;
  condrestart)
        [ -e /var/lock/subsys/$prog ] && restart
   RETVAL=$?
   ;;
  *)
   echo $"Usage: $0 {start|stop|restart|condrestart}"
   RETVAL=1
esac

exit $RETVAL


Adjuk hozzá a service listához és indítsuk is el:
chkconfig --level 345 subversion on
service subversion restart

SVN kliensből az alábbi paraméterezéssel kapcsolódhatunk svn://[userame]@[hostname]/[project name] a fenti példa alapján: svn://svn@app1.server.com/proj1 - felhasználónévnek és jeszónak pedig használjuk a passwd állományban megadottakat.

Ennyi. Nekem működik.

Források: http://www.electrictoolbox.com/install-subversion-centos/ , http://behzad.nategh.com/install-subversion-on-centos-cpanel-vps-with-autostart-script-on-reboot/

Nincsenek megjegyzések:

Megjegyzés küldése