Страница 1 из 1

Как настроить svn на FreeBSD?

Добавлено: 2014-10-03 7:46:38
zvezda_t
Всем привет.

Подскажите, пожалуйста, в чем может быть проблема. Не могу настроить svn.
На виртуалке, стоит FreeBSD + nginx + php + subversion. Интернета нет.

Делаю всё, как здесь написано:
настройка svn

при попытке подключиться через клиент TortoiseSVN, выходит ошибка:

Код: Выделить всё

Command   Checkout from svn://10.1.1.5/zvezda, revision HEAD, Fully recursive, Externals included

Error Unable to a repository at URL 'svn://10.1.1.5/zvezda'
Error Can't connect to host '10.1.1.5': Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение
По адресу http://10.1.1.5 на свой сайт (проект на php) я выхожу, проблем нет.
Что может быть не так?

Re: Как настроить svn на FreeBSD?

Добавлено: 2014-10-08 8:37:31
zvezda_t
Устанавливала svn из пакета, поэтому не видела, с какими галочками ставился, а в инструкции написано "запускаем конфигурацию и галочками отмечаем MOD_DAV_SVN, NEON, SERF". Скажите пожалуйста, можно мне сейчас проверить, в какой конфигурации установлен svn? Как это сделать, подскажите, пожалуйста?

Re: Как настроить svn на FreeBSD?

Добавлено: 2014-10-08 10:05:02
guest
zvezda_t писал(а):Устанавливала svn из пакета, поэтому не видела, с какими галочками ставился, а в инструкции написано "запускаем конфигурацию и галочками отмечаем MOD_DAV_SVN, NEON, SERF". Скажите пожалуйста, можно мне сейчас проверить, в какой конфигурации установлен svn? Как это сделать, подскажите, пожалуйста?

Код: Выделить всё

# pkg info -f `pkg info | grep subversion | cut -d" " -f 1,1`

Re: Как настроить svn на FreeBSD?

Добавлено: 2014-10-08 10:08:46
Neus
а говоришь - по инструкции ставила :)

в пакетах вроде дефолтные опции
дефолтные опции можно посмотреть тут http://www.freshports.org/devel/subversion/
или прямо в svn http://svn.freebsd.org/ports/head/devel ... n/Makefile

Re: Как настроить svn на FreeBSD?

Добавлено: 2014-10-08 11:43:52
zvezda_t
спасибо, что откликнулись)

guest, не получилось выполнить, пишет:

Код: Выделить всё

pkg: Command not found.
Выполняю команду из под root:

Код: Выделить всё

# /usr/local/etc/rc.d/svnserve restart
Stopping svnserve.
Starting svnserve.
# sockstat -4
COMMAND
postgres
sshd
inetd
sendmail
nginx
php-fpm
syslogd
Процесс svnserve не нашла в списке. Похоже нет его, а команда Starting svnserve, выполнилась же... Как так?

Похоже, что-то недоустановилось.
Скажите пожалуйста, а сейчас чтобы изменить конфигурацию, мне нужно удалить и заново установить?
А когда из пакета скаченного ставишь, с помощью команды: pkg_add, можно указать какие модули ставить перед запуском?
Научите, пожалуйста, как мне сейчас исправить ситуацию? :oops:

Re: Как настроить svn на FreeBSD?

Добавлено: 2014-10-08 12:00:50
zvezda_t
выполнила так:
# sockstat

Код: Выделить всё

USER COMMAND PID     FD PROTO LOCAL ADDRESS FOREIGN ADDRESS
svn   svnserve   10226 3   tcp6    *:3690                 *:*
нашелся всё таки. но не работает.

Как переустановить, с нужными настройками, подскажите, пожалуйста?

Re: Как настроить svn на FreeBSD?

Добавлено: 2014-10-08 12:28:23
guest
zvezda_t писал(а):спасибо, что откликнулись)

guest, не получилось выполнить, пишет:

Код: Выделить всё

pkg: Command not found.
Вы используете старый пакетный менеджер pkg_install (pkg_add, pkg_info, pkg_delete...)

Если ставили из пакетов, используя pkg_add, значит subversion без поддержки
MOD_DAV_SVN, но возможно с поддержкой SERF.
Выполняю команду из под root:

Код: Выделить всё

# /usr/local/etc/rc.d/svnserve restart
Stopping svnserve.
Starting svnserve.
# sockstat -4
COMMAND
postgres
sshd
inetd
sendmail
nginx
php-fpm
syslogd
Процесс svnserve не нашла в списке. Похоже нет его, а команда Starting svnserve, выполнилась же... Как так?
что-то сделали не так:

Код: Выделить всё

# sockstat | grep svn
svn      svnserve   747   4  tcp4   *:3690                *:*
tcp4 (ipv4)
Скажите пожалуйста, а сейчас чтобы изменить конфигурацию, мне нужно удалить и заново установить?
А когда из пакета скаченного ставишь, с помощью команды: pkg_add, можно указать какие модули ставить перед запуском?
Научите, пожалуйста, как мне сейчас исправить ситуацию? :oops:
пакеты - это готовые бинарники и никакие опции сборки им указать нельзя.

