Настройка удаленного доступа Subversion в Fedora Core 9 по http


Настройка удаленного доступа Subversion в Fedora Core 9 по http
В статье описывается как настроить доступ к SVN репозитарию через http с использованием Apache + Apache Portable Runtime Utility Library
Смысл всего этого - работать с SVN, установленном на удаленном сервере.

Для этого пропишем в конфигурационном файле httpd.conf несколько строк:
LoadModule dav_svn_module     /usr/lib/apache/mod_dav_svn.so
LoadModule authz_svn_module   /usr/lib/apache/mod_authz_svn.so


DAV svn
SVNPath /home/svn/svn.repo/
AuthType Basic
AuthName "SVN Repo"
AuthUserFile /etc/httpd/svn.htpasswd
Require valid-user

(Пути прописываем свои)

Если этих модулей для апача нет, качаем их отсюда:
http://rpm.pbone.net/index.php3/stat/3/limit/4/srodzaj/1/dl/40/search/mod_dav_svn.so/field[]/1/field[]/2
Например mod_dav_svn-1.5.2-1.fc9.x86_64.rpm

Теперь создаем пользователя, под которым будем работать с svn удаленно:
sudo /usr/sbin/htpasswd -c -m /etc/httpd/svn.htpasswd ваш_логин
Модули нашлись, пробуем перезапустить апач:
sudo /etc/init.d/httpd restart
И вот теперь самое интересное.
Если он пишет что-то вроде
Starting httpd:
httpd: Syntax error on line 185 of /etc/httpd/conf/httpd.conf: 
Cannot load /etc/httpd/mod_dav_svn.so into server: 
/usr/lib64/libsvn_fs_base-1.so.0: undefined symbol: db_create
Значит у вас SVN скомпилен без поддержки Berkeley DB, и для хранения данных используется FSFS. Одним из решений этой проблемы было бы перекомпилить subversion из исходников с поддержкой этой самой Berkeley DB.
Итак, для начала установим BerkleyDB

Установка BerkleyDB

Качаем:
Download (HTTP):
http://download-east.oracle.com/berkeley-db/db-4.8.26.tar.gz
Download (FTP):
ftp://mirror.ovh.net/gentoo-distfiles/distfiles/db-4.8.26.tar.gz
Распаковываем и инсталлим
tar -xvzf db-4.8.26.tar.gz
cd db-4.8.26.tar.gz
cd build_unix &&
../dist/configure --prefix=/usr/local/BerkeleyDB.4.8 \
                  --enable-compat185 \
                  --enable-cxx &&
make
теперь будучи root'ом
make docdir=/usr/share/doc/db-4.8.26 install &&
chown -v -R root:root \
      /usr/bin/berkeley_db_svc \
      /usr/bin/db_* \
      /usr/include/db{,_185,_cxx}.h \
      /usr/lib/libdb{{,_cxx}.a,{,_cxx,_java,_tcl}-4.8.{so,a,la}} \
      /usr/share/doc/db-4.8.26
Теперь поставим APR и APR-util. Если уони у вас есть, можно смело пропустить этот пункт.

Установка APR и APR-UTIL

Для начала их надо скачать. Например отсюда:
http://www.apache.org/dist/apr/

Разархивируем, входим в каталог, и компилим. Сначала Apr, потом Apr-utils:
./configure --prefix=/usr/local/apr/
make
make install

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/ --with-dbm=db48 --with-berkeley-db=/usr/local/BerkeleyDB.4.8
make
make install
Если в процессе configure вываливается ошибка наподобие
...
apr-util +Berkeley db4 not found
значит линкер не может найти библиотеки. Говорим ему где искать:
echo /usr/local/BerkeleyDB.4.8/lib > /etc/ld.so.conf
ldconfig
export CPPFLAGS="-I/usr/local/BerkeleyDB.4.8/include"
export LD_LIBRARY_PATH="/usr/local/BerkeleyDB.4.8/lib/"
export LDFLAGS="-L/usr/local/BerkeleyDB.4.8/lib"
и опять
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/ --with-dbm=db48 --with-berkeley-db=/usr/local/BerkeleyDB.4.8
make
make install
все, APR и APR-UTIL установлены. Теперь собираем сам сабвершн

Собираем SVN с поддержкой BerkleyDB

# Качаем и разархивируем Subversion
mkdir /tmp/svnbuild
cd /tmp/svnbuild
wget http://subversion.tigris.org/downloads/subversion-1.5.5.tar.gz
tar xvzf /tmp/svnbuild/subversion-1.5.5.tar.gz
cd subversion-1.5.5
Далее заменяем пути к апачу на свои. Заметьте, все должно писаться в одну строку:
./configure --prefix=/usr/local/subversion 
--with-apr=/usr/local/apr 
--with-apr-util=/usr/local/apr-util 
--with-apxs=/usr/sbin/apxs


# build and install Subversion
make
make install


# restart Apache
/etc/init.d/httpd restart
Если в процессе make вываливается что-то типа
...
/neon/src/.libs/libneon.a: could not read symbols: Bad value 
collect2: ld returned 1 exit status 
make: *** [subversion/libsvn_ra_dav/libsvn_ra_dav-1.la] Fehler 1
Значит делаем следующее (не спрашивайте как и почему это поможет, но оно помогает ))
cd neon/
./configure --enable-shared 
make 
make install 
Далее возвращаемся в свою директорию и заканчиваем собирать subversion
 
make 
make install 
Все, сабвершн установлен, получить доступ удаленно вы можете по http://yourdomain.ru/svn, где вас попросят сначала ввести логин и пароль )

Оценить Статью:  
1   2   3   4   5   6   7   8   9   10    

« Назад
SAPE все усложнил?

MainLink - простая и прибыльная продажа ссылок!

Последние поступления:

Стишки пирожки про Олега⁠⁠

Размещена 20 июня 2024 года

Олег купил презервативы
Проник в семидесятый год
И подарил их папе с мамой
Такой нелепый суицид

читать далее…

Размещена 10 августа 2020 года

Я по ТВ видел, что через 10 лет мы будем жить лучше, чем в Германии...
Я не понял, что это они с Германией сделать хотят?!

читать далее…

ТехЗадание на Землю

Размещена 14 марта 2018 года

Пpоект Genesis (из коpпоpативной пеpеписки)

читать далее…

Шпаргалка по работе с Vim

Размещена 05 декабря 2017 года

Vim довольно мощный редактор, но работа с ним не всегда наглядна.
Например если нужно отредактировать какой-то файл например при помощи crontab, без знания специфики работы с viv никак.

читать далее…

Ошибка: Error: Cannot find a valid baseurl for repo

Размещена 13 сентабря 2017 года

Если возникает ошибка на centos 5 вида
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
Eg. Invalid release/

читать далее…