Subversion mit Apache auf FreeBSD

darkangelw

Member
Hallo Zusammen

Obwohl ich weiss, dass ich ein ziemlicher Newbie in Sachen FreeBSD bin, habe ich trotzdem sehr viele Informationen über dieses Betriebssystem nun schon durchgearbeitet.

So wie es aussieht jedoch ohne Erfolg, ich stehe nämlich nun vor meinem FreeBSD System mit einem FTP, SSH Zugang und sogar einem funktionierenden CVSup, kann jedoch nun nicht nach der Anleitung auf BSDGuides das Subversion mit Apachemodul installieren.

Folgende Fehlermeldung habe ich trotz ersetzen der APXS Variable auf /usr/local/sbin/apxs bekommen :grumble: :
Code:
make install -DWITH_MOD_DAV_SVN
===>   subversion-1.4.3_2 depends on file: /usr/local/sbin/apxs - found
===>   subversion-1.4.3_2 depends on file: /usr/local/sbin/apxs - found
===>   subversion-1.4.3_2 depends on file: /usr/local/bin/libtool - found
===>   subversion-1.4.3_2 depends on shared library: expat.6 - found
===>   subversion-1.4.3_2 depends on shared library: neon.26 - found
===>   subversion-1.4.3_2 depends on shared library: intl - found
===>  Configuring for subversion-1.4.3_2

You should build `www/apache22' with db4 support to use subversion with it.
Please rebuild `www/apache22' with option `WITH_BERKELEYDB=(db4|db41|db42)' and try again.

Or you can disable db4 support. Only 'fs' repository backend will be available.
To disable db4 support, define WITHOUT_BDB.

*** Error code 1

Stop in /usr/ports/devel/subversion.

Nun möchte ich euch fragen, ob Ihr vielleicht eine Lösung wisst, wie ich das Subversion doch noch nach Anleitung installieren kann.

Liebe Grüsse aus der Schweiz
darkangelw
 
Eigentlich steht doch da, was du machen sollst.
Du sollst mit angeben, welche Version der Berkeley Datenbank du haben willst, oder ob du lieber gar keine nimmst. Wenn du ein "fs" Repository nimmst, bekommst du weniger Probleme mit den Berechtigungen fuer apache.
Du solltest also ein
Code:
# make -DWITH_MOD_DAV_SVN -DWITHOUT_BDB install clean
ausfuehren.
 
Die Antwort auf deine Frage steht doch schon exakt in der Fehlermeldung: Entweder den Apache mit BDB-Unterstützung bauen oder Subversion ohne. Da man das BDB Backend für Subversion nicht verwenden will, bietet sich entsprechend WITHOUT_BDB=yes an.
 
Hallo Zusammen

Danke für die schnelle Antwort, dies hat nun auch schön funktioniert, nun habe ich aber folgende Struktur nicht:
/usr/ports/devel/subversion/work/

*Schäm* Bin wirklich ein bisschen extrem auf Anleitungen fixiert, da ich mich sonst nicht im FreeBSD bewegen kann ohne Sicherheit.
 
Ok...

... dann werd ich diese Anleitung vergessen.

Jedoch stehe ich dann vor dem Problem, dass ich auch mit Hilfe von FreeBSD Handbuch und Subversion Handbuch nur das Repository zum laufen bringe, keine Authentifizierungen im Repository erstellen kann und auch keinen Zugriff per Web habe.

;'( Bis jetzt lief doch alles so gut mit dem FreeBSD und ich hatte sogar vertrauen in das System.

//edit
Kann jetzt nicht mal mehr die Befehle "svnadmin" zum createn eines Repositories und auch kein "svnserve" zum starten des SVNServers mehr gebrauchen.

Es erscheint folgende Fehlermeldung:
Code:
svnadmin create /usr/home/svn/repos/MyFirstProject
svnadmin: Command not found.

//edit zum zweiten mal
Konnte nun nach einem Neustart des Systems ein Repository erstellen kann jedoch kein lokales "svn checkout" damit machen.
 
Zuletzt bearbeitet:
nach langem hin und her, hab ich nun endlich ein checkout geschafft, kann jedoch kein commit und update durchführen, vielleicht mache ich da auch einfach etwas falsch.

