Ansible 1.9.4:无法锁定apt以进行独占操作

Hri*_*nov 10 ansible

我碰到了Failed to lock apt for exclusive operation问题:https: //github.com/geerlingguy/ansible-role-apache/issues/50

我在GitHub上发布了很多细节.

我google了很多"无法锁定专属操作"的Ansible投诉,但没有简单的答案.有帮助吗?

fif*_*nce 17

我也遇到了这个错误,同时设置了几个新盒子.我正在联系root,因此我认为没有必要,但它是:

become: yes
Run Code Online (Sandbox Code Playgroud)

现在一切都按预期工作了.


小智 9

我知道这个问题很久以前就有人回答了,但对我来说,解决方案是不同的。问题是 update_cache 步骤。我在每个安装步骤中都有这个,不知何故导致“apt失败锁定错误”。解决方案是将 update_cache 添加为单独的步骤,如下所示:

- tasks:
  - name: update apt list
    apt:
      update_cache: yes
Run Code Online (Sandbox Code Playgroud)


小智 6

就我而言,ansible 试图锁定/var/lib/apt/lists/不存在的锁。

ansible给我的错误是Failed to lock apt for exclusive operation: Failed to lock directory /var/lib/apt/lists/: E:Could not open lock file /var/lib/apt/lists/lock - open (2: No such file or directory)

添加列表目录修复了问题:

- name: packages | ensure apt list dir exists
  file:
    path: /var/lib/apt/lists/
    state: directory
    mode: 0755
Run Code Online (Sandbox Code Playgroud)


小智 5

以与下面相同的顺序运行以下命令应该可以解决此问题:

sudo rm -rf /var/lib/apt/lists/*
sudo apt-get clean
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

  • 您能否添加_为什么_这一系列命令解决了 OP 的问题? (3认同)

Hri*_*nov 0

好的,所以 Ansible、SSH 或者角色都没有问题。只是 Debian 中的 apt 可能会变得非常混乱并且将自己锁定。由于我使用的是自制的 Docker 虚拟机,因此我只需重新创建映像和容器即可使 APT 再次工作。