How to install the previous version of a .deb package and pin it?
You can tell apt-get
to install a specific version of a package. For your example:
apt-get install subversion
you would append the version to the package name, e.g.,
apt-get install subversion=1.9.2-1
To find a package version, the Debian wiki page RollbackUpdate shows an example where that information is found in
http://www.debian.org/distrib/packages, i.e.,
https://www.debian.org/distrib/packages#search_packages
or (older versions) via
http://snapshot.debian.org/
http://snapshot.debian.org/package/subversion/
shows
http://snapshot.debian.org/package/subversion/1.9.2-2/
http://snapshot.debian.org/package/subversion/1.9.2-1/
http://snapshot.debian.org/package/subversion/1.9.1-1/
and so forth.
Finally, the Debian page shows (for its example) the change to make to /etc/apt/preferences
to pin the package.
This is the eventual solution to the problem. The important thing is that the URL for the repository in the sources.list should be the full one containing the repo for the required package, in this case http://snapshot.debian.org/archive/debian/20150924T154447Z/. There is a good write up at http://mindref.blogspot.co.uk/2012/02/apt-revert-upgrade.html and also explained in a related question - What is the proper syntax for pinning a debian package to a repository and a version?
/etc/apt/sources.list.d/snapshots.list
# snapshot.debian.org
# added for subversion 1.9.2 subversion bug #803725
deb http://snapshot.debian.org/archive/debian/20150924T154447Z/ unstable main
/etc/apt/preferences.d/subversion
Package: subversion libsvn1
Pin: version 1.9.2-1
Pin-Priority: 700
apt-cache policy subversion
subversion:
Installed: 1.9.2-1
Candidate: 1.9.2-1
Package pin: 1.9.2-1
Version table:
1.9.2-3+b1 700
500 http://http.debian.net/debian/ unstable/main amd64 Packages
*** 1.9.2-1 700
500 http://snapshot.debian.org/archive/debian/20150924T154447Z/ unstable/main amd64 Packages
100 /var/lib/dpkg/status