
Estoy creando un Ansible Playbook para configurar VPS Ubuntu 18.04.1 y encuentro un problema en el que no puedo instalar Python de manera confiable.
Dado que Ubuntu 18.04.1 no se envía con Python instalado, me veo obligado a usar el siguiente comando apt -y update && apt -y install python
con el raw
módulo.
También logré obtener este error en un shell en el que ingresé manualmente mediante ssh.
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?
Esta es una máquina virtual en VirtualBox en un host de Windows.
También intenté usar sync
Between apt update
y apt install
, incluso haciendo algo como esto while fuser /var/lib/dpkg/lock >/dev/null 2>&1; do sync && sleep 1; done
entre update
y install
, pero generalmente falla.
Es un sistema que se ha configurado con los siguientes pasos:https://askubuntu.com/questions/946787/ubuntu-server-installation-with-root-only/1066033#1066033
Respuesta1
Ubuntu 16.04+, iirc, viene con Python3 de forma predeterminada y ha eliminado Python2 por completo de la instalación predeterminada; en otras palabras, hay un intérprete de Python en funcionamiento, pero no está en un lugar donde Ansible busque.
Puede anular el comportamiento predeterminado (esperando python
que sea un comando) usando la ansible_python_interpreter
variable y configurándola en, en el caso de Ubuntu 16.04+, /usr/bin/python3
.
Entonces algo como esto:
ansible_python_interpreter: /usr/bin/python3
Ansible ahora trata a Python3 como un ciudadano de primera clase en su mayor parte, por lo que este es un cambio bastante seguro. Lo he estado usando en un puñado de cajas Ubuntu 18.04 que administro sin problemas.