Installare subversion su ubuntu 8.04 e configurare svnserve

Rate this post

Per alcune esigenze (ram) ho dovuto rimuovere apache dal mio sistema ed installare al suo posto lighttpd. Uno dei pochi problemi provocati da questo passaggio è rappresentato dal fatto che non posso più utilizzare i plugin di apache per svn, quindi ho ricorso al svnserve che non è altro che un server standalone il cui unico scopo è quello di fornire l’accesso alle repository.

Innanzitutto installate subversion
[shell]
apt-get install subversion
mkdir -p /usr/svn/repository
[/shell]

Aggiungete il gruppo svn e impostate necessari permessi
[shell]
groupadd svn
chgrp svn /usr/svn/repository
chmod g+rw /usr/svn/repository
chmod g+s /usr/svn/repository
[/shell]

Se volete potete anche assegnare un utente al gruppo svn (non è essenziale)
[shell]
usermod -a -G svn LOCALUSERNAME
[/shell]

Facciamo qualche test per assicurarsi che la parte di subversion funzioni correttamente
[shell].
svnadmin create /usr/svn/repository/test
svn checkout file:///usr/svn/repository/test
cd test
echo "Hello, World" > hello.txt
svn add hello.txt
svn commit -m "added hello world"
[/shell]

Normalmente svnserve legge la configurazione dalla cartella “conf” presente dentro ogni repository, io invece ho preferito avere un accesso globale che mi permette comunque di cambiare configurazione per singolo progetto se sorge tale necessità.
[shell]
mkdir -p /usr/svn/repository/conf/
[/shell]

Configurazione di accessi
[shell]vi /usr/svn/repository/conf/authz[/shell]
Aggiungete
[shell]
[/]
user1 = rw

[test:/]
user2 = rw
*=r
[/shell]

In questo modo noi diciamo che user1 può accedere a tutte le repository in modalità lettura/scrittura, invece user2 può accedere solamente alla repository test in scrittura e lettura (mentre tutti altri utenti autenticati possono accedere in lettura).

Configurazione Password
[shell]
vi /usr/svn/repository/conf/passwd
[/shell]
Aggiungete
[shell]
user1=password1
user2=password2
[/shell]

Configuriamo svnserve
[shell]vi /usr/svn/repository/conf/svnserve.conf[/shell]
Aggiungete dentro
[shell]
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = My Repo
[/shell]

Ora dobbiamo linkare la configurazione globale alla repository test creata in precedenza
[shell]
cd /usr/svn/repository/test/
rm -rf conf
ln -s ../conf
[/shell]

se volete fare la prova potete eseguire il demone di svnserve manualmente
[shell]svnserve -d –foreground -r /usr/svn/repository[/shell]

usando per esempio tortoisesvn fate il browse della repository all’indirizzo
[text]svn://ipaddress/test[/text]
Vi dovrebbe chiedere autenticazione, usate le password definite in precedenza.

Ora rimane solamente configurare esecuzione automatica di svnserve. Per prima cosa scarichiamo questo script
[shell]
wget http://odyniec.net/articles/ubuntu-subversion-server/svnserve
mv svnserve /etc/init.d/
chmod +x /etc/init.d/svnserve
[/shell]

Modificatelo
[shell]vi /etc/init.d/svnserve[/shell]
Sostituendo
[text]DAEMON_ARGS="-d -r /usr/local/svn/repos"[/text]
con
[text]DAEMON_ARGS="-d -r /usr/svn/repository"[/text]

Aggiornate rc.d
[shell]update-rc.d svnserve defaults[/shell]

E lanciate il server
[shell]/etc/init.d/svnserve start[/shell]

A questo punto tutto dovrebbe essere a posto.

You may also like...

2 Responses

  1. Luca Sanna scrive:

    ciao,

    ho seguito la tua guida e finchè avevo un solo repo andava tutto bene, adesso ho aggiunto un nuovo repo e creato un solo file di conf per tutte due, non funziona, mi da smepre questo

    erroreTrasmissione dati …svn: E220004: Commit fallito (seguono dettagli):
    svn: E220004: Access denied

    ho provato a vedere i permessi dei file, ma nulla non ne vengo fuori….
    riesci ad aiutarmi??
    grazie

    • Alekc scrive:

      Sinceramente ora faccio un po fatica a darti una mano poiché ho smesso di usare questa tecnologia passando a bitbucket che ti da spazio e ripository illimitate gratuitamente senza alcun sbatti per la loro configurazione. Prova a darci un occhiata.

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">