Як змусити CLI перевіряти наявність оновлень кожні 4 тижні та встановлювати їх автоматично, не переходячи до джерел програмного забезпечення?


10

У мене є набір спеціальних команд, які я запускаю на своїх комп’ютерах після їх установки. Як змусити Ubuntu перевіряти оновлення кожні 4 тижні та автоматично встановити їх під час перевірки?

Мені потрібно це зробити через командний рядок, щоб я міг налаштувати його для звичайних користувачів, коли я налаштовував їх комп’ютери.

Перша команда змусить менеджера оновлень перевіряти оновлення кожні 2 тижні, оскільки вони не завжди надходять так багато, а також зберегти пропускну здатність серверів Ubuntu.

Мені також потрібно встановити це так, що користувачам не потрібно клацати, щоб установити оновлення, оскільки це втомлює кожен раз, коли я допомагаю другові налаштувати комп’ютер.

Відповіді:


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.


Зауважте, що відповідь papukaija говорить про інтервал, через який на вашому екрані з'являється діалог менеджера оновлень, я здогадуюсь, що це не те, чого ви не хочете, але я не впевнений. :)


Діалоги не потрібні для спливання, і це не йде в 1 рядок. Якщо я встановив у Джерелах програмного забезпечення 2 тижні, щоб перевірити, чи можливо, що діалогове вікно оновлення з’явиться раніше чи пізніше? Потрібно те, що з 1-го рядка можна було б встановити, що користувач навіть не знає, що у нього система оновлюється кожні 4 тижні, і йому не потрібно бачити будь-які оновлення із запитом і автоматично його щойно встановлено. Тому мені не потрібно встановлювати це вручну за допомогою миші в джерелах програмного забезпечення.
Кенгуру

Я не впевнений, що тебе розумію. Ви можете відключити сповіщення про оновлення, перейшовши до системи → Налаштування → Запуск програм та знявши прапорець у пункті «Оновити повідомлення». Це ви мали на увазі? Також, звичайно, ви можете встановити його на "30" замість "14" днів (або будь-яку суму, яку ви хочете)
Стефано Палаццо

І що також можна зробити одним рядком? Якщо так, це теж добре робити, якщо ні - це не головне, що я хотів. Головне - подолати перехід до секцій програмних джерел, щоб змінити перевірку оновлень та що робити. Я хочу ставити перевірку кожні 28 днів і встановлювати оновлення, не вимагаючи нічого в терміналі, щоб його швидше.
Кенгуру

Командна лінія у моїй відповіді: apt-get update && apt-get upgrade -y
лютого 11

@luri - це не про це питання
Стефано Палацо

2

Якщо ви маєте на увазі оновлення всього "оновленого", тобто оновлення ВСІХ ваших пакетів, я думаю, ви могли б мати крон (у кореневому кроні), ніж кожні 28 днів apt-get update && apt-get upgrade -y.

Деякі люди мають проблеми з роботою на місцях через обмежувальну 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

Ви встановили його в кореневому кроні?
luri

Так. Це не вдалось через деякі різні шляхи, тому я створив сценарій у / root / bin, з #! / Bin / bash та повний шлях до apt-get. Він працює краще, але все ще не оновлюється.
djeikyb

Опублікуйте помилки в журналі .... або що завгодно не вдасться
лют

Я поставив окреме запитання: askubuntu.com/q/23795/8515
djeikyb

1

Ви можете змінити інтервал між часом, коли запускається менеджер оновлень, відкривши gconf-редактор (наприклад, з Alt + F2 та ввівши gconf-редактор). Потім знайдіть /apps/update-notifier.

Інтервал визначається ключем, regular_auto_launch_intervalде значення - кількість днів. Я думаю, що цей метод не впливає на не графічне автоматичне оновлення (без уваги-оновлення).

Зверніть увагу, що Ubuntu може не встановлювати автоматично оновлення безпеки через помилку .


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 тижні.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.