如何降级到Subversion 1.6版本?

我正在尝试将Subversion从1.7降级到1.6,使用命令sudo apt-get install subversion=1.6.17dfsg-3ubuntu3。但似乎这并不起作用。
有没有什么方法可以做到这一点,而不会破坏大部分的安装呢?
7个回答

你可以尝试将 /etc/apt/sources.list 中的所有条目更改为 precise,就像这样

deb http://extras.ubuntu.com/ubuntu precise main
deb http://us.archive.ubuntu.com/ubuntu/ precise main universe restricted multiverse

然后运行:
sudo apt-get remove subversion
sudo apt-get update
sudo apt-get install subversion

如果你成功安装了Subversion 1.6,那么你需要恢复你的sources.list,并将Subversion锁定在1.6版本上,运行命令echo subversion hold | sudo dpkg --set-selections
这种类型的安装并不是高度推荐的,但有时候它是最简单的选择。如果遇到各种疯狂的冲突,那么你最好的选择就是切换回Ubuntu 12.04。

1工作得很好!非常感谢,我想留在12.10。 - LFAY
1我没有改变条目,只是添加了建议的条目,这样我就可以在Synaptic中选择需要安装的版本。之后,我将其锁定。 - Fedir RYKHTIK

如果您已经安装了Synaptic软件包管理器,您可以将Subversion强制降级到旧版本。只需在Synaptic中查找Subversion,右键单击属性,转到版本选项卡,并检查可用的版本。
如果幸运的话,您会发现1.7版本(我这里是1.7.5)和1.6版本(1.6.17)。关闭属性窗口,从列表中选择Subversion,转到“软件包”->“强制版本”菜单项,并选择所需的版本。
如果一切顺利,您只需要担心Ubuntu更新您的软件到最新版本。为了保持1.6版本,您可以锁定此更新:软件包->锁定版本。然后,您就回到了可靠的1.6版本 :)

1非常好的回答,Florin。欢迎来到Ask Ubuntu!继续保持!:D - Mochan
在属性中,我只看到了一个1.7版本,并且“强制版本”菜单是灰色的。是什么决定了可用的版本? - Quantum7
@Quantum7 在我的情况下也是一样的。我应该怎么做才能使其他版本可用? - Gtx
在 Ubuntu 13.10 上,我也无法使用 Synaptic Package Manager 0.80.2 和 subversion 1.7.9-1。 - malisokan

我通过手动从http://packages.ubuntu.com下载12.04 svn和依赖包,成功降级到了1.6版本。首先卸载了1.7版本,然后按照列出的顺序安装了Ubuntu 12.04的包。

  1. libdb4.8_4.8.30-11ubuntu1_amd64.deb

  2. libsvn1_1.6.17dfsg-3ubuntu3_amd64.deb

  3. subversion_1.6.17dfsg-3ubuntu3_amd64.deb

  4. subversion-tools_1.6.17dfsg-3ubuntu3_all.deb

    其他解决方案对我来说都不起作用。


非常感谢您,对于我的Linux Mint 14 Nadia在amd64上的安装来说,这是最好的解决方案。 - Fedir RYKHTIK
对于Subclipse,您应该下载:libsvn-java_1.6.17dfsg-3ubuntu3_amd64.deb。 - Fedir RYKHTIK

借助其他贴子的帮助,我想我找到了一个更简单的方法来使用Synaptic来解决它(所以首先确保已安装)。
  1. 将以下行添加到/etc/apt/sources.list文件中:

    deb http://us.archive.ubuntu.com/ubuntu precise main
    

    这将确保您至少有两个版本可供选择,即1.7和1.6。

  2. 运行以下命令:

    sudo apt-get update
    
  3. 打开软件包管理器,搜索subversion并选择它。

  4. 从菜单中选择选择软件包 -> 强制版本,然后选择1.6或者右键点击 -> 属性 -> 版本选择1.6

  5. 安装该软件包。

  6. 再次选择软件包,然后选择菜单 -> 锁定版本

    这是为了防止自动更新到更高的版本。

这就是它。祝你好运。

回想一下:这使用之前的答案来提供更简单直接的方法。


svn 1.7客户端完全兼容svn 1.6服务器。
你只需要执行下列操作:
$ svn updgrade working_dir1 working_dir2 ...

工作一如既往,升级会保留本地修改。请参阅svn help upgrade

2问题在于当多个客户端版本与相同的工作目录一起使用时。例如,当前的svnkit软件包(1.3.5)与svn 1.6兼容,因此我所有的Eclipse工作空间都需要一个1.6客户端来进行更新。 - Quantum7

deb http://us.archive.ubuntu.com/ubuntu precise main 添加到你的 /etc/apt/sources.list 中。
通过 apt-get remove libsvn1 subversion 移除当前的 SVN。
如果需要,可以通过 dpkg --purge libsvn1 subversion 清除文件。
执行 apt-get updateapt-get -t precise install libsvn1 subversion
你可能想先使用 apt-get -t precise -s install libsvn1 subversion 来测试你的安装。

这几乎和答案1一样。能否详细说明一下增加的价值呢? - aquaherd
没问题。在答案#1中,Subversion的依赖关系不会被删除,因此在安装时会出现依赖错误。我已经尝试过了,这就是为什么我发布了解释。希望能对您有所帮助。 - Andrei

通常我在Ubuntu 18.04上进行以下操作,在这种情况下安装Subversion 1.6.17,因为它支持“format 10”提交模式。因此,对于Ubuntu,我从Ubuntu 12.04的amd64精确石榴版本下载了二进制文件。
https://ubuntu.pkgs.org/12.04/ubuntu-main-amd64/libdb5.1_5.1.25-11build1_amd64.deb.html
https://ubuntu.pkgs.org/12.04/ubuntu-main-amd64/libaprutil1_1.3.12+dfsg-3_amd64.deb.html
https://ubuntu.pkgs.org/12.04/ubuntu-main-amd64/libapr1_1.4.6-1_amd64.deb.html
https://ubuntu.pkgs.org/12.04/ubuntu-main-amd64/libsvn1_1.6.17dfsg-3ubuntu3_amd64.deb.html
https://ubuntu.pkgs.org/12.04/ubuntu-main-amd64/subversion_1.6.17dfsg-3ubuntu3_amd64.deb.html

然后在下载目录中使用以下命令在命令行中执行:
sudo apt-get remove subversion
sudo dpkg -i libdb5.1_5.1.25-11build1_amd64.deb
sudo dpkg -i libaprutil1_1.3.12+dfsg-3_amd64.deb
sudo dpkg -i libapr1_1.4.6-1_amd64.deb
sudo dpkg -i libsvn1_1.6.17dfsg-3ubuntu3_amd64.deb
sudo dpkg -i subversion_1.6.17dfsg-3ubuntu3_amd64.deb
sudo apt-cache policy subversion

所以第一个命令确保没有破坏和依赖关系,最后一个命令帮助查看从该软件包安装了什么。内部命令安装每个下载的软件包,如果有任何不同或缺失,系统会提示您。如果有任何疑问,您可以使用我建议的下载网站来查找依赖项并了解软件包的其他详细信息。