![dpkg 和 50unattended-upgrades.ucftmp 问题](https://linux22.com/image/1148261/dpkg%20%E5%92%8C%2050unattended-upgrades.ucftmp%20%E9%97%AE%E9%A2%98.png)
最近我在使用 dpkg 时遇到了一个问题,当使用 apt/apt-get 时,我会收到有关 50unattended-upgrades.ucftmp 的错误。
我查看了社区,但没有人给出明确的答案。是的,你可能会说答案很多,但请注意文件扩展名是 .ucftmp。实际上,没有与该扩展名相关的问题/答案。50unattended-upgrades 有很多问题,但与扩展名无关。
这个问题是前段时间发生的,当时我尝试使用 apt 安装某些东西,它给出了整个“dpkg/lock”的东西,所以我去删除它,因为除了我使用的命令之外,我没有使用任何其他东西。但我错过了 sudo rm /var/lib/dpkg/lock 中的最后 5 个字符,并删除了 dpkg 文件夹。我找到了一个可行的答案,我使用了它并把它留下了(如果你想知道这个问题,我可以找到它,所以请告诉我)。
就在今天,我遇到了 RAM 问题,我需要安装 memtest86+ 包,并且在使用 50unattended-upgrades 时遇到问题,而且系统还说无人值守包、samba 包和其他一些包存在问题。
当我尝试安装 memtest86+ 时发生的情况如下(它已经安装,但输出仍然存在问题):
scoutchorton@scoutcbuntu-pc:~$ sudo apt install memtest86+
Reading package lists... Done
Building dependency tree
Reading state information... Done
memtest86+ is already the newest version (5.01-3ubuntu2).
The following package was automatically installed and is no longer required:
mokutil
Use 'sudo apt autoremove' to remove it.
0 upgraded, 0 newly installed, 0 to remove and 249 not upgraded.
N: Ignoring file '50unattended-upgrades.ucftmp' in directory '/etc/apt/apt.conf.d/' as it has an invalid filename extension
无法使用任何包装的东西,这非常烦人。
答案1
到目前为止,看起来已经有了一个很好的解决方案。以下是我的解决方案。
无效的方法:
尝试下载软件包并手动安装它们。
我试过了。要么我只是个 Linux 菜鸟,完全错过了 README 中关于如何安装它的某些内容,但它并不像那么简单sudo dpkg -i package.deb
。我讨厌编译软件。
apt-get 删除 --purge
dpkg 和软件包已经存在问题,并且已损坏,清除它们并没有太大帮助。它们已损坏,Ubuntu 无法正确识别它们。
什么确实有效
步骤1:
获取 USB 磁盘。我认为现在没有人拥有真正的 Live CD,但基本上可以取出启动盘。获取 Ubuntu(我建议使用您当前使用的版本,这样您才能 100% 确定文件应该相同)到磁盘上,然后启动到您的实时会话。
第2步:
在混乱的不同驱动器中(至少,这是我的情况),找到您的 Ubuntu 分区和 Live Session 的根 (/) 文件夹。找到两者后,获取两个驱动器上 /var/lib/dpkg/ 的位置。Ubuntu 分区的位置类似于 /media/Ubuntu/(驱动器名称)/var/lib/dpkg/。
步骤3:
打开终端。有几个命令可以派上用场。
命令 1(使用 Ubuntu 分区位置):sudo rm -rf /media/Ubuntu/(drive)/var/lib/dpkg/*
此命令将删除当前 dpkg 文件夹中的所有内容,这样就一目了然了。 下一个命令将说明这样做的原因。
命令 2(使用两个位置):sudo cp /var/lib/dpkg/* /media/Ubuntu/(drive)/var/lib/dpkg/
这会将所有最新的 dpkg 文件从 Live 会话复制到您的 Ubuntu 版本。基本上,这是 dpkg 文件的全新“安装”。
步骤4:
重启。如果你真的需要一个系统命令来执行此操作以满足你内心的“我使用 Ubuntu 是因为我可以用复杂的命令完成简单的任务”的愿望,你可以使用命令shutdown -r now
。记住在执行此操作时删除启动盘。
步骤5:
重新启动到常规 Ubuntu 分区后,打开终端。如果您尝试安装任何东西,您仍然会遇到整个 50unattended-upgrades 问题。但这可以通过一个简单的操作来解决,sudo rm /etc/apt/apt.conf.d/50unattended-upgrades.ucftmp
该操作将删除烦人的文件。您可能可以从一开始就这样做,但整个过程对我来说是有效的。所以哦,好吧。然后,一旦您完成所有这些,您应该执行sudo apt-get upgrade
。这将需要相当长的时间,所以请坐下来等待它完成。
当你完成所有这些操作后,dpkg应该已修复。对我来说,sudo apt-get upgrade
运行起来没有任何问题,所以我认为它已修复。如果这对您有用,请告诉我。谢谢阅读!!尽情享受吧!
答案2
50unattended-upgrades.ucftmp
当(讽刺的是)无人值守升级打开一个鞭尾会话并询问我如何更新我编辑的50unattended-upgrades
文件时,它就出现了。
解决方案是运行rm
文件(如apt
提示所示),sudo dpkg --configure -a
以便我可以正确回答提示。
因此,要回答最初的问题:什么是文件*.ucftmp
,它是更新期间的临时文件。