В OS X 10.8 отсутствуют библиотеки mod_*_svn.so

После обновления до OS X 10.8 (Mountain Lion) я обнаружил, что мой сервер SVN не работает. В версии 10.7 я настроил его для использования сервера httpd для предоставления доступа, но после обновления LoadModules для dav_svn_module и authz_svn_module (mod_dav_svn.so и mod_authz_svn.so) отсутствуют.

Кто-нибудь знает, как получить их для стандартной подрывной версии Apple (v1.6.18)?

спасибо, Том


person Thom DeCarlo    schedule 29.07.2012    source источник
comment
возможный дубликат Mountain Lion - отсутствует SVN   -  person Pekka    schedule 29.07.2012
comment
Не дурак, я думаю. Другой вопрос, похоже, касается клиента svn, а не проблем с сервером.   -  person Thom DeCarlo    schedule 30.07.2012


Ответы (6)


Вы можете восстановить поддержку svn через http в OS X 10.8, также известной как Mountain Lion.

Два модуля http://httpd.apache.org должны быть собраны из исходного кода. Два модуля:

  • mod_dav_svn.so
  • mod_authz_svn.so

Необходимые шаги подробно описаны в этой статье, http://www.dssw.co.uk/blog/2012/09/27/serving-svn-with-httpd-on-os-x/.

Для Mac OS X 10.8 сжатые шаги приведены ниже, но сначала стоит прочитать связанную статью, чтобы понять, что происходит:

curl 'http://archive.apache.org/dist/subversion/subversion-1.6.18.tar.bz2' > ~/Downloads/subversion-1.6.18.tar.bz2
cd ~/Downloads
bunzip2 subversion-1.6.18.tar.bz2
tar -xf subversion-1.6.18.tar
cd subversion-1.6.18
./configure
make
cp subversion/mod_dav_svn/.libs/mod_dav_svn.so /usr/libexec/apache2/.
cp subversion/mod_authz_svn/.libs/mod_authz_svn.so /usr/libexec/apache2/.
echo "LoadModule dav_svn_module libexec/apache2/mod_dav_svn.so" >> /etc/apache2/httpd.conf
echo "LoadModule dav_svn_module libexec/apache2/mod_authz_svn.so" >> /etc/apache2/httpd.conf
person Graham Miln    schedule 27.09.2012
comment
Я сделал это и могу получить к нему доступ через браузер, но если я попытаюсь проверить, я получаю запрещенную ошибку. Я пробовал искать в Интернете, и у других была такая же проблема, включая stackoverflow.com/questions/12020382 - запуск отдельного Apache упускает суть :-/ - person hood; 20.11.2012
comment
В ответ на себя я нашел решение. Отредактируйте файл /Library/Server/Web/Config/apache2/httpd_webdavsharing.conf, добавив RewriteCond %{REQUEST_URI} !^/svn/.* чуть выше последнего RewriteRule. Не уверен в постоянстве этого исправления, но заставил его работать. - person hood; 20.11.2012
comment
Хотя последние две команды дают вам отказ в разрешении, но они работают без запуска этих команд. - person Inder Kumar Rathore; 09.05.2013

Я видел много вещей, сброшенных в базовую OS X Mountain Lion, но в других местах. Например, чтобы получить инструменты командной строки, вы должны получить XCode, затем перейти в настройки XCode и загрузить инструменты командной строки. X11 теперь представляет собой отдельный проект с открытым исходным кодом под названием XQuartz, который вам необходимо загрузить, чтобы получить поддержку X11, которая используется для Mac.

Весь материал CalDev был перенесен на OS X Server, и я подозреваю, но не могу проверить, что эти модули Subversion Apache также находятся в OS X Server, который стоит 20 долларов.

Конечно, вы можете попробовать бесплатную версию CollabNet Subversion Edge. Однако это исполняемый файл сообщества, что означает, что он не принадлежит CollabNet и помечен как предназначенный для Mac OS X 10.7. Он устанавливается в каталог /opt и содержит собственную версию Apache со всеми необходимыми модулями для Subversion.

Если я найду что-нибудь еще, я дам вам знать.

person David W.    schedule 29.07.2012
comment
Вау, я думал это опечатка. В последний раз, когда я смотрел на лицензию OS X Server, она стоила более 500 долларов. Это определенно то, что нужно учитывать. Но я не вижу подрывную деятельность, указанную на их веб-сайте как одну из услуг в пакете. надо будет проверить дальше... - person Thom DeCarlo; 30.07.2012

Я решил пойти, в краткосрочной перспективе, с решением для сборки исходного кода. Я скачал исходный код для версии 1.6.18 с сайта subversion.apache.org и скомпилировал, но НЕ устанавливал его на свой Mac. Затем я копался в полученной иерархии каталогов, чтобы найти отсутствующие файлы *.so. (Они были спрятаны в каталоге .lib.) Скопировав их в /usr/libexec/apache2 и перезапустив httpd, я смог получить доступ к своему серверу Subversion через его URL-адрес.

Это, вероятно, не «лучшее» решение, но, похоже, оно работает.

person Thom DeCarlo    schedule 30.07.2012

У меня та же проблема, и мне не удалось создать подрывную деятельность на Mountain Lion. Поэтому я получаю mod_dav_svn.so и mod_authz_svn.so из TimeMachine of Lion и помещаю их на текущий Mountain Lion.

Насколько я проверял, работает нормально, без проблем. Это не идеальное решение, тем не менее, оно будет хорошим решением в качестве пробного решения.

person yusami    schedule 06.08.2012

Я могу подтвердить, что эти модули Apache 2 НЕ предоставляются OS X Server 10.8. (Если у вас установлен Server.app 10.8, вы можете увидеть список дополнительных модулей Apache 2, которые он предоставляет:

ls /Applications/Server.app/Contents/ServerRoot/usr/libexec/apache2

Лучше всего использовать стороннюю версию. Я предпочитаю Финка (http://www.finkproject.org/). После того, как вы установили Fink, вы можете установить svn Fink в /sw на вашем сервере следующим образом:

fink install libapache2-mod-svn

а затем отредактируйте httpd.conf Apache 2, чтобы указать на модули Fink svn.

person bleater    schedule 07.08.2012

Может быть, это может быть полезно. Это конфигурация, которая работает на моем обновленном Mountain Lion:

https://discussions.apple.com/thread/4181495?start=15&tstart=0

Спасибо, Том ДеКарло.

person jpcid    schedule 21.08.2012