OpenSUSE 11.1 – Subversion server + Apache2

[lang_en]If you would like know how to install subversion and create new subversion repository in OpenSUSE 11.1 this post is for you.

Content:

  1. Installation of subversion server
  2. Creation of new subversion repository and finishing configuration


Installation of subversion server

Top
  1. We have to install subversion and apache2 packages as the first step.
    Run console and run command:
    sudo /sbin/yast -i subversion-server subversion apache2 apache2-doc apache2-prefork libapr1 libapr-util1 neon
  2. We enable webdav and webdav-svn modules in apache configuration. It allow browse SVN repository by browser. Please run these commands:
    sudo a2enmod dav
    sudo a2enmod dav_svn
  3. We have to create group and user svn for manipulation with subversion repository. Run these commands:
    sudo groupadd -r svn
    sudo useradd -r -g svn -d /srv/svn -s /bin/false svn
  4. Now is time for creation of folder where files send to subversion-server will be stored. You can modify path as you want my chose is “/home/SVN”
    sudo mkdir -p /home/SVN
  5. We have to edit file “/etc/apache2/conf.d/subversion.conf”. I use will use nano for edit of this file. (if you don’t have nano installed you can do it by command sudo /sbin/yast -i nano)
    sudo nano /etc/apache2/conf.d/subversion.conf
  6. Modify the configuration file. I deleted complete content and put in configuration below. You have to modify only attributes “” and “SVNParentPath /home/SVN”. There is my configuration file:
    # Repository with URL http://your_url/svn
    # Free read access restricted commit access

    DAV svn
    SVNParentPath /home/SVN
    SVNListParentPath On
    # Limit write permission to list of valid users.

    # Require SSL connection for password protection.
    # SSLRequireSSL
    AuthType Basic
    # Message to give to the committer
    AuthName “Write access requires a password”
    # File listing users with write (commit) access
    AuthUserFile /srv/svn/user_access/svn_passwdfile
    Require valid-user

  7. We create now file for store passwords. Run these commands:
    sudo mkdir /srv/svn
    sudo mkdir /srv/svn/user_access
    sudo touch /srv/svn/user_access/svn_passwdfile
    sudo chown root:www /srv/svn/user_access/svn_passwdfile
    sudo chmod 640 /srv/svn/user_access/svn_passwdfile
  8. We can add user to svn acces by command (modify word “user_name” by real user name)
    sudo htpasswd2 /srv/svn/user_access/svn_passwdfile user_name
  9. Restart apache server.
    sudo rcapache2 restart


Creation of new subversion repository and finishing configuration

Top
  1. Create repository by command (please modify path “/home/SVN/myNewProject” to your path to subversion folder)
    sudo svnadmin create /home/SVN/myNewProject
  2. Modify permissions for folder what you created in previous step.

    sudo chown -R wwwrun:www /home/SVN/myNewProject{db,locks}
    sudo chown wwwrun:www /home/SVN/myNewProject

[/lang_en]

[lang_cs]
Pokud chete nainstalovat subversion server a vytvorit si vlastni repozitář v OpenSUSE 11.1, tak je tato stránka určená právě Vám.

Obsah:

  1. Instalace subversion serveru
  2. Vytvoření nového repozitáře a dokončení instalace


Instalace subversion serveru

Top
  1. Nejdříve musíme nainstalovat subversion a apache2 balíčky.
    Spusťte trerminál a v něm příkaz:
    sudo /sbin/yast -i subversion-server subversion apache2 apache2-doc apache2-prefork libapr1 libapr-util1 neon
  2. Zapneme webdav a webdav-svn moduly v konfiguraci apache. To nám umožní procházet repozitáře SVN pomocí prohlížeče. Spusťte následující příkazy:
    sudo a2enmod dav
    sudo a2enmod dav_svn
  3. Nyní musíme vytvořit skupinu a uživatele svn, který bude mít právo pracovat se složkou SVN. Spusťte tyto příkazy:
    sudo groupadd -r svn
    sudo useradd -r -g svn -d /srv/svn -s /bin/false svn
  4. Je čas vytvořit složku kde budou uloženy vaše soubory které pošlete do SVN serveru. Cestu si můžete vybrat libovolně, já jsem zvolil “/home/SVN”
    sudo mkdir -p /home/SVN
  5. Modifikujeme konfigurační soubor “/etc/apache2/conf.d/subversion.conf”. Osobně používám editor nano, samozřejmě můžete použít libovolný editor. (pokud chcete použít nano a nemáte jej nainstalovaný spusťte příkaz sudo /sbin/yast -i nano)
    sudo nano /etc/apache2/conf.d/subversion.conf
  6. Modifikujte soubor tak aby měl nastavené parametry jako ukázka dole. Já jsem postupoval tak, že jsem celý obsah smazal a vložit nový. Nezapomeňte změnit položky “” a “SVNParentPath /home/SVN”.
    # Repository with URL http://your_url/svn
    # Free read access restricted commit access

    DAV svn
    SVNParentPath /home/SVN
    SVNListParentPath On
    # Limit write permission to list of valid users.

    # Require SSL connection for password protection.
    # SSLRequireSSL
    AuthType Basic
    # Message to give to the committer
    AuthName “Write access requires a password”
    # File listing users with write (commit) access
    AuthUserFile /srv/svn/user_access/svn_passwdfile
    Require valid-user

  7. Nyní vytvořím soubor, kde budou uložena hesla pro přístup do SVN. Spusťte příkazy:
    sudo mkdir /srv/svn
    sudo mkdir /srv/svn/user_access
    sudo touch /srv/svn/user_access/svn_passwdfile
    sudo chown root:www /srv/svn/user_access/svn_passwdfile
    sudo chmod 640 /srv/svn/user_access/svn_passwdfile
  8. Nového uživatele přidáte tímto příkazem. Budete vyzvání k zadání jeho hesla. (změňte slovo “user_name” za reálné jméno uživatele)
    sudo htpasswd2 /srv/svn/user_access/svn_passwdfile user_name
  9. Restartujte apache server.
    sudo rcapache2 restart


Vytvoření nového repozitáře a dokončení instalace

Top
  1. Vytvořte repozitář příkazem (modifikujte cestu “/home/SVN/myNewProject” na cestu k vaší subversion složce, kterou jste si vytvořili v předchozím postupu)
    sudo svnadmin create /home/SVN/myNewProject
  2. Modifikujte oprávnění složky, kterou jsme právě vytvořili.

    sudo chown -R wwwrun:www /home/SVN/myNewProject{db,locks}
    sudo chown wwwrun:www /home/SVN/myNewProject

[/lang_cs]

Leave a Reply

Your email address will not be published. Required fields are marked *