URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 79501
[ Назад ]

Исходное сообщение
"Устновка SVN под FreeBSD"

Отправлено Aesthete Animus , 27-Мрт-08 16:46 
Передо мной встала следующая задача: установить SVN сервер под FreeBSD. До этого приходилось это делать под виндой - ни каких проблем не возникало. До сих пор с никсами дело имел мало, что уж там говорить о фре.

Собственно, что я делаю (пока ковыряю у себя дома из-под вмвари, дабы не превратить работающий сервер в неработающий).

Скомпилил и установил /usr/ports/devel/subversion. С какими опциями компилить - представлял слабо, поэтому в открывшемся "окошке" отметил галочками все.

Далее, дописал в файлик /etc/rc.conf такие строчки:
svnserve_enable="YES"
svnserve_flags="--daemon --listen-port=3690"
svnserve_data="/home/svn/repos"
svnserve_user="svn"
svnserve_group="svn"

Создал группу svn:
$ pw add group svn
И юзверя в ней:
$ pw add user svn -g svn -s /sbin/nologin
Это строка взята из одного фака по данному вопросу и мне, честно говоря, до конца неясно, зачем в качестве шела устанавливать /sbin/nologin,

После этого создал репозитарий в /home/svn/repos/debug, а также сделал несколько действий по настройке учетных записей. Подобное я уже делал в винде, поэтому, вопросов не возникло.

Далее, установил права владения для юзверя svn
$ chown -R svn:svn /home/svn

После этого ребучу комп (т.к. не знаю, как перечитать конфиги без ребута, если знаете - подскажите). Убедился, что svnserve запущен (командой ps auxww). Но что-либо импортировать в репозитарий не получается (в качестве клиента использую TortoiseSVN). Стабильно имею ошибку "Can't connect to host '10.10.135.74': Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение".


Содержание

Сообщения в этом обсуждении
"Устновка SVN под FreeBSD"
Отправлено Антон , 27-Мрт-08 17:28 
Какие адреса svnserve слушает?
sockstat/netstat -anL
есть файрвол или нет и разрешен ли в нем порт 3690?

"Устновка SVN под FreeBSD"
Отправлено Aesthete Animus , 27-Мрт-08 19:38 
>Какие адреса svnserve слушает?
>sockstat/netstat -anL
>есть файрвол или нет и разрешен ли в нем порт 3690?

Мда... Не хотелось мне этого говорить, ну что ж, придется... Я полный чайник во FreeBSD, а в линухе работал толкьо на уровне юзера!..

>Какие адреса svnserve слушает?

Вы имеете ввиду, с каких ip запросы воспринимются svnserve? Нигде особо это не указывалось...
>есть файрвол или нет и разрешен ли в нем порт 3690?

Черт его знает. Специально я его не устанавливал... В rc.conf добавил строчку "firewall_enable="NO"", если это вообще имеет смысл.


"Устновка SVN под FreeBSD"
Отправлено Антон , 27-Мрт-08 19:49 
netstat -anL
sockstat |grep 3690
ipfw list

скинь выводы сюда


"Устновка SVN под FreeBSD"
Отправлено Aesthete Animus , 28-Мрт-08 01:06 
>скинь выводы сюда
>netstat -anL

Current listen queue sizes (qlen/incqlen/maxqlen)
Proto Listen         Local Address        
tcp4  0/0/10         127.0.0.1.25          
tcp6  0/0/7          *.3690

>sockstat |grep 3690

svn      svnserve   598   3  tcp6   *:3690                *:*

>ipfw list

ipfw: getsockopt(IP_FW_GET): Protocol not available



"Устновка SVN под FreeBSD"
Отправлено alexpn , 31-Мрт-08 11:58 
похоже что у него pf или ipfilter


"Устновка SVN под FreeBSD"
Отправлено BulgakowI , 14-Апр-08 12:41 
>С какими опциями компилить - представлял слабо, поэтому в открывшемся "окошке" отметил галочками все.

Зря, обычно состояние по умолчанию как раз самодостаточно.


>tcp6  0/0/7         *.3690
>

у тебя IP6 сеть?
Скорее всего нет. Соответственно должно быть  
tcp4  0/0/7          *.3690


как вариант
cd /usr/ports/devel/subversion
make deinstall
удалить файлик /var/db/ports/subversion/options
и поставить с опциями по умолчанию



"Устновка SVN под FreeBSD"
Отправлено anononon , 14-Окт-13 15:20 
>[оверквотинг удален]
>>
> у тебя IP6 сеть?
> Скорее всего нет. Соответственно должно быть
> tcp4  0/0/7          
> *.3690
> как вариант
> cd /usr/ports/devel/subversion
> make deinstall
> удалить файлик /var/db/ports/subversion/options
> и поставить с опциями по умолчанию

зачем удалять руками файлик с шансом ошибиться если можно
make rmconfig


"Устновка SVN под FreeBSD"
Отправлено Aesthete Animus , 14-Апр-08 02:44 
>Какие адреса svnserve слушает?
>sockstat/netstat -anL
>есть файрвол или нет и разрешен ли в нем порт 3690?

Добавил в inetd.conf строчку (взята с минимальными изменениями из оф. книжки по svn)

> svn stream tcp nowait root /usr/bin/svnserve svnserve -i

И запустил inetd.

После этого на попытку коммита из виндузячего компа имею ошибку "Connection close unexpectly". Тоесть соединение устанавливается, но почему-то обрывается.

