N: Ignoring file '50unattended-upgrades.ucf-dist' in directory '/etc/apt/apt.conf.d/' as it has an invalid filename extension

138,734

Solution 1

See this explanation of the origin and purpose of .ucf-dist files. This means you can either ignore the notice (that's what the N: prefix stands for) or remove said file.

Before you remove the file, make sure it doesn't contain any packages you might still need. Compare it to the one that is currently active on your system:

diff /etc/apt/apt.conf.d/50unattended-upgrades.ucf-old /etc/apt/apt.conf.d/50unattended-upgrades

If you are sure you don't need anything any more, you can ignore this file or remove it. To remove the file run:

sudo rm /etc/apt/apt.conf.d/50unattended-upgrades.ucf-dist

Solution 2

This also happened to me when I upgraded from 14.04 to 16.04, during upgrade installation I was prompted to choose between the original (modified by me) 50unattended-upgrades file or the original one contained in the package update, I of course chose to keep the former.

After installation the uncalled for file 50unattended-upgrades.ucf-dist was present in my system, after I took a quick glance to check if there was any significant change with the old version of the file, it was plain obvious there wasn't any difference, so I simply deleted it.

Bottom line, you can just get rid of it if you're happy with your current version of 50unattended-upgrades.

Share:
138,734
Gerorge Timber
Author by

Gerorge Timber

IT Engineer who loves to Hack. A Part-Time Bug Bounty hunter in OpenSource Programs as Wordpress, Joomla etc and Companies. Malware Analysis (Dynamic & Memory forensics) and Reverse Engineering is my favorite hobby. A frequent CTF Player :) Pythonista forever ! "If you don't hack yourself, someone will Hack yours!"

Updated on September 18, 2022

