D&C GLug - Home Page

[ Date Index ] [ Thread Index ] [ <= Previous by date / thread ] [ Next by date / thread => ]

Re: [LUG] dpkg

 

On Wed, 16 May 2007 20:09:51 +0100
tom@xxxxxxxxxx wrote:

> When upgrading a package I often get asked if I would like to keep my old
> config or use a developers. Is there a way I can get this again?

It depends what you did.
:-)

You can't get the actual prompt back but you can see how to do the
opposite of what you first chose or confirm what was changed.

If you kept your modified version of the conffile (which is different
to a configuration file), in preference to the maintainer's version,
then the maintainer's version still exists within the .deb. This is the
default.

If you accepted the new version, dpkg will backup your modified version
then call 'unlink' to delete it before installing the version from
the .deb.

Either way, Debian does everything possible to try to retain your
existing settings and failing that, retain a backup of your previous
settings. Naturally, if you fiddle around with multiple versions and
purges, there is only so much a backup can do - this is NOT an
unlimited undo situation.

So in the classic dpkg output:
What would you like to do about it ?  Your options are:
              "    Y or I  : install the package maintainer's version\n"
              "    N or O  : keep your currently-installed version\n"
              "      D     : show the differences between the versions\n"
              "      Z     : background this process to examine the situation\n"));

(yes, this is cribbed from the dpkg C source)

D and Z keep the rest of the installation pending until you answer with
Y/I or N/O - that is, D and Z are modal.

Answering Y/I turns your modified file into a $file.old file in the
same location as the maintainer's version of the conffile.

Answering N/O puts a $file.dist file in the same location as your
unchanged conffile.

> dpkg-reconfig and apt-get install --reinstall don't do the trick...

You should therefore be able to get a view of what happened by using an
appropriate diff command. (Note that .dist files may well be readable
only by root.) Sometimes, you'll get a .dpkg file too.

ls /etc/$file TAB TAB
will usually show you the various files. TAB=tab key, not 'T''A''B'.
;-)

e.g. sudo diff -u /etc/emsource.conf /etc/emsource.conf.ucf-dist

This illustrates another complication, sometimes, packages need to
define a conffile outside of what dpkg normally supports. The 'ucf'
package then handles these files, modifying the backup suffix as above.

When you remove a package, all these files are left behind so that a
reinstall picks up where you left off. The files are only removed when
you purge the package with apt-get remove --purge or dpkg -P.

--


Neil Williams
=============
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/

Attachment: pgpfjepa1CoI7.pgp
Description: PGP signature

-- 
The Mailing List for the Devon & Cornwall LUG
http://mailman.dclug.org.uk/listinfo/list
FAQ: http://www.dcglug.org.uk/linux_adm/list-faq.html