Sperrprobleme mit „apt -y update && apt -y install python“ in Ubuntu 18.04.1 LTS

Sperrprobleme mit „apt -y update && apt -y install python“ in Ubuntu 18.04.1 LTS

Ich erstelle ein Ansible Playbook zum Einrichten von Ubuntu 18.04.1 VPSs und stoße auf ein Problem, bei dem ich Python nicht zuverlässig installieren kann.

Da Ubuntu 18.04.1 nicht mit installiertem Python ausgeliefert wird, bin ich gezwungen, den folgenden Befehl apt -y update && apt -y install pythonmit dem rawModul zu verwenden.

Ich habe es auch geschafft, diesen Fehler in einer Shell zu erhalten, in die ich mich manuell per SSH eingeloggt habe.

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?

Dies ist eine virtuelle Maschine in VirtualBox auf einem Windows-Host.

Ich habe es auch mit der Verwendung synczwischen apt updateund versucht apt install, sogar so etwas wie das hier while fuser /var/lib/dpkg/lock >/dev/null 2>&1; do sync && sleep 1; donezwischen updateund gemacht install, aber das schlägt normalerweise fehl.

Es handelt sich um ein System, das mit den folgenden Schritten eingerichtet wurde:https://askubuntu.com/questions/946787/ubuntu-server-installation-with-root-only/1066033#1066033

Antwort1

Ubuntu 16.04+ wird, wenn ich mich recht erinnere, standardmäßig mit Python3 ausgeliefert und Python2 wurde vollständig aus der Standardinstallation entfernt. Mit anderen Worten: Es gibt einen funktionierenden Python-Interpreter, er steht nur nicht an einer Stelle, an der Ansible sucht.

Sie können das Standardverhalten (Erwarten pythonals Befehl) überschreiben, indem Sie die ansible_python_interpreterVariable verwenden und sie im Fall von Ubuntu 16.04+ auf setzen /usr/bin/python3.

Also ungefähr so: ansible_python_interpreter: /usr/bin/python3

Ansible behandelt Python3 jetzt größtenteils als First-Class Citizen, daher ist dies eine ziemlich sichere Änderung. Ich habe es auf einer Handvoll Ubuntu 18.04-Boxen, die ich verwalte, ohne Probleme verwendet.

verwandte Informationen