Подскажите, что я делаю неправильно? Может во фре нужны какие-то дополнительные манипуляции с конфигами только для того, разрешить прослушивание нужных портов определенными сервисами? В общем я совершенно в тупике,


"Устновка SVN под FreeBSD"
Отправлено PavelR , 14-Апр-08 05:40 
>[оверквотинг удален]
>> svn stream tcp nowait root /usr/bin/svnserve svnserve -i
>
>И запустил inetd.
>
>После этого на попытку коммита из виндузячего компа имею ошибку "Connection close
>unexpectly". Тоесть соединение устанавливается, но почему-то обрывается.
>
>Подскажите, что я делаю неправильно? Может во фре нужны какие-то дополнительные манипуляции
>с конфигами только для того, разрешить прослушивание нужных портов определенными сервисами?
>В общем я совершенно в тупике,

Уточните пожалуйста, каким образом клиент подключается к репозитарию - ИМХО,существует, не менее 5 методов подключения:

svn://
svn+ssh://
http://
https://
file://


И только двум надо svnserve...
Хотя, похоже что в Вашем случае надо, но тем не менее...


"Устновка SVN под FreeBSD"
Отправлено PavelR , 14-Апр-08 05:50 
>[оверквотинг удален]
>Скомпилил и установил /usr/ports/devel/subversion. С какими опциями компилить - представлял слабо, поэтому
>в открывшемся "окошке" отметил галочками все.
>
>Создал группу svn:
>$ pw add group svn
>И юзверя в ней:
>$ pw add user svn -g svn -s /sbin/nologin
>Это строка взята из одного фака по данному вопросу и мне, честно
>говоря, до конца неясно, зачем в качестве шела устанавливать /sbin/nologin,
>

Насколько я понимаю, пользователь и группа создаются при установке порта автоматически.
Устанавливать шелл надо в целях повышения безопасности системы - этому пользователю шелл не будет полезен, а системе может оказаться вреден.

>Далее, установил права владения для юзверя svn
>$ chown -R svn:svn /home/svn
>
>После этого ребучу комп (т.к. не знаю, как перечитать конфиги без ребута,
>если знаете - подскажите). Убедился, что svnserve запущен (командой ps auxww).

в /usr/local/etc/rc.d/ лежат скрипты запуска, в том числе и svnserve
Его можно запустить с параметрами restart,stop,start..

>Но что-либо импортировать в репозитарий не получается (в качестве клиента использую
>TortoiseSVN). Стабильно имею ошибку "Can't connect to host '10.10.135.74': Подключение не
>установлено, т.к. конечный компьютер отверг запрос на подключение".

Еще советы:
1. Запускайте сервер либо собственным даймоном, через рц.конф, или через инетд, но никак не одновременно.

2. Запустите даймон в отладочном режиме, если есть (я svnserve не использую, потому не знаю), и попробуйте подключиться.


"Устновка SVN под FreeBSD"
Отправлено Aesthete Animus , 14-Апр-08 15:59 
Всем большое спасибо за рекоммендации - узнал не мало нового! Проблема решилась простым прописыванием собственного ip при запуске svnserve. Тоесть, нужно сделать следующее:

svnserve_enable="YES"
svnserve_flags="--daemon --listen-port=3690 --listen-host 10.10.135.74"
svnserve_data="/home/svn/repos"
svnserve_user="svn"
svnserve_group="svn"

Почему это нужно было делать явно - не знаю, наверное, следствие моих ошибок при установке. В общем, буду продложать курить доки...

Для соединения используется svn:// протокол. Использовать inetd необходимость отпала.


"Устновка SVN под FreeBSD"
Отправлено bugz , 03-Май-08 13:48 
Была та же проблема, благодарю за нитку - сэкономило время.

Думаю, что по умолчанию собранный svnserve слушает ipv6, а при явном указании интерфейса ipv4:

[bugz@vedi /devel/email2trac]$ sudo svnserve --daemon --root=/svn --threads && netstat -a | grep LISTEN | grep svn && sudo kill `ps -aux | grep svn | awk '{print $2}'` && sudo sudo svnserve --daemon --root=/svn --threads --listen-host=192.168.9.99 && netstat -a | grep LISTEN | grep svn
tcp6       0      0  *.svn                  *.*                    LISTEN
tcp4       0      0  vedi.svn               *.*                    LISTEN
[bugz@vedi /devel/email2trac]$


"Устновка SVN под FreeBSD"
Отправлено Rascal , 06-Июл-08 11:37 
а вот если слушать нада несколько ip то можно сделать так:

sysctl net.inet6.ip6.v6only=0

После этого svnserve вешается на ip4.


"Устновка SVN под FreeBSD"
Отправлено abufct , 29-Авг-08 07:08 
>а вот если слушать нада несколько ip то можно сделать так:
>
>sysctl net.inet6.ip6.v6only=0
>
>После этого svnserve вешается на ip4.

изменение системных переменных просто так не очень здорово, т.к. х.з., на что ещё повлияет, если просто надо, чтобы слушал на любом ip4, то лучше написать:
--listen-host=0.0.0.0


"Устновка SVN под FreeBSD"
Отправлено disfinder , 05-Янв-09 22:15 
>изменение системных переменных просто так не очень здорово, т.к. х.з., на что
>ещё повлияет, если просто надо, чтобы слушал на любом ip4, то
>лучше написать:
>--listen-host=0.0.0.0

спасибо большое. помогло.