升级到 OS X 10.8 (Mountain Lion) 后,我发现我的 SVN 服务器坏了。在 10.7 下,我将其设置为使用 httpd 服务器提供访问权限,但在升级后,dav_svn_module 和 authz_svn_module(mod_dav_svn.so 和 mod_authz_svn.so)的 LoadModules 丢失了。
有谁知道如何为标准的 Apple 提供的颠覆(v1.6.18)获得这些?
谢谢,汤姆
升级到 OS X 10.8 (Mountain Lion) 后,我发现我的 SVN 服务器坏了。在 10.7 下,我将其设置为使用 httpd 服务器提供访问权限,但在升级后,dav_svn_module 和 authz_svn_module(mod_dav_svn.so 和 mod_authz_svn.so)的 LoadModules 丢失了。
有谁知道如何为标准的 Apple 提供的颠覆(v1.6.18)获得这些?
谢谢,汤姆
您可以在 OS X 10.8(又名 Mountain Lion)上恢复 svn over http 支持。
需要从源代码构建两个Apache httpd模块。这两个模块是:
mod_dav_svn.so
mod_authz_svn.so
本文详细介绍了所需的步骤,在 OS X 上使用 httpd 服务 svn。
对于 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
我在 OS X Mountain Lion 的基础上看到了很多东西,但在其他地方。例如,要获取命令行工具,您必须获取 XCode,然后进入 XCode 首选项并下载命令行工具。X11 现在是一个名为 XQuartz 的独立开源项目,您必须下载它才能获得 Mac 随附的 X11 支持。
所有 CalDev 的东西都已经转移到 OS X Server 上,我怀疑,但无法验证这些 Subversion Apache 模块是否也在 OS X Server 中,购买价格为 20 美元。
当然,您可以免费试用 CollabNet 的 Subversion Edge。但是,它是一个社区二进制文件,这意味着它不是来自 CollabNet 本身,它被标记为适用于 Mac OS X 10.7。它将自身安装在 /opt 目录中,并包含自己的 Apache 版本以及 Subversion 所需的所有模块。
如果我找到其他任何东西,我会告诉你的。
我决定在短期内使用源代码构建解决方案。我从 subversion.apache.org 下载了 v1.6.18 的源代码并在我的 Mac 上编译,但没有安装它。然后,我深入研究了生成的目录层次结构以找到丢失的 *.so 文件。(它们隐藏在 .lib 目录中。)将它们复制到 /usr/libexec/apache2 并重新启动 httpd 后,我能够通过它的 URL 访问我的 subversion 服务器。
这可能不是“最好的”修复,但它似乎正在工作。
我有同样的问题,未能在 Mountain Lion 上构建颠覆。所以我从 Lion 的 TimeMachine 中获取 mod_dav_svn.so 和 mod_authz_svn.so 并将它们放在当前的 Mountain Lion 上。
据我测试,它工作正常,没有任何问题。这不是完美的解决方案,但是,这将是暂定解决方案的好方法。
我可以确认 OS X Server 10.8 不提供这些 Apache 2 模块。(如果您安装了 10.8 的 Server.app,您可以看到它提供的额外 Apache 2 模块列表:
ls /Applications/Server.app/Contents/ServerRoot/usr/libexec/apache2
您最好的选择是使用第三方提供的版本。我更喜欢 Fink 的 (http://www.finkproject.org/)。一旦你安装了 Fink,你可以将 Fink 的 svn 安装到你服务器上的 /sw 中:
fink install libapache2-mod-svn
然后编辑 Apache 2 的 httpd.conf 以指向 Fink svn 模块。
也许这会有所帮助。这是适用于我升级后的 Mountain Lion 的配置:
https://discussions.apple.com/thread/4181495?start=15&tstart=0
谢谢汤姆·德卡洛