Назад | Перейти на главную страницу

Минимизация времени простоя во время обновлений apt-get

Запустив apt-get update, нужно применить несколько сотен мелких исправлений. APT решает остановить запуск postgres, потратить 20 минут на установку всех исправлений, а затем в конце запускает postgres.

Если я просматриваю список исправлений и обнаруживаю postgres, я могу запустить «apt-get install postgres», и он будет счастлив обновить этот пакет самостоятельно, имея достаточно времени простоя только для обновления этого одного пакета. Затем я могу обновить остальное в качестве второго шага, и postgres останется.

Есть ли какой-то параметр, который мне не хватает, который сказал бы apt-get останавливать / обновлять / запускать службы индивидуально, а не в гигантских группах или мне приходилось разбивать их вручную?

Вы можете сделать что-то вроде этого:

$ sudo aptitude -F%p --disable-columns search ~U | xargs -n 1 sudo apt-get install

или

$ sudo apt-get -s upgrade | awk '/^Inst/ { print $2 }' | xargs -n 1 sudo apt-get install

При этом каждое доступное обновление будет установлено отдельно.

Имейте в виду, что приведенная выше команда не учитывает зависимости пакетов, поэтому вам может потребоваться несколько шагов для установки более одного пакета. Я не знаю, как получить aptitude или apt-get для вывода пакетов в порядке их зависимости друг от друга.

Основываясь на ответе EEAA, я предлагаю добавить параметр «-y» в команду apt-get, иначе пакеты, которые устанавливаются с запросом (для [Y / N]), будут прерваны и пропущены (ubuntu-18.04). Использование:

$ sudo apt-get -s upgrade | awk '/^Inst/ { print $2 }' | xargs -n 1 sudo apt-get -y install