Если Вам нужно установить ПО с опциями сборки отличными от default'ных, нужно самостоятельно
собрать из портов с заданием требуемых опций.

прим. В Вашем посте sockstat показывает что svnserve у Вас почему-то только слушает tcp6?
ps. смотрите ps axuww | grep svnserve

Re: Как настроить svn на FreeBSD?

Добавлено: 2014-10-08 12:54:24
zvezda_t
Ужас, как всё сложно.
Что то надежда, что это заработает тает...
guest писал(а): прим. В Вашем посте sockstat показывает что svnserve у Вас почему-то только слушает tcp6?
ps. смотрите ps axuww | grep svnserve
я не знаю почему слушает так, делала по инструкции:

Код: Выделить всё

svnserve_enable="YES" 
svnserve_flags="-d --listen-port=3690"
svnserve_data="/home/svn/repositories"
svnserve_user="svn"
svnserve_group="svn"
Еще когда первый раз делала restart, вышли такие сообщения, что они значат?
Изображение

Вот:
# ps axuww | grep svnserve

svn 10226 0.0 0.9 7348 2300 ?? Is 2:16PM 0:00.00 /usr/local/bin/svnserve -d --listen-port=3690 -r /usr/home/svn/repositories

Re: Как настроить svn на FreeBSD?

Добавлено: 2014-10-08 13:30:54
guest
zvezda_t писал(а):Ужас, как всё сложно.
Что то надежда, что это заработает тает...
сложно что?!

Если хочется только тыкать мышкой, то переходите на M$, в Unix'ах нужно немного думать.

что показывает:

# uname -a
# ls -la /var/db/pkg | grep subversion
# pkg_info -r subversion_...
# cat /usr/local/etc/rc.d/svnserve

Re: Как настроить svn на FreeBSD?

Добавлено: 2014-10-08 14:12:22
zvezda_t
спасибо, что помогаете)

Изображение

файл открыла через WinSCP:

Код: Выделить всё

#!/bin/sh
#
# svnserve.sh for rc.d usage (c) 2005 Thomas E. Spanjaard.
# $Id$

# PROVIDE: svnserve
# REQUIRE: DAEMON
# BEFORE: LOGIN
# KEYWORD: shutdown

#
# Add the following line to /etc/rc.conf to enable SVNServe:
#
#  svnserve_enable="YES"
#  # optional
#  svnserve_flags="-d --listen-port=3690 --listen-host 0.0.0.0"
#  svnserve_data="/usr/local/repositories"
#  svnserve_user="svn"
#  svnserve_group="svn"
#
# Note:
# svnserve bind per default at the ipv6 address!
# If you want svnserve binding at ipv4 address, you have
# to use option 'svnserve_flags' with --listen-host parameter

. /etc/rc.subr

# Set some defaults
svnserve_enable=${svnserve_enable:-"NO"}
svnserve_flags=${svnserve_flags:-"-d --listen-port=3690 --listen-host 0.0.0.0"}
svnserve_data=${svnserve_data:-"/home/svn/repos"}
svnserve_user=${svnserve_user:-"svn"}
svnserve_group=${svnserve_group:-"svn"} 

name=svnserve
rcvar=`set_rcvar`
load_rc_config $name
command=/usr/local/bin/svnserve
command_args="-r ${svnserve_data}"

run_rc_command "$1"

Re: Как настроить svn на FreeBSD?

Добавлено: 2014-10-08 14:43:21
guest
что у Вас есть:

FreeBSD 8.2-RELEASE, ядро GENERIC, платформа i386 - печально

subversion-1.6.15 (непонятно как собрано и установлено) - установлено из пакетов?

/etc/rc.conf:

Код: Выделить всё

...
svnserve_enable="YES"
svnserve_flags="-d --listen-port=3690"
svnserve_data="/home/svn/repositories"
svnserve_user="svn"
svnserve_group="svn"
...
и в результате sockstat показывает:

Код: Выделить всё

    USER COMMAND PID     FD PROTO LOCAL ADDRESS FOREIGN ADDRESS
    svn   svnserve   10226 3   tcp6    *:3690                 *:*
покажите вывод команды:

Код: Выделить всё

# sockstat | grep svn
выполните следующее:

# /usr/local/etc/rc.d/svnserve stop

затем в /etc/rc.conf замените строку:

Код: Выделить всё

svnserve_flags="-d --listen-port=3690"
на

Код: Выделить всё

svnserve_flags="-d --listen-port=3690 --listen-host 0.0.0.0"
и выполните:
# /usr/local/etc/rc.d/svnserve start

покажите вывод команды:

# sockstat | grep svn

ps. Почему печально что 8.2-RELEASE, потому что без апгрейда, Вы не сможете работать со свежими портами из-за изменений /usr/bin/make,
чтобы работать со свежими портами, необходим апгрейд до 8.4-RELEASE

Re: Как настроить svn на FreeBSD?

Добавлено: 2014-10-08 14:59:46
zvezda_t
ух ты)
буду делать по порядку)
subversion-1.6.15 (непонятно как собрано и установлено) - установлено из пакетов?
да, пакеты отдельно скачивала, так как инет на серваке отключили.