z.B.
Code:
#mkdir /tmp/testcheckout
#mkdir /tmp/testcheckout01
#cd /tmp/testcheckout
#svn checkout file:///usr/home/svn/repos/MyFirstProject/trunk MyProject
#cd /tmp/testcheckout01
#svn checkout file:///usr/home/svn/repos/MyFirstProject/ MyProject
#cd /tmp/testcheckout/MyProject
#vi test.txt
#cd /tmp/testcheckout
#svn commit MyProject
#cd /tmp/testcheckout01
#svn update MyProject

Ist das so OK? Denn ich kann nun unter /tmp/testcheckout01/MyProject/trunk/ nicht das "test.txt" finden.
 
svnadmin konntest du am Anfang wahrscheinlich nicht aufuehren, weil du bei der tcsh erst ein "rehash" laufen lassen musst, damit die Programme im Pfad neu eingelesen werden.
Ein Reboot ist dafuer nicht noetig ;-)
 
Hehe, da ich leider bei den meisten Programmen nicht weiss wie ich die Dinger neustarten muss, reboote ich das System halt einfach.
 
habe nun gestern Abend noch rausgefunden, dass ich die test.txt mit "svn add" noch hätte zum Repository hinzufügen müssen, damit mit dieser gearbeitet werden kann.

Somit funktioniert jetzt das Checkout, Commit, Add und Update. :) Bin doch richtig stolz auf mich, schon wieder ein kleines Stückchen mehr geschafft.

Nun sitze ich jedoch seit heute morgen daran mein Repository auch von einem Windows XP Client aus zu erreichen. Dies kann ich jedoch irgendwie nicht. Es wird keine richtige Verbindung aufgebaut.

Und das hübsche Modul, welches nun im httpd.conf geladen wird, für die Webansicht verweigert mir das Einloggen, damit ich dann das Repository anschauen kann.

Falls jemand eine Lösung für meine zwei Problemchen bereit hält, bin ich gerne bereit auch weitere Informationen zu den conf files reinzuposten, damit ich dieses Subversion endlich zum laufen bringe.

Liebe Grüsse
darkangelw
 
Ich habe in der Datei /etc/rc.conf noch folgende Einträge:
svnserve_enable="YES"
svnserve_flags="-d --Listen-host=0.0.0.0"
svnserve_data="/var/svnrep/<Name des Repository>"
svnserve_user="www"
svnserve_group="www"
Das mit dem svnserve_flags ist notwendig, um den Server am laufen zu halten und dafür zu sorgen, dass er auf IPv4 Adressen horcht. Das geht sonst bei mir nicht. Ich hoffe das hilft Dir weiter.
Der Server kann mit folgendem Kommado gestartet werden:
# /usr/local/etc/rc.d/svnserve.sh start
 
@darkangelw: Fragen über Fragen!
1. Willst Du das Repo über Apache erreichbar haben? Oder über svnserve (wie klhesc)?
2. Ist apache richtig konfiguriert und läuft er denn? (SVNRootPath, Require valid-user ... und gestartet mit apachectl start)?
3. Du sagst, daß Du das Repo von WindowsXP nicht erreichen kannst. Wie machst Du das? Auch mit file:// auf das Netzlaufwerk, daß Du (wahrscheinlich dann mit Samba) freigegeben hast? -> Böse! Ganz böse! Oder per http(s)://?
Probier dann erstmal, (siehe 2.) ob Du es lokal schaffst, per http(s):// ein-/auszuchecken.

Google mal nach Apache und Subversion, irgendwo (ich denke bei TortoiseSVN, schöner Client für Windows) gibt's ne sehr gute Anleitung.
 
@klhesc:
Soweit hab ich es geschafft. Der Apacheserver läuft, den eine andere Webseite kann normal erreicht werden. Wenn ich nun auf das Repository zugreifen will per Browser sehe ich auch, dass meine Option im httpd.conf erreicht werden kann, denn das Login wird richtig angeschrieben, jedoch krieg ich irgendwie keine berechtigung darauf zuzugreifen.

Nun also @Zoi:
1. Ich muss das Repo sehen können über den Webbrowser und per Tortoise darauf zugreifen können, und diese Zugriffe geschehen alle von Windows XP klients aus.
2. Wie oben schon erwähnt, bis auf die Tatsache das ich irgendwie keine Berechtigung bekomme, obwohl ich verschiedene File für diese Berechtigungen erstellt habe.
3. Über den Webbrowser würd ich mal sagen http:// und fürs Tortoise svn://

