Skip to main content

Ralsina.Me — Roberto Alsina's website

Why no packaging software should replace your config files

When you up­grade a piece of soft­ware on Lin­ux, there are two paths it can go when there are in­com­pat­i­ble changes in the con­fig files (ok, 3 path­s, De­bian asks you what to do):

  1. The "rp­m­new" way: in­­stall the new con­­fig file as "what­ev­er.rp­m­new", which means the soft­­warewill break im­me­di­ate­­ly, but that's ok, be­­cause you are do­ing up­­­grades, so you should be watch­ing al­ready.

  2. The "rp­m­save" way: re­­place the old file and save a copy as "what­ev­er.rp­m­save".

This has two prob­lem­s:

  1. The soft­­ware may fail or not, or fail in a sub­­­tle way, and you will not no­tice right away.

  2. Maybe the old file will be lost any­way:

    lrwxrwxrwx  1 root root 32 jul 15 22:41 /etc/named.conf -> /var/named/chroot/etc/named.conf
    lrwxrwxrwx  1 root root 32 jul 15 22:36 /etc/named.conf.rpmsave -> /var/named/chroot/etc/named.conf

In this case the "file" was a sym­link, so by "sav­ing a copy" it on­ly saved an­oth­er sym­link to the soon-­to-be-over­writ­ten file.

And that's why, ladies and gen­tle­men, the rpm­new way is the good way.

Elbow / 2008-07-17 09:16:

You are right, of course, but after staring at sewage like this for 15 years it has lost it's charm.

Years ago I started looking for something better, so I read through many of the links on this page: when it was current.

Plan 9 seemed like it cleared up a lot of clutter, but it's driver support was nowhere.

Amoeba was also sexy, because Python was written to admin it. But there was no software for it.

The various Erlang runtimes, along with it's Mnesia database seemed cool, but I can't easily do the yoga of not having loops, and having to do recursion for everything.

Now there is a Python API for everything in Linux, but underneath it is still the same twisty little maze of tunnels.

I hate filesystems. They should be abolished, and replaced with tables in a relational database that has a "connect by" clause for cheap hierarchical joins.

Edited By Siteowner

Removed useless profanity (as opposed to useful profanity, which I wouldn't delete).

Elbow / 2008-07-17 09:21:

Deleted for offtopic.

Edited By Siteowner

Contents © 2000-2024 Roberto Alsina