useradd:无法锁定 /etc/subuid;稍后再试

useradd:无法锁定 /etc/subuid;稍后再试

因此,在尝试升级到 14.04 时我遇到了此错误:

无法计算升舱

计算升级时出现无法解决的问题。

请报告针对“update-manager”包的这个错误并包含以下错误消息:“E:Error,pkgProblemResolver::Resolve 生成​​中断,这可能是由持有的包引起的。”

我查看了它,然后在文本编辑器中打开了 /var/log/dist-upgrade/apt.log 日志文件,找到所有“损坏”的软件包,然后使用 sudo apt-get remove 将其删除。我有 33 个损坏的软件包。

我输入了“sudo apt-get update && sudo apt-get upgrade”来查看是否有任何软件包:有 2 个软件包不想更新:libboost-filesystem-dev 和 libboost-thread-dev,所以我删除了它们以查看是否能够获得正确的升级。

它不起作用。

我现在收到有关未解决依赖项的错误,无法执行任何操作。我尝试了以下方法来摆脱它:

  1. sudo apt-get -f install,这是输出(它是意大利语,抱歉)

http://pastebin.com/y2DTqxdQ

基于此,它无法安装这个“usermetricsservice_1.1.1+13.10.20131003-0ubuntu1_amd64.deb”,即使使用软件中心手动打开它,也会出现错误。

  1. sudo apt-get -u dist-upgrade,输出与之前类似

http://pastebin.com/k6DETpzV

这是使用“sudo dpkg --configure -a”的输出:http://pastebin.com/SEj83RSP

编辑:重新启动后,我设法通过“sudo apt-get -f install”修复了损坏的依赖项,但我仍然无法升级 ubuntu,因为出现与以前相同的错误,而且我不确定这里的问题是什么。

这是“sudo lsof /etc/subuid”的输出

lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
  Output information may be incomplete.

答案1

我刚才也遇到了这个错误,最后终于解决了。我这样做了:

1-尝试$ sudo useradd nickname

2- 如果出现错误,响应应该是这样的:“useradd:现有的锁定文件 /etc/subgid.lock 没有 PID useradd:无法锁定 /etc/subgid,请重试。”

3- 现在您必须删除所有产生错误的文件,在我的情况下,它们是subgid.lock。 (您可以看到响应中显示“现有锁定文件 /etc/subgid.lock”,因此您必须删除响应中显示的所有文件)。执行以下操作:$ sudo mv subgid.lock /home/youruser/subuid.lock.sav。 替换subgid.lock您的错误文件。

4- 再试一次$ sudo useradd nickname。如果显示其他错误文件,请将其删除。如果没有其他错误文件,您现在应该会获得新用户。

这对我来说非常有用,所以我希望你能解决这个问题 =)。抱歉我的英语不好,因为我是西班牙人。再见,祝你好运。

答案2

我在尝试安装时遇到了类似的问题hadoop 用户组 hduser我通过删除这两个文件解决了这个问题。这是我收到的错误:

useradd: existing lock file /etc/subuid.lock without a PID useradd: cannot lock /etc/subuid; try again later.

解决方案:

sudo rm /etc/subgid.lock
sudo rm /etc/subgid

答案3

您很可能当时正在运行另一个 useradd 实例。您可以使用以下命令找出原因:

sudo lsof /etc/subuid

我的系统上没有这个文件,但它是由 passwd 包提供的。我建议您验证没有进程阻止该文件,然后如果它不起作用,请重新启动系统。

相关内容