Is there a way to replace /etc configuration files from a package, overwriting my local changes? I've tried apt-get install --reinstall mypackage but it doesn't update the files.

How can I do this?

up vote 28 down vote accepted

A related serverfault question describes how to restore package conffiles if you've removed them, and requires that you track down the actual .deb file.

All you need to do:

  • Find the list of conffiles provided by the package:

    dpkg --status <package>
    

    (look under the Conffiles: section).

  • Remove those conffiles yourself.

  • Reinstall the package. If you've found the .deb file,

    dpkg -i --force-confmiss <package_deb>.deb
    

    Alternatively, passing the dpkg option via apt should work:

    apt-get install --reinstall -o Dpkg::Options::="--force-confmiss" <package>
    
  • Nice, thanks. What if you don't know in particular which package provides a file? – Naftuli Kay Dec 27 '11 at 19:33
  • 7
    dpkg -S /file/to/search give you the package name – Dom Dec 27 '11 at 19:51

Besides remove apt-get also offers the purge command which cleans out your config customizations, which can then be followed by an apt-get install

  • 1
    purge certainly works for many packages but not the essential ones that you can't remove without seriously breaking things. – jw013 Dec 28 '11 at 1:06
apt-get install -o Dpkg::Options::="--force-confnew" packagename

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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