问题描述
我正在尝试将C的Subversion从1.7降级到1.6,执行sudo apt-get install subversion=1.6.17dfsg-3ubuntu3
。这似乎不起作用。
在不中断安装一半的情况下如何执行此操作的任何想法?
最佳思路
您可以尝试将/etc/apt/sources.list
中的所有条目更改为精确,像这样
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。
次佳思路
如果您安装了Synaptic软件包管理器,则可以将force-downgrade转换为较旧的版本。只需在Synaptic中查找Subversion,右键单击“属性”,转到“版本”选项卡,然后检查可用的版本。
如果幸运的话,您会找到1.7版本(以我的情况为1.7.5)和1.6版本(1.6.17)。关闭“属性”窗口,从列表中选择Subversion,然后转到Package->强制版本菜单项,然后选择所需的版本。
如果一切顺利,您只需要担心Ubuntu将软件更新到最新版本即可。为了坚持使用1.6版本,您可以锁定此更新:Package->锁定版本。瞧,您又回到了旧的1.6版本:)
第三种思路
通过从http://packages.ubuntu.com手动下载12.04 svn和依赖包,我已成功降级到1.6。我首先卸载了1.7版。然后,我按照列出的顺序安装了Ubuntu 12.04软件包。
-
libdb4.8_4.8.30-11ubuntu1_amd64.deb
-
libsvn1_1.6.17dfsg-3ubuntu3_amd64.deb
-
subversion_1.6.17dfsg-3ubuntu3_amd64.deb
-
subversion-tools_1.6.17dfsg-3ubuntu3_all.deb其他解决方案对我不起作用。
第四种思路
在其他帖子的帮助下,我想我想出了一种使用Synaptic固定它的更简单方法(因此请首先确保已安装)。
-
将以下行追加到
/etc/apt/sources.list
:deb http://us.archive.ubuntu.com/ubuntu precise main
这将确保您至少有两个版本可供选择,即1.7和1.6。
-
跑
sudo apt-get update
-
转到程序包管理器,搜索
subversion
并选择它。 -
从菜单中选择包-> force-version选择1.6或右键单击->属性->版本选择1.6。
-
安装套件
-
再次选择软件包,然后选择菜单->锁定版本。这是为了防止自动更新到更高版本。
就是这个。祝好运。
回忆:这使用以前的答案提供了一种更简单直接的方法。
第五种思路
svn 1.7客户端与svn 1.6服务器完全兼容。
你只需要做
$ svn updgrade working_dir1 working_dir2 ...
与往常一样,升级保留本地修改。参见svn help upgrade