@xbit:
Ich habe dadurch dass ich eine Abschlussarbeit in FreeBSD machen werde, das ganze FreeBSD und Subversionbuch soweit ich dies gebrauchen konnte, gelesen (da meine Englisch Kenntnisse, vielleicht nicht die Besten sind, habe ich vielleicht auch einfach etwas falsch verstanden).

Da ich ja eben selber noch in der Ausbildung bin, habe ich sogar meinen Ausbildner danach gefragt woran es liegen könnte und dieser hat schon verschiedene Varianten des Subversion installiert. Jedoch ist es noch nie auf einem FreeBSD gemacht worden und er geht davon aus, dass irgend eine Berechtigung vom FreeBSD System her mich nicht per Windows XP rauf lässt und es in erster Linie vielleicht gar nicht am Subversion liegt, und dies in beiden Fällen.

Obwohl ich nun schon sicherlich zum zehnten mal jedes rc.conf, inetd.conf oder services durchgegangen bin.

;'( Ich weiss es hört sich vielleicht nicht sehr gut an, aber ich habe bis auf das ich nun seit ca. 2 Monaten mit FreeBSD am arbeiten bin, zuvor ungefähr zweimal ein Linux in den Händen gehabt und davor nur mit Windows gearbeitet. Deshalb stehe ich ein bisschen vor einem Schwarzen Loch.
 
Hallo Zusammen

Da ich bei meinen Problemen mit dem FreeBSD auf einem Firmenserver gearbeitet habe, habe ich dies nun auch mal bei mir nachgestellt, damit ich weiter auch Abends an meinem Problem arbeiten kann.

Gerne füge ich als Anhang als .txt File das Installationsprotokoll von mir hinzu, damit ihr nachvollziehen könnt, wie alles aufgebaut ist bis jetzt, werde morgen Abend nochmals daran arbeiten und dann hoffentlich auf den gleichen Stand mit dem Firmenserver aufholen.

Vielleicht seht ihr ja schon bei diesem Installationsprotokoll einen Fehler.

Grüsse und Gn8 wünscht
darkangelw
 

Anhänge

Also bei mir läuft Subversion zwar nicht über Apache jedoch kann ich mittels Tortoise darauf zugreifen. Was noch keiner angesprochen hat ist der Firewall-Eintrag für Subversion auf FreeBSD, falls du eine Firewall benutzt. Aber ich denke mal das macht jeder, oder?

Viele Grüße
 
Ne hab keine Firewall auf dem FreeBSD System.

Und per Tortoise komme ich immer noch nicht drauf, obwohl ich bis heute morgen um eins daran gebastelt habe.

Was ich jedoch weiter mitteilen kann ist, dass ich ein bisschen weitergekommen bin mit dem Webbrowser zugriff.

Code:
# ------------------
# | FreeBSD System |
# ------------------
# Damit auch per Webbrowser auf das Repository zugegriffen werden kann, aktiviere ich folgende zeilen in /usr/local/etc/apache22/httpd.conf

LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so

<Location /svn>
        DAV svn
        SVNPath /usr/home/svn/repos/MyFirstProject
</Location>

# ------------------
# | Windows System |
# ------------------
http://`serverIP`/svn/

# Und siehe da, dies funktioniert nun auf einmal. Fragt mich bitte nicht warum, ich weiss es nämlich nicht.

Somit ist nur noch ein Problem vorhanden, nämlich, dass ich nicht per Tortoise darauf zugreifen kann.
 
Hallo Zusammen habe meinen Fehler entdeckt.

Code:
#inetd.conf
svn stream tcp nowait root /usr/local/bin/svnserve svnserve -i -r /usr/home/svn/repos
#statt
svn stream tcp nowait root /usr/bin/svnserve svnserve -i -r /usr/home/svn/repos

:) Danke nochmals an alle die hier so tatkräftig Lösungen mit mir gesucht haben.
Ihr seid die BESTEN!!!

Grüsse
darkangelw
 
So wie ich das sehe, benutzt Du svnserve als Server.
Ich dachte Du wolltest es über Apache machen?
Nicht, das da etwas dagegen spricht, aber dann ist die Threadüberschrift irgendwie falsch gewählt. ;)
 
Es geht darum, dass ich beides Realisiere.

Nämlich die Ansicht über Apache, womit ich anfangs viel mehr probleme hatte und als zweites der Zugriff über svn mit Tortoise.

