Как в CLI проверять наличие обновлений каждые 4 недели и устанавливать их автоматически, не обращаясь к источникам программного обеспечения?

10

У меня есть набор пользовательских команд, которые я запускаю на своих компьютерах после их установки. Как заставить Ubuntu проверять наличие обновлений каждые 4 недели и автоматически устанавливать их при проверке?

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

Первая команда будет заставлять менеджер обновлений проверять наличие обновлений каждые 2 недели, потому что они не всегда бывают такими большими и экономят пропускную способность серверов Ubuntu.

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

Kangarooo
источник

Ответы:

10

Сначала включите автоматическое обновление, как это:

sudo apt-get install unattended-upgrades

Затем вам нужно отредактировать его конфигурацию, наберите

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

(замените nanoваш предпочитаемый текстовый редактор, если хотите)

Файл выглядит так:

Unattended-Upgrade::Allowed-Origins {
        "Ubuntu maverick-security";
//      "Ubuntu maverick-updates";
};

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

Чтобы установить интервал, с которым система проверяет наличие обновлений, отредактируйте /etc/apt/apt.conf.d/10periodicфайл в текстовом редакторе:

APT::Periodic::Update-Package-Lists "14";
APT::Periodic::Download-Upgradeable-Packages "14";
APT::Periodic::AutocleanInterval "14";
APT::Periodic::Unattended-Upgrade "14";

В этом примере система обновляется каждые две недели.

Более подробное объяснение смотрите в разделе Автоматическое обновление в руководстве по серверу Ubuntu.


Обратите внимание, что ответ Папукайи говорит о интервале, с которым на вашем экране появляется диалоговое окно «Диспетчер обновлений». Я предполагаю, что это не то, что вам нужно, но я не уверен. :)

Стефано Палаццо
источник
Диалоги не нужно всплывать и не идти в 1 строку. Если я установлю в Источниках программного обеспечения 2 недели для проверки, то возможно ли, чтобы диалоговое окно обновления появилось раньше или позже? Необходимо, чтобы с помощью одной строки можно было бы настроить, чтобы пользователь даже не знал, что система обновляется каждые 4 недели, и ему не нужно видеть какие-либо обновления, запрашивающие и автоматически только что установленные. Так что мне не нужно устанавливать это вручную с помощью мыши в программных источниках.
Кенгуру
Я не уверен, что понимаю вас. Вы можете отключить уведомления об обновлениях, перейдя в «Система» → «Настройки» → «Запуск приложений» и сняв флажок «Уведомление об обновлении». Это то, что вы имели в виду? Кроме того, конечно, вы можете установить его на «30» вместо «14» дней (или любую сумму, которую вы хотите)
Стефано Палаццо
И что также можно сделать одной строкой? Если да, то это тоже хорошо, если нет - это не главное, что я хотел. Главное - преодолеть переход к настройкам источников ПО, чтобы изменить проверку обновлений и что делать. Я хочу ставить проверки каждые 28 дней и устанавливать обновления, ничего не спрашивая в терминале, так что это быстрее.
Кенгуру
Одна строка в моем ответе: apt-get update && apt-get upgrade -y
luri
@luri, это не то, о чем этот вопрос
Стефано Палаццо
2

Если вы имеете в виду обновить все «обновляемые», то есть обновить ВСЕ ваши пакеты, я думаю, вы могли бы cron (в пределах корневого cron), чем каждые 28 дней apt-get update && apt-get upgrade -y.

У некоторых людей возникают проблемы с заданиями в crond из-за ограничений PATH. Если у вас есть какие-либо проблемы, вы можете определить их PATHв самом начале crontab -eфайла (как предложено в CronHowto )

Кроме того, чтобы проверить, что все идет хорошо, я бы записал результаты, например так:

root@PORTATIL:/var/log$ crontab -l
* * */2 * * /usr/share/myupdate.sh > /var/log/myupdate.log

myupdate.sh может быть так просто, как это:

#!/bin/bash
#Testing updates
echo "$(date) Crond myupdate sarting."
apt-get update -y
apt-get upgrade -y
echo "$(date)Crond myupdate finished."
Лури
источник
Это не работает для меня. Когда я получаю свои журналы cron, я aptitude -y safe-upgradeжалуюсь на необходимость контролировать tty, а затем кучу ошибок пути. Может быть, я должен задать вопрос ..
djeikyb
Вы установили его в корне cron?
Лури
Ага. Это не помогло из-за некоторых проблем с путями, поэтому я создал скрипт в / root / bin, с!! / Bin / bash и полным путем к apt-get. Работает лучше, но все равно не обновляется.
djeikyb
Опубликуйте ошибки в журнале .... или что не
получится
Я сделал отдельный вопрос: askubuntu.com/q/23795/8515
djeikyb
1

Вы можете изменить интервал времени между запуском update-manager, открыв gconf-editor (например, с помощью Alt + F2 и набрав gconf-editor). Тогда найдите /apps/update-notifier.

Интервал определяется в ключе, regular_auto_launch_intervalгде значением является количество дней. Я думаю, что этот метод не влияет на неграфическое автоматическое обновление (автоматические обновления).

Обратите внимание, что Ubuntu не может автоматически устанавливать обновления безопасности из-за ошибки .

papukaija
источник
4
Это версия этого ответа для командной строки: gconftool -s /apps/update-notifier/regular_auto_launch_interval --type int 7(где 7 - интервал в днях)
Стефано Палаццо
Я только что проверил, что это было уже 7. Но в источниках программного обеспечения его установить 2 недели. Может быть, это где-то еще?
Кенгуру
0

Я ставлю gconftool -s /apps/update-notifier/regular_auto_launch_interval --type int 1и его открытие каждый день показывает, что я не установил обновления. Он открывается, если нет новых обновлений? Так что автоматическое обновление каждые 4 недели не заставит это всплыть? Так что же делать с CLI для автоматической установки обновлений каждые 4 недели? Это то, что я хочу. Не переходя к источникам программного обеспечения и делая это с помощью мыши. И при этом его возможная причина, это не может быть помещено больше чем 2 недели там.

Kangarooo
источник