(如果看不到图请点击标题进入)

类别标签: NTLM | subclipse | subversion | ubuntu

一开始使用 subclipse (Eclipse 的 Subversion 插件)不能通过 NTLM 认证访问 SVN 服务器, 始终报告如下图所示的错误(svn: HTTP authorization method 'NTLM' is not supported):

今天再看了一下, 在 Eclipse Perferences 中的 SVN 设置中发现不能选择使用 "JavaHL" 作为 SVN 接口(报告的错误是在 java.library.path 中找不到 libsvnjavahl-1.so), 心想不知道使用 JavaHL 是否可以解决 NTLM 认证的这个问题, 应该尝试一下, 上网查了查, 从 http://packages.ubuntulinux.org/dapper/devel/libsvn-javahl 找到了 libsvn-javahl 的下载 deb 包 libsvn-javahl_1.3.1-3ubuntu1_i386.deb, 下载完毕后使用
  sudo dpkg -i libsvn-javahl_1.3.1-3ubuntu1_i386.deb
进行安装, 却被告知依赖的 libsvn0 还没有被安装, 直接用 apt-get install libsvn0 安装后再次使用 dpkg -i 安装下载的 libsvn-javahl_1.3.1-3ubuntu1_i386.deb, 却被告知 libsvn0 版本不对:
xxx@xxxlinux:~/Desktop$ sudo dpkg -i libsvn-javahl_1.3.1-3ubuntu1_i386.deb
选中了曾被取消选择的软件包 libsvn-javahl。
(正在读取数据库 ... 系统当前总共安装有 60192 个文件和目录。)
正在解压缩 libsvn-javahl (从 libsvn-javahl_1.3.1-3ubuntu1_i386.deb) ...
dpkg:依赖关系问题使得 libsvn-javahl 的配置工作不能继续:
libsvn-javahl 依赖于 libsvn0 (= 1.3.1-3ubuntu1);然而:
系统里的 libsvn0 的版本是 1.2.0-1ubuntu1.
dpkg:处理 libsvn-javahl (--install)时出错:
依赖关系问题 - 仍未被配置
在处理时有错误发生:
libsvn-javahl
于是又从 http://packages.ubuntulinux.org/dapper/devel/libsvn-javahl 页面上找到 libsvn-javahl 的依赖库 libsvn0 (= 1.3.1-3ubuntu1) 的 deb 文件, 然后安装时又被告知依赖于其它的模块(未安装或者版本不对), 于是继续使用 apt-get install 安装这些模块, 或者继续在 http://packages.ubuntulinux.org/dapper/devel/ 下面各个依赖模块的页面上找到这些下一层的依赖模块的 deb 安装包, 如此循环往复, 花了不少时间, 总算把 JavaHL 安装好了.

然后进入 $JAVA_HOME/jre/lib/i386/client/ 目录, 执行:
  sudo ln -s /usr/lib/jni/libsvnjavahl-1.so libsvnjavahl-1.so
然后再启动 Eclipse, 进入 SVN 的设置页面, 果然现在可以选择 "JavaHL (JNI)" 方式了:
连接到 SVN 服务器测试, 果然现在能够正确弹出输入用户名和密码的对话框了:


终于解决了这个问题, 现在可以将大部分工作都转移到 Ubuntu 上面来啦 :)