Спасибо, что так подробно всё объяснили)
Вот, что получилось:
Изображение

Re: Как настроить svn на FreeBSD?

Добавлено: 2014-10-08 15:52:16
guest
zvezda_t писал(а):ух ты)
буду делать по порядку)
subversion-1.6.15 (непонятно как собрано и установлено) - установлено из пакетов?
да, пакеты отдельно скачивала, так как инет на серваке отключили.

Спасибо, что так подробно всё объяснили)
Вот, что получилось:
Изображение
разницу увидели?
tcp6 - в Вашем случае и tcp4 после изменений:

теперь убедитесь что svnserve работает по IPv4:

# echo "" | nc -4N localhost 3690
или
# echo "" | nc -4N `hostname` 3690
или
# telnet ваш_хост_name 3690
увидим сообщение от демона svnserve
ctrl+] - выщли в telnet, набрали quit - вышли из telnet

Все, работает, остальное зависит от настроек вашего conf

Re: Как настроить svn на FreeBSD?

Добавлено: 2014-10-09 8:01:24
zvezda_t
Ура! Ура! Урашечки)))))))))))
Заработал! И к репозиторию я тоже подключилась))))) Какая прелесть))))
Спасибо! Спасибо! Спасибо огромное!!!!
Благодарю, Вас что уделили мне время и помогли исправить ошибку! Дай Бог, Вам здоровья!)

Хорошего всем дня! Супер форум :)

Re: Как настроить svn на FreeBSD?

Добавлено: 2014-10-09 9:41:15
guest
zvezda_t писал(а):Ура! Ура! Урашечки)))))))))))
Заработал! И к репозиторию я тоже подключилась))))) Какая прелесть))))
Спасибо! Спасибо! Спасибо огромное!!!!
Благодарю, Вас что уделили мне время и помогли исправить ошибку! Дай Бог, Вам здоровья!)

Хорошего всем дня! Супер форум :)
Примечание: в /etc/rc.conf - svnserve запускается с опциями:

Код: Выделить всё

svnserve_flags="-d --listen-port=3690 --listen-host 0.0.0.0"
где --listen-host 0.0.0.0 означает слушать на всех ip-адресах (ipv4) ваших интерфейсов.
Если у Вас несколько интерфейсов с алиасами и несколько ip-адресов, а Вы хотите чтобы svnserve работал и был доступен только
по одному имени и связанным с ним ip-адресом, замените "0.0.0.0" на соответствующий ip-адрес, например:

- останавливаете svnserve:
# /usr/local/etc/rc.d/svnserve stop
- правите флаги в /etc/rc.conf

Код: Выделить всё

svnserve_flags="-d --listen-port=3690 --listen-host 192.168.1.1"
вместо 192.168.1.1 подставьте нужный Вам.
- запускаете svnserve:
# /usr/local/etc/rc.d/svnserve start

Re: Как настроить svn на FreeBSD?

Добавлено: 2014-10-09 11:35:21
zvezda_t
Благодарю, за очень понятное и полезное толкование. :)
Теперь ясно :)

Re: Как настроить svn на FreeBSD?

Добавлено: 2014-10-15 14:54:49
zvezda_t
Всем привет)
Настроила я svn, работает всё классно)
Только чтобы обновить изменения в рабочей папке сайта /usr/www, мне постоянно нужно выполнять команду svn update.
Скажите, пожалуйста, возможно ли каталог /usr/www сразу сделать основным каталогом репозитории - чтобы все пользователи в неё изменения коммитили?
сам проект svn находиться в каталоге /usr/home/svn/repositories/myproject

Это возможно или какой-то может другой способ есть автоматического обновления?

Re: Как настроить svn на FreeBSD?

Добавлено: 2014-10-15 15:22:32
Neus
ln -s /usr/home/svn/repositories/myproject /usr/www

Re: Как настроить svn на FreeBSD?

Добавлено: 2014-10-16 7:17:02
zvezda_t
Neus писал(а):ln -s /usr/home/svn/repositories/myproject /usr/www
Извините, а точно можно так ссылку делать?
Ведь в каталоге /usr/home/svn/repositories/myproject лижат технические файлы репозитории:
/conf/
/db/
/hooks/
/locks/
/format
/readme.txt

Где лежит копия моих файлов(каталог в который все пользователи осуществляют коммит), я так и не нашла... В доках читала, что в какой-то скрытой папке должны храниться на сервере.

А в каталоге /usr/www лежат файлы сайта:
index.php ну и тд.

Re: Как настроить svn на FreeBSD?

Добавлено: 2014-10-18 17:39:03
Neus
А что вы смотрите через сайт?

Re: Как настроить svn на FreeBSD?

Добавлено: 2014-10-23 16:30:47
Dron
Вам просто надо настроить post-commit hook в svn, чтобы при коммите делался svn up в рабочей копии сервера. А делать символическую ссылку на репозиторий смысла нет. Вам нужна актуальная рабочая копия в /usr/www а не репозиторий :)