I'm trying to track a bug in svn. I need to be able to switch between svn 1.7.x and 1.8.x to try tests. I am using WANdisco's packages.


Ubuntu 12.10 \n \l


# WANdisco Open Source Repo
deb http://opensource.wandisco.com/ubuntu precise svn18
deb http://opensource.wandisco.com/ubuntu precise svn17

I realise I am running Quantal but Precise is listed. This Works For Me (tm) as WANdisco doesn't have Quantal-specific packages.

When I have subversion=1.7.14-1+WANdisco installed I can

sudo apt-get install subversion
sudo apt-get install subversion=1.8.5-1+WANdisco

and either brings me up to subversion 1.8.5-1+WANdisco no problem.

Going in the other direction is a major operation. After much trial and error, here's what I've discovered/concluded is a minimal working method for me:

sudo apt-get autoremove subversion
sudo apt-get clean
sudo vim /etc/apt/sources.list.d/WANdisco.list
# deb http://opensource.wandisco.com/ubuntu precise svn18
sudo apt-get install subversion

As I understand this, I have to completely remove svn 1.8.5 and its dependencies (libsvn1), remove the svn 1.8.5 cached packages AND remove apt-get's knowledge that svn 1.8.x is even available. Only then will it deign to install 1.7.14.

My question is, when 1.8.5 is installed, why doesn't this

sudo apt-get install subversion=1.7.14-1+WANdisco

work? What I get is

user@user-VirtualBox:/etc/apt/sources.list.d$ sudo apt-get install subversion=1.7.14-1+WANdisco
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 subversion : Depends: libsvn1 (= 1.7.14-1+WANdisco) but 1.8.5-1+WANdisco is to be installed
E: Unable to correct problems, you have held broken packages.

I get the "is to be installed" unless I follow exactly all three steps above: autoremove, clean, comment out the package line.

I noticed that WANdisco's install script creates sources.list.d/WANdisco-svn1[78] so I tried using the two files instead of the one; the thinking being that perhaps line ordering in WANdisco.list was creating a priority order. That failed to downgrade in the same way. It seems that if apt-get has any knowledge that 1.8.5 exists, it will prefer that over 1.7.14.

If there's an easier way, I'd really like to know.


You have to tell apt-get to downgrade all the dependencies along:

sudo apt-get install subversion=1.7.14-1+WANdisco libsvn1=1.7.14-1+WANdisco

otherwise apt won't downgrade them. For these operations I prefer aptitude, since it allows me to resolve things manually.

  • I saw that people use aptitude but it wasn't installed on Quantal by default. And since apt should really handle this, I didn't want to install another tool. Your command does work for me. Thanks. Apparently I can't upvote (posting as guest) but I can accept. This really implies that apt has broken dependency handling though: it will satisfy dependencies when upgrading and but not when downgrading. [And enter posts instead of newlining, and newlines are discarded. Whee.] – studog Dec 19 '13 at 20:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.