Почему «apt-get install» получает / var / cache / apt / archives / lock во время загрузки

Команды apt-get upgrade и apt-get install <packagename> получают /var/cache/apt/archives/lock при загрузке и установке.

Я думаю, что должна быть возможность загружать пакеты без блокировки. Мы должны получить блокировку только при обновлении / установке загруженных пакетов. Как вы думаете? Почему мы не можем загрузить более одного пакета одновременно? Или почему мы не можем загрузить пакеты при установке другого?

2
задан 13 May 2016 в 17:29

3 ответа

ОБНОВЛЕНИЕ: извините, мой отказ. apt-get download package-name только загружают package-name на текущий каталог. затем это не ответ на Ваш вопрос.

apt-get download также не, загружают зависимости от пакета.

альтернатива для загрузки пакетов и зависимостей, но не установки была бы: sudo apt-get -d install package-name

, но это также не решает проблему блокировки.

я думаю, что не возможно работать, два экземпляра Кв. - получают simuntanea путем

, если Ваша цель состоит в том, чтобы загрузить пакеты более быстрый путь, возможно, опция состоит в том, чтобы использовать способно-быстрый ( https://github.com/ilikenwf/apt-fast) вместо Кв. - добираются (в моем случае, я использую способно-быстрый, потому что у меня есть очень нестабильное интернет-соединение)

предыдущий ответ:

опция состоит в том, чтобы использовать apt-get download package-name, чтобы только загрузить пакет и затем работать sudo apt-get install package-name для установки загруженного пакета.

apt-get download не создают блокировку.

можно работать одновременно apt-get download и sudo apt-get install

3
ответ дан 14 May 2016 в 03:29

Блокировка используется, чтобы гарантировать, что только один процесс может изменить способную базу данных во время. Если другой процесс устанавливал пакет, и каждый устанавливал тот, который они могли бы закончить тем, что были очень смущены и повредить базу данных. для больше на этом понятии Google 'транзакции базы данных' или 'атомарность'.

можно избежать блокировок путем загрузки пакетов сами с помощью ссылок от/etc/apt/sources.list и просмотрев их в веб-браузере. Можно затем установить debs, который Вы загрузили gdebi или dpkg. Однако, если Вы делаете это, необходимо будет разрешить зависимости сами, который не всегда легок и является, по моему скромному мнению, путем, более раздражающим, чем блокировки.

, Если блокировки являются раздражающими затем, полагают, что пакетная обработка Ваших установок для включения нескольких пакетов, например, склонный - получает package1 package2 package3 установки и идет, делают немного чая.

2
ответ дан 14 May 2016 в 03:29
  • 1
    как я мог сделать это? Это, кажется, проблема.. – Joanna Mikalai 26 October 2017 в 03:08

, Если Вы просто хотите знать, что командная строка использует, пропустите к" команда, которую Вы получаете, ".

- Кв. - получает поведение -

Что касается, 'Почему' склонный - добираются, действительно получает блокировку при загрузке, причина, кажется, что это хочет удостовериться, что привычка блокировки быть устраненным (заблокированный) некоторым другим процессом, в то время как это загружает. Теперь проблема состоит в том, что, когда каждый готов установить некоторый пакет, и блокировка установлена, apt-get отказывается делать что-либо, даже загружая файлы.

- Личное мнение -

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

, я определенно соглашаюсь с Вами. APT должен иметь опцию позволить загружать файлы, в то время как блокировка установлена. На самом деле, по-моему, должна быть система очереди установки, чтобы позволить ставить установку в очередь, в то время как некоторый пакет устанавливается, и следующие пакеты загружаются. Печально никакая такая опция, где добавлено для конечного пользователя. Мы должны несколько взломать склонный - добираются.

- Как я решил проблему -

Теперь, давайте решим проблему:

  • man apt-get, сопровождаемый / поиск с помощью ключевого слова download учит нас, что возможно решить и загрузить пакет зависимости командой:

sudo apt-get -d install <package-name>

  • info apt.conf затем поиск / lock сообщает нам, что параметр конфигурации Debug::NoLocking=1 отключает блокировку.

  • man apt-get затем / configuration сообщает нам, что параметры конфигурации могут быть установлены на основе на команду с помощью опции -o. Так определение -o Debug::NoLocking=1 в командной строке обойдет использование блокировки для той команды. Быть осторожным, когда Вы используете переопределение блокировки. , В частности, необходимо удостовериться, что это не используется для установки пакетов (Можно хотеть настроить псевдоним). Предложено, чтобы это могло использоваться для выполнения пробных прогонов (apt-get -s) или одновременные обновления (apt-get update). Я предполагаю, что нет никакой проблемы с помощью него для загрузки пакетов, хотя было бы намного лучше, если специализированная опция могла бы быть добавлена разработчиками.

<час>

команда, которую Вы получаете:

sudo apt-get -o Debug::NoLocking=1 -y -d install <package-name>
<час>

- Псевдоним -

можно хотеть создать псевдоним для него где-нибудь, как в Вашем ~/.bashrc:

alias saptdl="sudo apt-get -o Debug::NoLocking=1 -y -d install"

я не знаю, как сказать удар, как к автоматическому заполнению вкладки, которые управляют, но я знаю, что альтернативная оболочка zsh справляется с автозавершением псевдонима. Если Вы решаете дать ему движение, я предлагаю использовать oh-my-zsh для большего опыта.

<час>

- Функция -

возможно уточнить немного больше это и создать функцию, которая проверяет, установлена ли блокировка (/var/lib/dpkg/lock) и принимает решение или установить пакет или на незапертой загрузке это. Что-то как:

function saptdl () {
  if [ sudo fuser /var/lib/dpkg/lock ]
  then sudo apt-get -o Debug::NoLocking=1 -y -d install "$@"
  else sudo apt-get install "$@"
  fi
}

Что касается автоматического завершения функции, мне жаль, что я не мог помочь. Возможно, я найду путь и добавлю его позже. Не стесняйтесь редактировать мой ответ.

0
ответ дан 14 May 2016 в 03:29
  • 1
    Это - внутри cron.daily папка - не crontab... Посмотрите ОБНОВЛЕНИЕ 2 по возможной причине проблемы. – Joanna Mikalai 26 October 2017 в 03:18

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

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