Installer Subversion på en Synology NAS server
Jeg har længe ønsket at kunne have min kodebase til forskellige projekter inhouse, og efter et stykke tid hvor jeg lige skulle tage mig sammen til at prøve at installere Subversion på min Synology DS211+, og det lykkes faktisk at installere ipkg og Subversion uden de store problemer. Subversion er et fremragende open source version control system, som efterhånden er blevet meget udbredt i store som små software udviklingsmiljøer.
Jeg har ladet mig ínspirere af denne glimrende Subversion installationsguide, der findes på Synology’s forum. Har man lidt kendskab til Unix/Linux er det en fordel.
- Opret svn folder og bruger svnowner i DSM
- Installer ipkg på Synology NAS
- Installer Subversion Synology NAS via ipkg
- Konfigurér svn service (daemon)
- Opret svn repository
- Opsæt svn repository rettigheder
Opret svn folder og bruger svnowner i DSM
Som det allerførste skal vi have oprettet vores folder, hvor vores kodebase skal ligge i. Jeg altid brugt svn som mit folder navn, når jeg bruger svn, så jeg har oprettet en folder der hedder svn og en bruger der hedder svnowner i DSM (DiskStation Manager). Denne bruger skal have læse – og skriverettigheder på folderen svn.
NB!! Husk at enable Telnet og SSH adgang til din Synology i DSM, hvis det ikke allerede er gjort.
Installer ipkg på Synology NAS
som det næste skal vi have installeret ipkg, som er et pakkesystem baseret på dpkg, men ipkg er meget letvægts og er specielt beregnet til linux på små enheder som f.eks. Synology’s NAS servere. På den måde kan man nemt installere, fjerne og vedlige binære pakker.
For at installere ipkg skal vi bruge et script, der sætter det op. Dette script kan variere alt efter hvilken CPU din Synology NAS bruger, så det er ret vigtigt at finde ud af hvilken CPU ens Synology bruger. Du kan finde listen med Synology NAS servere og deres respektive CPU’er her. Når du har fundet din Synology og dennes CPU, kan du kigge her for at downloade det script du skal bruge til installere ipkg. Da jeg har en DS211+ med en Marvell Kirkwood mv6282 1.6Ghz ARM Processor (Marvell ARMADA 300), jamen så skal jeg hente det her script: http://wizjos.endofinternet.net/synology/archief/syno-mvkw-bootstrap_1.2-7_arm-ds111.xsh. Det script har jeg placeret i min folder tmp, som er en folder jeg oprettede i tidernes morgen på min Synology.
- Log ind på din Synology via SSH: ssh root@ip-på-din-nas. Password er det samme som admin.
- Gå til tmp folderen, hvor tidligere nævnt script ligger: cd /volume1/tmp
- Gør scriptet eksekverbart: chmod +x syno-mvkw-bootstrap_1.2-7_arm-ds111.xsh
- Kør scriptet: sh syno-mvkw-bootstrap_1.2-7_arm-ds111.xsh
- Fjern scriptet når det er kørt: rm syno-mvkw-bootstrap_1.2-7_arm-ds111.xsh
- Genstart din Synology og log ind igen som root
- Opdatër ipkg: ipkg update
Installer Subversion Synology NAS via ipkg
Vores ipkg er nu opdateret og vi er klar til at installere Subversion. Kør: ipkg install svn, som vil installere svn og dennes pakke afhængigheder.
Konfigurér svn service (daemon)
Efter at svn er blevet installeret, så er det en god idé at få det sat en daemon op, der sørger for at køre vores Subversion. Her skal vi ind og rette i 2 filer: /etc/inetd.conf og /etc/services. Til det formål skal vi bruge vi, som er en kendt text editor til linux og noget ukendt for Windows brugere. Man bliver meget glad for den, når først man har brugt den et par gange og bliver bekendt med de mest almindelig genveje.
-
Åben /etc/inetd.conf med vi: vi /etc/inetd.conf
Indsæt en ny linie. Kør Shift+a for at komme til slutningen af første linie og tryk Enter for ny linie.
Indsæt svn stream tcp nowait svnowner /opt/bin/svnserve svnserve -i -r /volume1/svn
Gem og luk vi: Esc :wq -
Åben /etc/services med vi: vi /etc/services
Indsæt:
svn 3690/tcp # Subversion
svn 3690/udp # Subversion
Gem og luk vi: Esc :wq
Genstart din NAS server, så vi kan få vores svn service op at køre på vores Synology.
Opret svn repository
Vores svn er nu installeret og vi har fået lavet en daemon til den. Så langt så godt. Næste trin bliver at få lavet vores svn repository. Det kræver ikke det store, men vi tager det lige med.
Skift til svnowner brugeren: su – svnowner. NB!! Hvis det ikke er muligt at skifte til svnowner brugeren, kan det være at login ´skal ændres for denne bruger. Her er en lille guide til hvordan du gør det.
Opret et svn repository kaldet test med svnowner brugeren:
cd /volume1/svn
svnadmin create test
Opsæt svn repository rettigheder
Efter at vi har oprettet vores test svn repository er det en god idé lige at ændre rettighederne på det.
Åben passwd filen i vores test repository med følgende: vi /volume1/svn/test/conf/passwd
Indsæt vores brugernavn og password for en specifik bruger: testuser = testpw (Password bliver gemt ikke krypteret)
Gem og luk filen: :wq
Åben svnserve.conf filen i vores test repository med følgende: vi /volume1/svn/test/conf/svnserve.conf
Sørg for at følgende værdier i svnserve.conf ikke er udkommenteret med # (Der må ikke være et # foran værdien).
anon-access = none
auth-access = write
password-db = passwd
realm = Test repository
Gem og luk filen: Esc :wq
Installér en subversion klient på din computer og lave et checkout af dit test repository.
Kør følgende kommando når din svn er i path: svn co svn://ip-på-din-nas/test min-lokale-folder
Det burde være det. Håber den her guide kan bruges af andre der gerne vil installere Subversion på deres Synology. Men det er nu også rart få ipkg ind på sin NAS, så man har mulighed for at få andre brugbare pakker installeret.
Din guide er super super god. Har fulgt den med succes i dag. Måske du lige skal tilføje et par detaljer, jeg måtte finde andetsteds (da jeg er totalt nybegynder):
- inden man skriver :wq, skal man trykke på ESC for at komme i command mode
- anon-access = … foruden et # må der heller ikke være mellemrum før teksten på linjen
Så nu kører jeg mit første eclipse android project fra svn serveren.
Mange mange tak for at du har taget tid til at lave guiden, det har været en stor hjælp. Kan jeg komme i mål, kan alle c”,)
Hej Allan, jeps detaljen med esc i VI for at komme i command mode er en svipser. Jeg beklager og tak for indspark.