Рейтинг:0

Странное поведение dpkg с ansible

флаг in
Aki

В рамках моего рабочего процесса я использую сервер Ubuntu 20.04.3.

Поэтому я готовлю образ для виртуальной машины и развертываю его с помощью Ansible.

Поскольку это env без доступа к Интернету, все пакеты, которые я устанавливаю, были ранее загружены в формате .deb. путем выполнения простой команды оболочки:

dpkg -i deb_1.deb deb_2.deb deb_3.deb deb_4.deb 
dpkg -i deb_5.deb deb_6.deb deb_7.deb deb_8.deb 

Иногда ~ 5% случаев, я получаю эту ошибку совершенно спорадически, может возникнуть при первой установке

"stderr_lines": ["dpkg: ошибка: блокировка внешнего интерфейса dpkg заблокирована другим процессом",
«E: Подпроцесс dpkg --set-selections вернул код ошибки (2)», «E: Не удалось выполнить dpkg. Вы root?»]

Я пытался решить это:

  1. Пункт списка

Перед каждым шагом установки выполняйте ручное удаление файла блокировки

  • /var/lib/dpkg/блокировка
  • /var/lib/dpkg/lock-интерфейс
  • /var/кэш/apt/архивы/замок

Но даже после ручного удаления ошибка продолжает появляться.

  1. Пробовал устанавливать пакеты с модулем Ansible apt и аргументом "deb" - но поведение такое же.

  2. Пытался выяснить, какому процессу на самом деле принадлежат файлы блокировки с помощью «lsof», но файл не принадлежал ни одному процессу.

Есть ли способ исправить это странное и глючное поведение?

Какой процесс отвечает за создание файлов блокировки иногда при запуске системы?

Рейтинг:0
флаг cn

Ответ в сообщении:

Не удалось выполнить dpkg. Вы корень?

Вам нужно поставить судо перед командой при изменении местоположений, принадлежащих системе.

Aki avatar
флаг in
Aki
Я запускаю все команды с привилегиями sudo, также я упомянул, что эта ошибка встречается редко, и в большинстве случаев это работает, поэтому, к сожалению, это не проблема, связанная с разрешениями.
флаг cn
dpkg, кажется, думает, что это не так, поэтому вам, вероятно, нужно проверить, как вы настроили sudo: вы пропустили его перед командами. Довольно опасно, если вы добавили dpkg в файл sudoers: это НЕ позволит вам выполнять команды внутри пакета.
Aki avatar
флаг in
Aki
Я вхожу в систему как пользователь root, поэтому использовать sudo не нужно.
флаг cn
Ubuntu не настроен для использования в качестве root, и вполне может быть, что это побочный эффект. Когда вы получите эту ошибку, перейдите к пользователю с правами администратора и используйте «sudo» с dpkg. Если это сработает, вы нашли причину своей проблемы. Если вы хотите использовать root, вы можете переключиться на Debian. Комментарий, который вы сделали, является ВАЖНОЙ информацией и должен был быть в вопросе, и я мог бы проигнорировать вопрос.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.