Subversion sisältää Svnserve-ohjelman, pienen arkistopalvelimen, joka käyttää omaa yhteyskäytäntöään TCP/IP-yhteyden yli. Se soveltuu erinomaisesti pieniin asennuksiin tai ympäristöihin, joissa Apache-palvelinta ei voi käyttää.
Useimmissa tapauksissa svnserve on helpompi ottaa käyttöön ja nopeampi kuin Apache-pohjainen palvelin, vaikkakin siltä puuttuu muutamia kehittyneempiä ominaisuuksia. SASL-tuen ansiosta se on myös helppo turvata.
Nouda Subversion-ohjelman viimeinen versio osoitteesta http://subversion.apache.org/getting.html. Vaihtoehtoisesti voit noutaa CollabNet-asennusohjelman osoitteesta http://www.collab.net/downloads/subversion. Jälkimmäinen asentaa svnserve-ohjelman suoraan Windows-palveluksi ja sisältää myös muutamia SASL-työkaluja.
Mikäli Subversion on jo asennettu (ja svnserve on käynnissä), sinun pitää pysäyttää se ennen asennuksen jatkamista.
Suorita Subversion-asennusohjelma. Jos suoritat asennuksen palvelimellasi (suositeltavaa), voit ohittaa kohdan 4.
Avaa resurssienhallinta ja siirry Subversion-asennushakemistoon (yleensä C:\Program Files\Subversion); etsi bin-hakemistosta tiedostot svnserve.exe, intl3_svn.dll, libapr.dll, libapriconv.dll, libapriutil.dll, libdb*.dll, libeay32.dll ja ssleay32.dll - kopioi nämä tiedostot (vaihtoehtoisesti koko bin-hakemisto), uuteen hakemistoon palvelimellasi (esim. c:\svnserve).
Kun svnserve on nyt asennettu, se pitää saada käyntiin palvelimella. Helpoiten tämä onnistuu suorittamalla seuraava komento DOS-ikkunassa (voit myös luoda Windows-pikakuvakkeen):
svnserve.exe --daemon
svnserve käynnistyy ja alkaa odottaa palvelupyyntöjä portissa 3690. Valitsin --daemon ohjaa svnserven käynnistymään palveluna, jolloin se on aina käynnissä, kunnes lopetetaan käsin.
Jos et ole vielä luonut arkistoa, seuraa Apachen-palvelimen asennuksen antamia ohjeita: ”Määrittely”.
Testataksesi svnserven toiminnan, käynnistä → , jolla voit tutkia arkiston sisältöä.
Olettaen, että arkistosi sijaitsee paikassa c:\repos\TestRepo ja palvelimesi nimi on localhost, syötä:
svn://localhost/repos/TestRepo
arkistoselaimen kysyessä sitä.
Voit myös lisätä tietoturvaa ja säästää aikaa syöttäessäsi paikantimia svnserve-komennolle käyttämällä --root -valitsinta juuripolun asettamiseen ja pääsyn rajoittamiseen:
svnserve.exe --daemon --root drive:\path\to\repository\root
Käyttämällä edellistä testiä esimerkkinä, svnserve suoritettaisiin valitsimilla
svnserve.exe --daemon --root c:\repos
TortoiseSVN:ssä arkistoselaimen paikannin lyhentyy nyt puolestaan muotoon
svn://localhost/TestRepo
Huomaa, että --root -valitsinta tarvitaan myös, mikäli arkistosi sijaitsee palvelimellasi eri osiolla tai asemassa kuin svnserve-komento.
Svnserve ei aseta rajoituksia arkistojen määrälle. Riittää, kun sijoitat ne jonnekin määrittelemäsi juurihakemiston alle ja käytät osoitteissa juuren suhteen suhteellista paikanninta.
Älä luo tai kytkeydy Berkeley DB -tekniikalla toteutettuun arkistoon verkkojaon kautta. Se ei voi sijaita etätiedostojärjestelmässä. Ei edes silloin, kun olet kytkenyt verkkojaon asemakirjaimeen. Jos yrität käyttää Berkeley DB-tekniikalla toteutettua arkistoa verkkojaon kautta, tulokset eivät ole ennustettavissa - saatat saada heti kummallisia virheitä, tai voi mennä kuukausia ennen kuin havaitset, että arkisto on hienovaraisesti mennyt rikki.
Svnserven suorittaminen normaalina käyttäjänä ei ole yleensä paras tapa. Se tarkoittaa, että palvelimellasi pitää aina olla joku käyttäjä kirjautuneena, myös mahdollisten uudelleen käynnistysten jälkeen. On parempi suorittaa svnserve Windows-palveluna. Subversion-versiosta 1.4 lähtien svnserve voidaan asentaa Windows-palveluksi.
Asentaaksesi svnserven palveluna, joka käynnistyy automaattisesti Windowsin käynnistyessä, suorita seuraava komento (kaikki yhdellä rivillä).
sc create svnserve binpath= "c:\svnserve\svnserve.exe --service
--root c:\repos" displayname= "Subversion" depend= tcpip
start= auto
Mikäli joissain poluissa on välilyöntejä, pitää ne ympäröidä lainausmerkein:
sc create svnserve binpath= "
\"C:\Program Files\Subversion\bin\svnserve.exe\"
--service --root c:\repos" displayname= "Subversion"
depend= tcpip start= auto
Voit myös lisätä kuvauksen luotuasi palvelun. Tämä näkyy Windowsin Palvelut-toiminnossa.
sc description svnserve "Subversion server (svnserve)"
Huomaa sc -komennon käyttämä epätavallinen komentorivisyntaksi. Alkiossa avain= arvo avaimen ja merkin = välillä ei saa olla välilyöntiä, mutta ennen arvoa tulee olla välilyönti.
Microsoft suosittelee nykyisin, että palvelut suoritetaan joko Local Service tai Network Service -tunnuksella. Katso lisätietoja dokumentista The Services and Service Accounts Security Planning Guide. Luodaksesi palvelun Local Service -tunnukselle, lisää seuraava yllä olevaan esimerkkiin:
obj= "NT AUTHORITY\LocalService"
Huomaa, että Local Service -tunnukselle tulee antaa riittävät oikeudet sekä Subversioniin että arkistoihisi. Tämä pätee myös komentojonojen käyttämiin sovelluksiin. Tällaisille käyttäjille on valmiiksi ryhmä nimeltä "LOCAL SERVICE".
Kun olet asentanut palvelun, sinun pitää avata Windowsin Palvelut-toiminto ja käynnistää se (vain yhden kerran; jatkossa se käynnistyy automaattisesti uudelleen käynnistyksen yhteydessä.)
Katso lisätietoja dokumentista Windows Service Support for Svnserve.
Mikäli asensit aiemman version svnservestä käyttäen SVNService -kehyskomentoa, ja haluat nyt käyttää suoraa Windows-komentoa, sinun pitää poistaa kehyskomennon rekisteröinti (muista pysäyttää palvelu ensin!). Käytä komentoa
svnservice -remove
poistaaksesi palvelun rekisteriasetukset.
Oletusarvoisesti svnserve tarjoaa anonyymin lukuoikeuden arkistoon. Voit siis käyttää svn://-paikanninta työkopion hakuun tai päivittämiseen ja tutkia arkistoa TortoiseSVN:n arkistoselaimella. Et voi kuitenkaan toimittaa muutoksia arkistoon.
Salliaksesi arkistoon kirjoittamisen sinun on muokattava conf/svnserve.conf-tiedostoa, joka sijaitsee arkiston sisältävässä hakemistossa. Tämä tiedosto määrittää svnserve-palvelun asetukset ja sisältää myös hyödyllistä tietoa.
Voit sallia anonyymin kirjoitusoikeuden asettamalla yksinkertaisesti:
[general] anon-access = write
Huomaa kuitenkin, että tieto muutosten tekijästä ei tällöin säily, koska svn:author -ominausuus in tyhjä. Et voi myöskään määritellä, kuka saa tehdä muutoksia arkistoon. Tästä syystä tällainen asetus on riskialtis!
Eräs keino päästä tästä yli on luoda tunnussanatietokanta:
[general] anon-access = none auth-access = write password-db = userfile
missä userfile on tiedosto, joka sijaitsee samassa hakemistossa kuin svnserve.conf. Tämä tiedosto voi sijaita muualla tiedostojärjestelmässäsi (hyödyllistä kun useilla arkistoilla on samat saantioikeudet) ja siihen voidaan viitata absoluuttisella polulla , tai suhteessa conf-hakemistoon. Jos sisällytät polun, se tulee kirjoittaa /unix/käyttöjärjestelmän/tyylillä. \ tai asematunnukset eivät toimi. Tiedoston userfile rakenteen tulee olla seuraava:
[users] username = password ...
esimerkki kieltäisi kaikenlaisen käytön anonyymeiltä käyttäjiltä ja antaisi luku- ja kirjoitusoikeudet tiedostossa userfile luetelluille käyttäjille.
Jos pidät yllä useita arkistoja käyttäen samaa tunnussanatietokantaa, tunnistusalueen käyttö helpottaa käyttäjien elämää, koska TortoiseSVN voi tallettaa salasanatietosi, eikä niitä tarvitse syöttää kuin kerran. Löydät lisätietoa Subversion-kirjasta, erityisesti osista Create a 'users' file and realm ja Client Credentials Caching.
Cyrus Simple Authentication and Security Layer (SASL) on Carnegie Mellon -yliopistossa kehitetty avoimen lähdekoodin ohjelmisto. Se lisää tunnistus- ja salausominaisuudet mihin tahansa verkkoyhteyskäytäntöön, ja Subversion-ohjelman versiosta 1.5 lähtien sekä svnserve-palvelin että TortoiseSVN-asiakas tukevat sitä.
Täydellisempi kuvaus löytyy Subversion-kirjan luvusta Using svnserve with SASLUsing svnserve with SASL
Aktivoidaksesi SASL-mekanismeja palvelimella joudut tekemään kolme asiaa. Ensinnäkin, luo [sasl] -osio arkistosi svnserve.conf -tiedostoon ja lisää siihen seuraava asetus:
use-sasl = true
Luo seuraavaksi svn.conf-niminen tiedosto sopivaan paikkaan - tyypillisesti Subversion-asennushakemistoon.
Kolmanneksi, luo kaksi uutta rekisteriavainta kertoaksesi SASLin käyttöön. Luo avain [HKEY_LOCAL_MACHINE\SOFTWARE\Carnegie Mellon\Project Cyrus\SASL Library] ja lisää siihen kaksi uutta merkkijonoavainta: SearchPath, joka kertoo sasl*.dll-tiedostot sisältävän hakemistopolun (tavallisesti Subversion-asennushakemisto), ja avain ConfFile, joka sisältää svn.conf-tiedoston hakemistopolun. Jos käytät Collabnet-asennusohjelmaa, rekisteriavaimet luodaan automaattisesti.
Muokkaa svn.conf-tiedostoa seuraavasti:
pwcheck_method: auxprop auxprop_plugin: sasldb mech_list: DIGEST-MD5 sasldb_path: C:\TortoiseSVN\sasldb
Viimeinen rivi ilmoittaa tunnistustietokannan (tiedosto sasldb) sijainnin. Tietokanta voi sijaita missä tahansa, mutta se pn näppärää sijoittaa arkistot sisältävään hakemistoon. Varmista, että svnserve-palvelu kykenee lukemaan tiedoston.
Jos svnserve on jo käynnissä, joudut käynnistämään sen uudelleen, jotta se lukisi määritykset uudelleen.
Nyt, kun kaikki on valmista, riittää, kun luot käyttäjät ja salasanat. Tämän tehdäksesi tarvitset ohjelmaa saslpasswd2. Jos käytät CollabNetin toimittamaa asennusta, tämä ohjelma löytyy asennushakemistosta. Anna seuraava komento:
saslpasswd2 -c -f C:\TortoiseSVN\sasldb -u realm username
Valitsin -f määrittää tietokannan sijainnin, ja merkkijonon realm on täsmättävä arkistosi svnserve.conf-tiedoston vastaavan kanssa. Viimeinen parameteri username on uuden käyttäjän nimi. Huomaa, että realm ei saa sisältää välilyöntejä.
Voit luetella tietokannan käyttäjätunnukset ohjelmalla sasldblistusers2.
Salliaksesi tai estääksesi eri salaustasoja, voit asettaa kaksi arvoa arkistosi svnserve.conf -tiedostoon:
[sasl] use-sasl = true min-encryption = 128 max-encryption = 256
Muuttujat min-encryption ja max-encryption määrittävät palvelimen vaatiman salaustason. Aseta molemmat arvot nolliksi estääksesi salauksen täysin. Aseta molemmat arvot ykkösiksi käyttääksesi yksinkertaista tarkistussummaa tiedon siirtoon (estää tiedon muuttamisen ja takaa tietojen yhtenäisyyden ilman salausta). Jos haluat sallia (muttet vaatia) salausta, aseta minimiarvo nollaksi ja maksimiarvo bittisalausavaimen pituuteen. Vaatiaksesi salausta aina, aseta molemmat arvot suuremmiksi kuin yksi. Edellisessä esimerkissämme vaadimme asiakkailta vähintään 128-bittistä ja korkeintaan 256-bittistä salausta.
Toinen tapa tunnistaa svnserve-pohjaisen palvelimen käyttäjät on käyttää SSH-tekniikkaa. Se ei ole yhtä helppo asentaa kuin SASL, mutta voi olla joskus hyödyllinen.
Tällöin svnserveä ei suoriteta palveluna, vaan SSH käynnistää svnserven puolestasi tunnistettuna SSH-käyttäjänä. Tätä varten palvelimelle pitää asentaa SSH-palvelu.
Luvussa Liite G, Svnserven turvaaminen SSH-tekniikalla kuvataan palvelimen asennuksen vaiheet. Löydät lisää SSH-artikkeleita FAQ-osiosta etsimällä termiä ”SSH”.
Lisätietoa svnservestä löytyy Subversion-kirjasta, kappaleesta Version Control with Subversion.
Subversion-versiosta 1.3 alkaen svnserve tukee samaa mod_authz_svn polkuihin perustuvaa valtuutusmekanismia kuin mikä on käytössä Apache-palvelimella. Ottaaksesi sen käyttöön sinun pitää muokata tiedostoa conf/svnserve.conf arkiston asennushakemistossa ja lisätä rivi, joka viittaa valtuutustiedostoosi.
[general] authz-db = authz
Tässä authz on tiedosto, johon määrittelet saantioikeudet. Voit käyttää erillistä tiedostoa kullekin arkistolle tai voit jakaa saman tiedoston useiden arkistojen välillä. Luvusta ”Polkuperustainen valtuutus” löydät tiedoston rakenteen kuvauksen.