我一直在尝试将 SVN 服务器从版本 1.8.8 升级到版本 1.14.0。请参阅本说明的底部,了解我具体遵循的过程。执行该过程后,我已完成并确保使用安装中提供的新二进制文件覆盖二进制文件,如 Apache Subversion 网站上的发行说明所述。
当我在客户端上访问 SVN 网页时,我仍然看到版本 1.8.8: 存储库集合,由 Apache Subversion 1.8.8 提供支持
我检查了所有 CLI 客户端的版本:(svn --version 返回 1.14,svnserve --version 返回 1.14,等等)
显然,我认为的工作原理和实际工作原理之间存在脱节。我无论如何也搞不清楚“1.8.8”版本从何而来,或者如何修复它。
主要问题发生在我需要创建一个新的存储库时,我会写入“svnadmin create /repo/path repo_name”,当我浏览到新的存储库时,我会得到以下信息:无法打开请求的 SVN 文件系统。我目前可以通过执行 svnadmin create /repo/path --compatible-version 1.8 来解决此问题,但是,这似乎确实是一种不必要的解决方法。
有人知道 Apache 1.8 版从哪里来的吗?另外,作为附加问题,您能告诉我如何将其升级到与工具集相同的版本吗?
安装最新版本的 Subversion 和工具的步骤如下:
sudo rm -f /usr/local/lib/libsvn*
sudo rm -f /usr/local/lib/libapr*
sudo rm -f /usr/local/lib/libserf*
sudo apt-get install libssl-dev
sudo apt-get install build-essential
sudo apt-get install scons
sudo apt-get install autoconf
sudo apt-get install libtool
wget https://mirrors.sonic.net/apache/subversion/subversion-1.14.0.tar.gz
./get-deps.sh
cd apr
./configure --prefix=/usr
make
sudo make install
cd apr-util
./configure --prefix=/usr --with-apr=/usr
make
sudo make install
cd zlib
./configure --prefix=/usr
make
sudo make install
cd serf
// Here, I fixed test/test_buckets.c line 1237, which uses // instead of /**/
scons OPENSSL=/usr/lib/x86_64-linux-gnu PREFIX=/usr
scons check
sudo scons install
cd ../
wget https://www.sqlite.org/2015/sqlite-amalgamation-3081101.zip
unzip sqlite-amalgamation-3081101.zip
mv sqlite-amalgamation-3081101 sqlite-amalgamation
./configure --with-serf=/usr --with-lz4=internal --with-utf8proc=internal
make
make check
sudo make install
sudo make install-tools
<manually replaced all binaries with new ones, since they installed in a different location>
sudo reboot
此时,想知道这是否与 mod_dav_svn 插件有关
答案1
./configure --with-lz4=internal --with-utf8proc=internal–with-apache-libexecdir=/usr/lib/apache2/modules–bindir=/usr/bin –libdir=/usr/lib--with-apxs=/usr/bin/apxs--with-serf=/usr
当构建 subversion 时,我修改了上面的配置行,以生成 mod_dav_svn.so