Hoffe, dass dir das genug Erklärung ist.

Grüsse
darkangelw
 
Warum Apache und svnserve?
Ich will Dich mit den Fragen nicht nerven, ich will mir nur ein klareres Bild verschaffen.
Habe Subversion+Apache+SSL auf Linux und FreeBSD eingerichtet.
Vielleicht lerne ich ja auch noch etwas dabei und/oder kann helfen.

Grüße,
Zoi
 
@darkangelw: Kannst Du Geschwindigkeitsunterschiede beim initialen Auschecken von Projekten feststellen zw. Apache und svnserve? Wir haben massive Probleme beim Auschecken von Projekten (ca. 30 MB) mit Eclipse via HTTP/Apache, das dauert teilweise eine halbe Stunde. Da wir nur via Apache arbeiten, frage ich mich nun, ob es Performance Unterschiede zwischen den beiden Protokollen gibt.

Grüße
schroeder
 
darkangelw schrieb:
Nämlich die Ansicht über Apache,
Dafür ist das DAV-SVN-Modul IMHO ungeeignet, auch wenn es diese Funktion minimal unterstützt.
Für den Zugriff auf das Repository im Browser (zur Ansicht) nimmt man am besten z.B. WebSVN. Das ist schnell "installiert" und benötigt nicht die Apache-Module. (kann diese aber benutzen)

darkangelw schrieb:
und als zweites der Zugriff über svn mit Tortoise.
Primär solltest du dir erst einmal über eines Gedanken machen.Du hast ein Subversion Repository, und jetzt stellt sich die Frage, über welches Protokoll du auf dieses Repository zugreifen willst:
a) über "svn://" (svnserve)
b) oder über "http(s)://" (Apache / DAV)
Die SVN Clients unterstützen alle a), und fast alle b). Die Protokolle unterschieden sich sonst hauptsächlich nur noch (vereinfacht), wie genau man es mit der Authorizierung handeln will. (Apache ist hier im Vorteil)
Beides anzubieten ist absolut unnötig.

schroeder schrieb:
Kannst Du Geschwindigkeitsunterschiede beim initialen Auschecken von Projekten feststellen zw. Apache und svnserve?
Grundsätzlich sollte svnserve schneller sein. Mangels Eclipse, kann ich dir aber nicht sagen, inwieweit sich das in diesem Client auswirkt.
Hast du mal das auschecken zwischen Eclipse und dem Consolenclient verglichen?
 
Dafür ist das DAV-SVN-Modul IMHO ungeeignet, auch wenn es diese Funktion minimal unterstützt.
Für den Zugriff auf das Repository im Browser (zur Ansicht) nimmt man am besten z.B. WebSVN. Das ist schnell "installiert" und benötigt nicht die Apache-Module. (kann diese aber benutzen)

Dadurch, dass ich die Option -DWITH_MOD_DAV_SVN bei der Installation von Subversion aktivieren kann, ist es kein Problem nur noch schnell ein bisschen Code in das httpd.conf einzufügen, damit jeder mein Repository anschauen kann. Da ich mich mit WebSVN nicht auskenne und dies dann zusätzlich auch noch Installieren müsste, denke ich mal habe ich eine sehr gute Lösung für mich gefunden. Aber eben, jedem sein Ding. Muss ja nicht immer alles gleich aussehen.

Primär solltest du dir erst einmal über eines Gedanken machen.Du hast ein Subversion Repository, und jetzt stellt sich die Frage, über welches Protokoll du auf dieses Repository zugreifen willst:
a) über "svn://" (svnserve)
b) oder über "http(s)://" (Apache / DAV)
Die SVN Clients unterstützen alle a), und fast alle b). Die Protokolle unterschieden sich sonst hauptsächlich nur noch (vereinfacht), wie genau man es mit der Authorizierung handeln will. (Apache ist hier im Vorteil)
Beides anzubieten ist absolut unnötig.

Da ich von einem anderen Server ausgegangen bin, welcher schon ein Repo besitzt und ich dort per svn:// über Tortoise einloggen kann und dann sehr einfach das Repo benutzen kann, wollte ich auch diese Lösung umsetzten.

Weiteres habe ich diese Option angeschaut, da ich am 30. April eine Abschlussarbeit anfange, bei welcher auch beide Optionen also svnserve und apache als Vorgabe integriert sind.
 
Zurück
Oben