26

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

40

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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .