Зачем блокировать архивы и dpkg при выполнении установки приложений и обновлений.

На самом деле, если мы приостанавливаем какое-либо приложение, устанавливаемое в середине или приостанавливаем обновления, то автоматически при возобновлении мы получим некоторые проблемы, например

E: Could not get lock /var/cache/apt/archives/lock - open (11: Resource temporarily unavailable)
E: Unable to lock directory /var/cache/apt/archives/

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?

. Я знаю, как решить эти проблемы, сняв блокировку. но я хочу знать, почему будет происходить блокировка при выполнении обновлений / установки.

1
задан 13 August 2012 в 22:10

1 ответ

Вполне просто блокировки используются для их исходного намерения: помешать другим процессам слоняться без дела с установками. Вообразите следующий сценарий:

  1. Process1 запускается для установки basex, который зависит от default-jre

  2. Process2 начинает удалять default-jre. basex уже происходит, таким образом, этому нельзя сообщить об этом удалении.

  3. Концы Process2.

  4. Концы Process1. Существует нерабочая система. Это хуже, если тот же пакет установлен, то удаленный одновременно.

В то время как это может быть разрешено путем содержания блокировки на пакет, сохраненной для пакета и любых пакетов, которые должны существовать (Зависимости), я не знаю, почему это не сделано.

Подобная проблема может произойти, если существуют пакеты тот конфликт. Например, один пакет мог бы быть установлен, и другой конфликтующий можно было быть установлен одновременно (как зависимость или иначе).

3
ответ дан 13 August 2012 в 22:10

Другие вопросы по тегам:

Похожие вопросы: