You just made upgrade of your Debian testing box and noticed something went wrong, some daemon not starting and you have no idea what to do until the bug will be fixed. Fortunately, you are able to revert broken package in Debian. Here we are going revert broken
bind9 package version
1:9.8.1.dfsg.P1-2 and replace it with last known to work.
- We need to find last known to work version of the broken package. Take a look at
/var/log/apt/history.log. You should be able to find information about the package failed to install/configure:
Upgrade: ..., bind9:i386 (9.7.3.dfsg-1+b1,
9.8.1.dfsg.P1-2)...
So here version 9.7.3.dfsg-1+b1 is replaced by 9.8.1.dfsg.P1-2. Thus we found last working version.
- Since we know version (9.7.3.dfsg-1+b1) of the bind9 package we can install it from snapshot.debian.org. Go to that site and search for your package. You will get a list of various versions available.
Follow link for with version that you found previously. You will get a list of various options, including source, architecture specific files, etc.
bind9_9.7.3.dfsg-1+b1_i386.deb
Seen in debian on 2011-04-20 22:16:02 in
/pool/main/b/bind9.
Follow link /pool/main/b/bind9. In my case it was:
http://snapshot.debian.org/archive/debian/20110420T221602Z/pool/main/b/bind9/
- Add snapshot url to file /etc/apt/sources.list:
deb http://snapshot.debian.org/archive/debian/20110420T221602Z testing main
- Update your apt repository with the following command:
apt-get -o Acquire::Check-Valid-Until=false update
- Have a look at updated package information:
apt-cache showpkg bind9
You should be able to see something like this:
Versions:
1:9.8.1.dfsg.P1-2 ...
1:9.7.3.dfsg-1 ...
1:9.7.3.dfsg-1 is the version we need.
- Remove broken package and related dependencies:
apt-get remove bind9
apt-get autoremove
- Install version we need:
apt-get install bind9=1:9.7.3.dfsg-1
Since it complains:
The following packages have unmet dependencies:
bind9 : Depends: bind9utils (= 1:9.7.3.dfsg-1) but 1:9.8.1.dfsg.P1-2 is to be installed
... let add that one dependency for bind9utils as well.
apt-get install bind9=1:9.7.3.dfsg-1 bind9utils=1:9.7.3.dfsg-1
At this point you have reverted broken bind9 package to last known to be working.
Package pinning
We will use apt pinning feature to prevent packages from being upgraded. Just create a file
/etc/apt/preferences.d/bind9 and add the following:
Package: bind9
Pin: version 1:9.7.3*
Pin-Priority: 1001
Package: bind9utils
Pin: version 1:9.7.3*
Pin-Priority: 1001
The next time you run upgrade these two packages remain untouched.
No comments :
Post a Comment