Проблемы с блокировкой «apt -y update && apt -y install python» в Ubuntu 18.04.1 LTS

Проблемы с блокировкой «apt -y update && apt -y install python» в Ubuntu 18.04.1 LTS

Я создаю Ansible Playbook для настройки Ubuntu 18.04.1 VPS и сталкиваюсь с проблемой, из-за которой не могу надежно установить Python.

Поскольку Ubuntu 18.04.1 не поставляется с установленным Python, я вынужден использовать следующую команду apt -y update && apt -y install pythonс rawмодулем.

Мне также удалось получить эту ошибку в оболочке, к которой я вручную подключился по 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?

Это виртуальная машина в VirtualBox на хосте Windows.

Я также пробовал использовать syncbetween apt updateи apt install, даже делать что-то подобное while fuser /var/lib/dpkg/lock >/dev/null 2>&1; do sync && sleep 1; donebetween updateи install, но это обычно не получается.

Это система, которая была создана с помощью следующих шагов:https://askubuntu.com/questions/946787/ubuntu-server-installation-with-root-only/1066033#1066033

решение1

Ubuntu 16.04+, iirc, поставляются с 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, которые я администрирую, без каких-либо проблем.

Связанный контент