How should I deal with pacnew? - eviltoast

cross-posted from: https://lemmy.kde.social/post/198018

Hello! EOS user here. I upgrade my system with topgrade, and sometimes it tells me about some pacnew files, asking if merging, replacing or removing the original ones. I snapshotted my system and tried replacing my original files (an eos-something file, where the new file changed a bunch of mirrors, and /etc/shells, where it replaced sh and bash with git-shell and zsh. After the reboot, I was unable to boot into my user account (“wrong password” but it was the correct password). I had to boot as root and restore the snapshot. I then removed that evil pacnew file.

Now my question is, how should I deal with these pacnew files? should I always remove them, always replace them, always read them and decide? I’d rather not read these things everyday, it’s a bit boring, so I hope there’s a better solution. How do you deal with these?

  • nous@programming.dev
    link
    fedilink
    English
    arrow-up
    7
    ·
    1 year ago

    pacnew files are created when the package has changed it, but so have you. So you would replace it only if you don’t care about the changes you have locally. Otherwise you likely want to diff them and manually merge in any new changes to the config. Generally speaking most should not make your system unbootable, but I would look more closely at any core system files and see what the changes are rather then just blindly accepting them. Even if you do that for less critical packages.

      • Zenzio@kbin.social
        link
        fedilink
        arrow-up
        8
        ·
        1 year ago

        It might be that your distribution of choice has slightly different defaults in the files compared to regular Archlinux.
        Either way you’ll want to have a look at either Meld (graphical) or something like pacdiff (terminal). With these you can easily see the differences between your old file and the new .pacnew.

        The new default is not always better. One example: Whenever Archlinux creates a new /etc/makepkg.conf.pacnew I don’t simply overwrite the old file. The new default would comment out the line which defines how many CPU threads I want to use to build packages and reduce it to one thread (I assume).
        You really don’t have to understand every line in every file. Most often it’s quite easy to determine whether you want the new changes or not. Just always have a quick look at what is different. You don’t want to replace old files mindlessly.