Comments

  • Gerorge Timber
    Gerorge Timber over 1 year

    Yesterday I upgraded distro and today when I am using apt-get to install anything or to update, I get an error:

    N: Ignoring file '50unattended-upgrades.ucf-dist' in directory '/etc/apt/apt.conf.d/' as it has an invalid filename extension
    

    As far as I know, this error occurs when some new configs/settings are mixed with the old ones. So I tried to debug it by moving to the folder ls -l /etc/apt/apt.conf.d/

    total 52
    -rw-r--r-- 1 root root   82 May 19 07:59 00CDMountPoint
    -rw-r--r-- 1 root root   40 May 19 07:59 00trustcdrom
    -rw-r--r-- 1 root root  769 Sep  2 23:56 01autoremove
    -r--r--r-- 1 root root 1936 Sep 25 11:56 01autoremove-kernels
    -rw-r--r-- 1 root root  628 Jan  4  2015 01autoremove-postgresql
    -rw-r--r-- 1 root root  202 Sep 13 02:17 20listchanges
    -rw-r--r-- 1 root root 1040 Dec  9  2014 20packagekit
    -rw-r--r-- 1 root root 1438 Sep 16 16:46 50appstream
    -rw-r--r-- 1 root root 3945 Jun 29  2015 50unattended-upgrades
    -rw-r--r-- 1 root root 4072 Sep 24 19:57 50unattended-upgrades.ucf-dist
    -rw-r--r-- 1 root root  182 Mar 19  2015 70debconf
    -rw-r--r-- 1 root root  142 Oct  6  2014 80debtags
    

    Looks like the file 50unattended-upgrades.ucf-dist is present. Now my question is if I use rm 50unattended-upgrades.ucf-dist then would it cause any fatalities ahead? I am a bit afraid to use rm here, as the extension is ucf-dist . I researched on the internet and public forums and people were writing about using gconf-cleaner, but haven't tried!

    Update 1: As suggested in comment, I am putting the output of cat 50unattended-upgrades.ucf-dist

    // Unattended-Upgrade::Origins-Pattern controls which packages are
    // upgraded.
    //
    // Lines below have the format format is "keyword=value,...".  A
    // package will be upgraded only if the values in its metadata match
    // all the supplied keywords in a line.  (In other words, omitted
    // keywords are wild cards.) The keywords originate from the Release
    // file, but several aliases are accepted.  The accepted keywords are:
    //   a,archive,suite (eg, "stable")
    //   c,component     (eg, "main", "crontrib", "non-free")
    //   l,label         (eg, "Debian", "Debian-Security")
    //   o,origin        (eg, "Debian", "Unofficial Multimedia Packages")
    //   n,codename      (eg, "jessie", "jessie-updates")
    //     site          (eg, "http.debian.net")
    // The available values on the system are printed by the command
    // "apt-cache policy", and can be debugged by running
    // "unattended-upgrades -d" and looking at the log file.
    //
    // Within lines unattended-upgrades allows 2 macros whose values are
    // derived from /etc/debian_version:
    //   ${distro_id}            Installed origin.
    //   ${distro_codename}      Installed codename (eg, "jessie")
    Unattended-Upgrade::Origins-Pattern {
            // Codename based matching:
            // This will follow the migration of a release through different
            // archives (e.g. from testing to stable and later oldstable).
    //      "o=Debian,n=jessie";
    //      "o=Debian,n=jessie-updates";
    //      "o=Debian,n=jessie-proposed-updates";
    //      "o=Debian,n=jessie,l=Debian-Security";
    
            // Archive or Suite based matching:
            // Note that this will silently match a different release after
            // migration to the specified archive (e.g. testing becomes the
            // new stable).
    //      "o=Debian,a=stable";
    //      "o=Debian,a=stable-updates";
    //      "o=Debian,a=proposed-updates";
            "origin=Debian,codename=${distro_codename},label=Debian-Security";
    };
    
    // List of packages to not update (regexp are supported)
    Unattended-Upgrade::Package-Blacklist {
    //  "vim";
    //  "libc6";
    //  "libc6-dev";
    //  "libc6-i686";
    };
    
    // This option allows you to control if on a unclean dpkg exit
    // unattended-upgrades will automatically run 
    //   dpkg --force-confold --configure -a
    // The default is true, to ensure updates keep getting installed
    //Unattended-Upgrade::AutoFixInterruptedDpkg "false";
    
    // Split the upgrade into the smallest possible chunks so that
    // they can be interrupted with SIGUSR1. This makes the upgrade
    // a bit slower but it has the benefit that shutdown while a upgrade
    // is running is possible (with a small delay)
    //Unattended-Upgrade::MinimalSteps "true";
    
    // Install all unattended-upgrades when the machine is shuting down
    // instead of doing it in the background while the machine is running
    // This will (obviously) make shutdown slower
    //Unattended-Upgrade::InstallOnShutdown "true";
    
    // Send email to this address for problems or packages upgrades
    // If empty or unset then no email is sent, make sure that you
    // have a working mail setup on your system. A package that provides
    // 'mailx' must be installed. E.g. "[email protected]"
    //Unattended-Upgrade::Mail "root";
    
    // Set this value to "true" to get emails only on errors. Default
    // is to always send a mail if Unattended-Upgrade::Mail is set
    //Unattended-Upgrade::MailOnlyOnError "true";
    
    // Do automatic removal of new unused dependencies after the upgrade
    // (equivalent to apt-get autoremove)
    //Unattended-Upgrade::Remove-Unused-Dependencies "false";
    
    // Automatically reboot *WITHOUT CONFIRMATION* if
    //  the file /var/run/reboot-required is found after the upgrade 
    //Unattended-Upgrade::Automatic-Reboot "false";
    
    // Automatically reboot even if there are users currently logged in.
    //Unattended-Upgrade::Automatic-Reboot-WithUsers "true";
    
    // If automatic reboot is enabled and needed, reboot at the specific
    // time instead of immediately
    //  Default: "now"
    //Unattended-Upgrade::Automatic-Reboot-Time "02:00";
    
    // Use apt bandwidth limit feature, this example limits the download
    // speed to 70kb/sec
    //Acquire::http::Dl-Limit "70";
    
    • Admin
      Admin over 7 years
      That file is not doing anything I think - everything is commented? And it is being ignored anyway so your system is apparently managing without it. I'd just mv it somewhere it won't be read, like your home, then you could presumably correct the filename and put it back in place if you ever need it?
    • Admin
      Admin over 7 years
      That worked @Zanna, after moving it doesn't shows the error but i hope after rebooting, my PC would open. Would try that next. My one more concern is before upgrading distro my boot up speed was fast enough, now it takes around 2-3 minutes. Clueless about that
    • Admin
      Admin over 7 years
      Heh let us know after reboot. you could post an answer to your own question :) To see what's taking so long at boot, run systemd-analyze blame, but that is a new question.
    • Admin
      Admin over 7 years
      Sure thing, i will Update the answer once i reboot .. cheers !
    • Admin
      Admin over 7 years
  • David Foerster
    David Foerster over 7 years
    It's not necessary to update and upgrade after the removal of that file. The prefix N: means that it's merely a notice and didn't block any action of Apt like updating and upgrading.
  • Isuru
    Isuru about 7 years
    But I couldn't install any software until I remove the file. Thanks @Rashedul.
  • Yuval Atzmon
    Yuval Atzmon about 7 years
    Didn't you mean to delete instead the old file? i.e. sudo rm /etc/apt/apt.conf.d/50unattended-upgrades.ucf-dist-old
  • Aquarius Power
    Aquarius Power over 6 years
    in my case, the file is "50unattended-upgrades.ucf-old", they should create some convention to keep these obsolete files while still not generating any log messages, so we would not lose the file and neither get alarmed :)
  • jarno
    jarno about 5 years
    @AquariusPower in Ubuntu 18.04 apt does not alarm about files with filename extension .ucf-* anymore.