在Ubuntu 12.04上,安装Subversion官网安装 SVN 后,链接svn地址时,可能会出现错误提示如下:
OPTIONS of ‘<url>’: SSL handshake failed: SSL error: Key usage violation in certificate has been detected. (<url>)
这个问题的根本原因是 Ubuntu 包libneon-gnutls 的链接 处理 证书时会比libneon 更严格,导致验证通不过,就出现了上面的错误提示。一种最简单的方式就是将libneon-gnutls的链接直接指向libneon。对应得 命令是:
- sudo mv /usr/lib/libneon-gnutls.so.27 /usr/lib/libneon-gnutls.so.27.old
- sudo ln -s /usr/lib/libneon.so.27 /usr/lib/libneon-gnutls.so.27
sudo mv /usr/lib/libneon-gnutls.so.27 /usr/lib/libneon-gnutls.so.27.old sudo ln -s /usr/lib/libneon.so.27 /usr/lib/libneon-gnutls.so.27
但是,麻烦的是在 Ubuntu12.04 下,又会出现另一个错误提示:
OPTIONS of <url>’: SSL handshake failed: SSL disabled due to library version mismatch (<url>)
那是因为Ubuntu12.04 与 libneon 之间的 bug引起的。
具体的解决方法如下:
- 卸载 libneon 包
sudo apt-get remove libneon27
- 安装需要的 libssl 依赖。
sudo apt-get install libssl0.9.8
- http://packages.debian.org/squeeze/libneon27 的页面底部有最新的 libneon 包,下载系统对应的安装包,然后用命令安装。
dpkg -i libneon27_0.29.3-3_amd64.deb
- 最后改变链接,命令如下:
sudo mv /usr/lib/libneon-gnutls.so.27 /usr/lib/libneon-gnutls.so.27.old
sudo ln -s /usr/lib/libneon.so.27 /usr/lib/libneon-gnutls.so.27 - 注销用户后就OK了。
更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2