问题描述
昨天我升级了发行版,今天当我使用apt-get
安装任何内容或进行更新时,出现错误:
N: Ignoring file '50unattended-upgrades.ucf-dist' in directory '/etc/apt/apt.conf.d/' as it has an invalid filename extension
据我所知,当一些新的配置/设置与旧的混合时会发生此错误。所以我试图通过移动到文件夹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
看起来像文件50unattended-upgrades.ucf-dist
存在。现在我的问题是如果我使用rm 50unattended-upgrades.ucf-dist
,那么它会导致未来的死亡?我有点害怕在这里使用rm,因为扩展名是ucf-dist
。我在互联网和公共论坛上进行了研究,人们正在写关于使用gconf-cleaner
的文章,但还没有尝试过!
更新1:如评论中所建议的,我将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. "user@example.com"
//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";
最佳解决方案
看到这个explanation of the origin and purpose of .ucf-dist files。这意味着您可以忽略通知(这是N:
前缀代表的内容)或删除所述文件。
在删除文件之前,请确保它不包含任何您可能需要的软件包。将其与您系统上当前处于活动状态的相比较:
diff /etc/apt/apt.conf.d/50unattended-upgrades.ucf-old /etc/apt/apt.conf.d/50unattended-upgrades
如果您确定不再需要任何东西,您可以忽略此文件或将其删除。要删除文件运行:
sudo rm /etc/apt/apt.conf.d/50unattended-upgrades.ucf-dist
次佳解决方案
这也发生在我从14.04升级到16.04时,在升级安装期间,我被提示在原始文件(由我修改)50unattended-upgrades文件或包更新中包含的原始文件之间进行选择,我当然选择保留前者。
安装完成后,未调用的文件50unattended-upgrades.ucf-dist出现在我的系统中,在我快速浏览一下以检查文件的旧版本是否有任何重大变化后,显然没有任何区别,所以我简单地删除它。
底线,如果您对当前版本的50unattended-upgrades感到满意,您可以摆脱它。