Конфигуриране на Subversion под FreeBSD

Настоящата публикация е свързана единствено с инсталирането и конфигурирането на Subversion. Няма да навлизам в подробности относно Subversion, какво представлява, как се използва и работи с тази, бих казал широко разпространена система за контрол на версиите. Повече за Subversion може да научите от „Version Control with Subversion“. Книгата е публикувана под Creative Commons лиценз, можете да изберете да я изтеглите заедно със Subversion, по време на инсталацията от ports.
С това всъщност трябва да започнем – инсталирането на subversion от ports системата на FreeBSD.

[root@myserver /usr/ports]# cd /usr/ports/devel/subversion
[root@myserver /usr/ports/devel/subversion]# make install clean

Тук всичко би трябвало да мине безпроблемо. Ще ми се да отбележа, че Subversion зависи от sqlite3, а той „отказва“ да се компилира с -ffast-math. За инсталирането на sqlite, временно махнах тази опция от /etc/make.conf и след това отново я върнах обратно. След като приключим с инсталацията, създаваме svn потребител и група.

[root@myserver /var]# adduser
Username: svn
Full name: SVN Repository
Uid (Leave empty for default):
Login group [svn]:
Login group is svn. Invite svn into other groups? []:
Login class [default]:
Shell (sh csh tcsh bash rbash nologin) [sh]: bash
Home directory [/home/svn]: /var/svn
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]: no
Lock out the account after creation? [no]:
adduser: INFO: Successfully added (svn) to the user database.

Home директорията, на този потребител всъщност е директорията, в която ще съхраняваме хранилищата. Аз избрах това да е /var/svn. Трябва да променим правата за достъп до тази директорията, така че всички от svn групата да имат пълен достъп до нея. Идеята е, всеки който принадлежи към svn групата, да има достъп до хранилищата.

[root@myserver /var]# chmod g+rwx svn
[root@myserver /var]# chmod o-rwx svn
drwxrwx— 2 svn svn 512 Nov 27 17:18 svn

Последно, трябва да променим и umask на svn потребителя. По подразбиране, той е 022. Ще го направим 007, така че групата да има пълен достъп до файловете. Понеже за shell избрахме bash, файлът в който трябва да направим това, ще бъде .bashrc. За целта, като svn потребител създаваме .bashrc и добавяме вътре „umask 0007″.

[root@myserver /var]# su svn
[svn@myserver /var]$ cd
[svn@myserver ~]$ touch .bashrc

Ето как би трябвало да изглежда .bashrc след тази промяна.

[svn@myserver ~]$ cat .bashrc
# Change umask
umask 0007

Трябва да добавим всички потребители, които искаме да достъпват хранилищата към svn групата, за целта редактираме /etc/group. Аз добавих само себе си към тази група. Ето как изглежда при мен реда със svn групата.

svn:*:1003:saiman

За да достъпвам по-лесно svn хранилищата, направих връзка от /svn към /var/svn.

[root@myserver /var]# ln -s /var/svn/ /svn

Последно, отново като svn потребител, създаваме хранилище.

[svn@myserver /svn]$ svnadmin create repo

За да се уверя, че всичко работи реших да се свържа към сървъра посредством ssh, изтегля хранилището и добавя един тестов файл.

saiman@mylaptop:/media/sda2/home/saiman/svnroot$ svn co svn+ssh://myserver.com/svn/repo
Checked out revision 0.
saiman@mylaptop:~/svnroot/repo$ svn add test.txt
A test.txt
saiman@mylaptop:~/svnroot/repo$ svn ci
Adding test.txt
Transmitting file data .svn: Commit failed (details follow):
svn: attempt to write a readonly database
svn: attempt to write a readonly database
svn: Your commit message was left in a temporary file:
svn: ‘/media/sda2/home/saiman/svnroot/repo/svn-commit.tmp’

Явно не работеше, така както очаквах. Оказа се, че repo/db/rep-cache.db, който се създава от svnadmin е без права за писане на групата. За да заработят нешата, трябва да променим правата на групата за този файл.

[svn@myserver /svn]$ chmod g+rwx repo/db/rep-cache.db

След тази последна намеса от наша страна, всичко би трябвало да заработи нормално.

Сподели:
Edno23 Favit Svejo Twitter Facebook Google Buzz Delicious Google Bookmarks Digg
Публикувано в *BSD. Постоянна връзка.

Вашият коментар

Вашият email адрес няма да бъде публикуван Задължителните полета са отбелязани с *

*

Можете да използвате тези HTML тагове и атрибути: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>