我正在创建一个 Ansible Playbook 来设置 Ubuntu 18.04.1 VPS,但遇到了无法可靠地安装 Python 的问题。
由于 Ubuntu 18.04.1 没有安装 Python,因此我被迫使用以下命令apt -y update && apt -y install python
和raw
模块。
我还设法在手动 ssh 进入的 shell 中获取此错误。
root@ansible:~# apt -y update && apt -y install python
Hit:1 http://archive.ubuntu.com/ubuntu bionic InRelease
Hit:2 http://archive.ubuntu.com/ubuntu bionic-security InRelease
Hit:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease
Reading package lists... Done
Building dependency tree
Reading state information... Done
17 packages can be upgraded. Run 'apt list --upgradable' to see them.
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
这是 Windows 主机上 VirtualBox 中的虚拟机。
我也尝试过在和sync
之间使用,甚至在和之间做这样的事情,但通常会失败。apt update
apt install
while fuser /var/lib/dpkg/lock >/dev/null 2>&1; do sync && sleep 1; done
update
install
该系统已按照以下步骤建立:https://askubuntu.com/questions/946787/ubuntu-server-installation-with-root-only/1066033#1066033
答案1
Ubuntu 16.04+,irc,默认附带 Python3 并且已从默认安装中完全删除 Python2;换句话说,有一个可运行的 Python 解释器,只是它不在 Ansible 查找的位置。
您可以使用变量并将其设置为来覆盖默认行为(期望python
作为命令)ansible_python_interpreter
,对于 Ubuntu 16.04+ /usr/bin/python3
,。
像这样:
ansible_python_interpreter: /usr/bin/python3
Ansible 现在将 Python3 视为首要公民,因此这是一个相当安全的改变。我已经在我管理的少数 Ubuntu 18.04 机器上使用它,没有任何问题。