Subversion 1.7 在 12.04 上精确:libsasl 错误,从源代码编译?

Subversion 1.7 在 12.04 上精确:libsasl 错误,从源代码编译?

背景:我是 Gentoo 的老用户,这是我第一次使用 Ubuntu(安装在虚拟机上,以避免从头开始编译所有内容)。我熟悉 Linux 环境,但对 Ubuntu 有点陌生。

我正在尝试在 Ubuntu 上安装 Subversion 1.7,并看到了以下帖子: 在哪里可以找到 Subversion 1.7 二进制文件?

上面的帖子建议使用 PPA ppa:dominik-stadler/subversion-1.7。 我也从另一个链接找到了 PPA ppa:svn/ppa。 它们都给我带来了问题。

问题是使用远程服务器的任何 svn 操作都会导致以下错误:

svn: E170001: Unable to connect to a repository at URL 'svn+ssh://my_repo'
svn: E170001: Could not create SASL context: generic failure: No such file or directory

这似乎是由于最近涉及 SVN 对 libsasl 库的依赖的一个错误引起的,正如 Debian 用户在此处记录的那样: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=683555

以及这里的 Mac 用户: https://trac.macports.org/ticket/34861

解决方案似乎涉及将 cyrus-sasl 或 libsasl 库更新为较新版本(这两个库都不在最新的 apt 包中),或者编译不支持 SASL 的 subversion。作为 Gentoo 用户,我开始研究如何从源代码编译 svn,但在 Ubuntu 上它看起来比我习惯的要复杂得多,而且我不确定规范方法是什么。我的问题:

  • 有没有明显的办法可以解决我忽略的这个问题?
  • 有没有办法将 SVN 的依赖项更新为可以通过使用 synaptic 或 apt-get 运行的东西?
  • 如果我想从头开始编译,如何使用 PPA 中的源代码而不是下载我自己的源副本(即 PPA 同时具有二进制文件和源代码?)

编辑:这似乎是由于SASL 中的这个错误

我更改了/etc/hostname但未更新/etc/hosts,这导致了错误。修复/etc/hosts让我暂时可以绕过错误,而不必从头编译 SVN 或查找 cyrus-sasl2 的修补版本。

答案1

这是一个错误。希望任何“明显的修复”都能立即添加到 PPA 中。我看到的一个解决方法(来自您的一个链接)是只用标志来配置它,--without-sasl但您需要为此弄乱构建脚本。

这是从 repo 源构建软件包的标准方法。如果您的 PPA 有源,它将使用该源。您很快就会知道它是否有效,因为目录将是 subversion-1.7...

这也获得了依赖项(通过build-dep)。

sudo apt-get build-dep subversion
apt-get source subversion
cd subversion*
dpkg-buildpackage -us -uc -nc
dpkg -i ../subversion*.deb

编辑:刚刚看到 macports 链接的末尾。看起来 libsasl 中有一个修复程序。为此找到一个单独的 PPA,或者构建它,这样可能就没问题了。

答案2

如上所述,这发生在重命名主机名(克隆的虚拟机)之后。在 Ubuntu/Debian 上使用 subversion 1.7.7-1 的解决方案 - 执行以下操作:

dpkg-reconfigure libsasl2-2
dpkg-reconfigure libsasl2-modules

相关内容