25

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?

1

3 Answers 3

38

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>
    
2
  • Nice, thanks. What if you don't know in particular which package provides a file? Dec 27, 2011 at 19:33
  • 10
    dpkg -S /file/to/search give you the package name
    – Dom
    Dec 27, 2011 at 19:51
6

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
  • 1
    purge certainly works for many packages but not the essential ones that you can't remove without seriously breaking things.
    – jw013
    Dec 28, 2011 at 1:06
2
apt-get install -o Dpkg::Options::="--force-confnew" packagename
2
  • 1
    Didn't work for me on raspberry pi os at least Oct 14, 2021 at 22:55
  • Newer ones need DPKG_FORCE=confmiss apt-get install --reinstall packagename . Aug 8, 2022 at 19:59

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.