sudo apt-get upgrade устанавливает все обновления, а не только обновления для системы безопасности. Я знаю, что я могу использовать Update Manager для выбора только важных обновлений безопасности, но есть ли способ сделать это из командной строки?
Это относится как к Debian, так и к Ubuntu, но более конкретные инструкции для Ubuntu следуют.
Показывать только обновления для системы безопасности:apt-get -s dist-upgrade |grep "^Inst" |grep -i securi
или sudo unattended-upgrade --dry-run -d
или /usr/lib/update-notifier/apt-check -p
Показать все обновляемые пакеты apt-get -s dist-upgrade | grep "^Inst"
Только установить обновления безопасности apt-get -s dist-upgrade | grep "^Inst" |
grep -i securi | awk -F " " {'print $2'} |
xargs apt-get install
Примечания:
Показать только обновления для системы безопасности:apt-get -s dist-upgrade |grep "^Inst" |grep -i securi
или [ f2] или /usr/lib/update-notifier/apt-check -p
Показывать только обновления для системы безопасности:
checkrestart -v
Однако имейте в виду, что checkrestart может отображать процессы, которые не обязательно перезапускаются. Например, служба PostgreSQL может хранить в своей памяти ссылку на уже удаленный файл xlog, что не является веской причиной перезапуска службы. или
Он проверяет, продолжают ли выполняемые процессы в системе удаленные библиотеки в результате хранения копий в активной памяти.ps xh -o pid |
while read PROCID; do
grep 'so.* (deleted)$' /proc/$PROCID/maps 2> /dev/null
if [ $? -eq 0 ]; then
CMDLINE=$(sed -e 's/\x00/ /g' < /proc/$PROCID/cmdline)
echo -e "\tPID $PROCID $CMDLINE\n"
fi
done
замените /etc/apt/preferences следующим образом:
Package: *
Pin: release a=lucid-security
Pin-Priority: 500
Package: *
Pin: release o=Ubuntu
Pin-Priority: 50
теперь простой apt-get upgrade обновит все обновления безопасности.
Почему (и как) это работает: файл настроек привяжет все пакеты от дистрибутива Ubuntu до приоритета 50, что сделает их менее желательными, чем уже установленные пакеты. Файлы, созданные из репозитория безопасности, получают приоритет по умолчанию (500), поэтому они учитываются при установке. Это означает, что только пакеты, которые считаются более желательными, чем установленные в настоящее время, - это обновления для системы безопасности. Дополнительная информация о прикреплении в man-странице apt_preferences.
Вы можете временно рекламировать определенный дистрибутив для обновлений с опцией --target-release, которая работает с apt-get и aptitude (по крайней мере), которая позволит вам подключать некоторые версии, чтобы они были пригодны для обновления.
Если вы хотите использовать это только для скриптов и не использовать его по умолчанию для системы, вы можете поместить правила в другое место и вместо этого использовать это:
apt-get -o Dir::Etc::Preferences=/path/to/preferences_file upgrade
Это заставит apt искать файл настроек из нестандартного местоположения.
Файл настроек, приведенный в качестве примера, не применяется к сторонним репозиториям, если вы также можете привязать их, вы можете использовать apt-cache policy, чтобы легко определить требуемые ключи для закрепления.
В Ubuntu 14.04 LTS подтверждено:
Используйте пакет unattended-upgrade.
Посмотрите на файл /etc/apt/apt.conf.d/50unattended-upgrades. В верхней части должен быть раздел:
// Automatically upgrade packages from these (origin:archive) pairs
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
// "${distro_id}:${distro_codename}-updates";
// "${distro_id}:${distro_codename}-proposed";
// "${distro_id}:${distro_codename}-backports";
};
Обратите внимание, как он был настроен только для автоматического обновления пакетов безопасности по умолчанию.
Измените файл [ f5] аналогично:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";
Это будет запускать автоматические автоматические обновления безопасности один раз в день.
Теперь для запуска вручную: sudo unattended-upgrade.
] Чтобы проверить как сухую работу, ничего не делая: sudo unattended-upgrade --dry-run.
Источник: https://help.ubuntu.com/14.04/serverguide/automatic-updates.html
Хотя это довольно уродливо, вы можете отключить все репозитории, кроме репозитория безопасности, а затем выполните:
sudo apt-get update && sudo apt-get upgrade
Я его не тестировал, но теоретически он будет находить обновления только в security repo и применять их ...
Я не могу найти вариант в apt-get или aptitude, однако у кого-то был тот же вопрос на SuperUser. Единственный ответ:
Проверьте и настройте /etc/apt/apt.conf.d/50unattended-upgrade. Вы заменили «karmic» на кодовое имя вашего Ubuntu?Нет ответа о том, что это сработало.