首先,下载并解压最新版的Subversion源文件。
然后,覆盖安装系统自带的1.4.x版本的Subversion
% cd subversion-1.x.x#运行autogen检测依赖是否缺失% ./autogen.sh#设置安装路径,覆盖系统自带的旧版本% ./configure --prefix=/usr% sudo make% sudo make install
安装完成后查看安装是否成功
% which svn% svn --version
配置svnserve随系统启动
自从Mac OS X 10.4 Tiger开始,Apple引入了全新的启动程序launchd来统一取代传统的UNIX启动程序。
以Daemon(守护进程)方式启动svnserve
svnserve还可以使用inetd守护进程来代理启动和访问
这样对于不频繁的操作更为节省系统资源
文件内容如下:
编写plist文件需要注意:
因此需要在/Library/LaunchDaemons目录下编写一个plist文件
% cd /Library/LaunchDaemons
% sodo vim com.svn.svnserve.plist
文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.svn.svnserve</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/svnserve</string>
<string>--daemon</string>
<string>--root=/repository/</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
装载这个启动项目,下次启动就会有效
% sudo launchctl load com.svn.svnserve.plist
也可以手动启动,以Label定义的名字启动
% sudo launchctl start com.svn.svnserve
svnserve还可以使用inetd守护进程来代理启动和访问
这样对于不频繁的操作更为节省系统资源
文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.svn.svnserve</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/svnserve</string>
<string>--inetd</string>
<string>--root=/repository/</string>
</array>
<key>inetdCompatibility</key>
<dict>
<key>Wait</key>
<false/>
</dict>
<key>Sockets</key>
<dict>
<key>Listeners</key>
<dict>
<key>SockServiceName</key>
<string>svn</string>
</dict>
</dict>
<!--<key>WorkingDirectory</key>
<string>/usr/bin</string>-->
</dict>
</plist>
编写plist文件需要注意:
- 被执行的程序尽量使用全路径,否则的话需要指定WorkingDirectory选项
不使用全路径而造成招不到svnserve时,svn checkout 执行后会产生如下错误svn 畸形的网络数据
svn: Malformed network data