Як налаштувати Raspberry Pi на автоматичне оновлення / оновлення?


34

Наразі, щоб оновити речі на моєму Raspberry Pi, я маю набрати sudo apt-get updateта sudo apt-get upgrade. Чи є спосіб налаштувати його автоматично? Я веду Raspbian Jessie.

Відповіді:


47

замість ручного cron можна встановити unattended-upgrades, що корисно для встановлення останніх ядер. Він в основному призначений для безпеки.

https://wiki.debian.org/UnattendedUpgrades

apt-get install unattended-upgrades

Є кілька бітів, які можна відрегулювати / налаштувати, але за замовчуванням це нормально.


5
Для мене дефолт був не в порядку. Він нічого не зробив: /var/log/unattended-upgrades/unattended-upgrades.logфайл повідомлявся Allowed origins are: []настільки, що він не тягнув жодних оновлень. Після оновлення, /etc/apt/apt.conf.d/50unattended-upgradesщоб включити "origin=Raspbian,codename=${distro_codename},label=Raspbian";оновлення, почали надходити.
Rabarberski

Мій запас кісток (станом на вересень 2017 року) 50unattended-upgradesперерахований, "origin=Debian,codename=${distro_codename},label=Debian-Security";і, здається, правильно знайдені відповідні пакети. Звичайно, багато хто з них ігнорує. Я не встановлював жодних білих чи чорних списків.
Джон V

3
За замовчуванням 50unattended-upgradesнасправді дурно, і його потрібно змінити, щоб це працювало на Распіані. Немає Raspian-Security. Оновлення безпеки не позначені. Важливо додати , як "origin=Raspbian,codename=${distro_codename},label=Raspbian";і "origin=Raspberry Pi Foundation,codename=${distro_codename},label=Raspberry Pi Foundation";до/etc/apt/apt.conf.d/50unattended-upgrades
user643011

23

У терміналі введіть:

sudo su

Для отримання доступу до кореневого рівня. Потім запустіть:

crontab -e

Щоб почати редагувати ваш crontab, таблицю завдань, яка автоматично виконується в даний момент часу. Він відкриється у вибраному текстовому редакторі. Змініть її, щоб вона включала наступні рядки:

0 7 * * 1 apt update && apt upgrade -y

Автоматичне оновлення та оновлення програм у 7:00 кожного понеділка. Читайте на crontab, щоб побачити, як налаштувати на свій смак.


2
можливо, краще розмістити команди в одному рядку, &&оскільки вони пов'язані, і немає ніяких причин робити "оновлення", якщо "оновлення" не вдається.
tedder42

у crontab 0означає неділя, але у своєму коді ви поставили, 1щоб команда виконувалась у понеділок, а не в неділю
rav_kr

3
dist-upgradeкраще, ніж upgradeви, в кінцевому підсумку, будете порушені залежності, використовуючи лише їх upgrade. Ви також не отримаєте оновлення, які потребують підтвердження діалогу. @ tedder42 вказав на спосіб, який віддав перевагу Debian (використовуючи unattended-upgrades).
ryanpcmcquen

Ви пропустили друге судо після додавання &&. Хоча це все-таки в кореневому кронтабі.
user643011

1
Там не повинно бути жодного sudo; ви перейшли на rootрахунок, використовуючи su. Кронтаб суперпользователя працює з привілеями суперрузера.
золотинки

8

Ви можете встановити та налаштувати cron-apt. Встановіть його, виконавши наступне:

apt-get install cron-apt

основний файл конфігурації - / etc / cron-apt / config

Я можу додати до своєї конфігурації:

MAILON="always"

це надсилатиме електронний лист щоразу, коли він запускається, не лише якщо він виявить помилку.

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

Щоб встановити час його запуску, редагуйте файл /etc/cron.d/cron-apt.

Ви можете знайти більше інформації та налаштування параметрів тут

Пакет включає дуже гарну документацію, проте він gzipped. Щоб витягнути файл:

  1. створити каталог для роботи в mkdir cron-apt_documentation
  2. зміни в новий каталог - cd cron-apt_documentation
  3. скопіюйте стислий файл - cp /usr/share/doc/cron-apt/README.gz. (зверніть увагу на кінцеву крапку)
  4. розпакуйте файл - gunzip README.gz
  5. читати файл - кішка README | менше

абоzcat /usr/share/doc/cron-apt/README.gz | less

5

У конфігурації за замовчуванням unattended-upgradesрозбито на Raspbian Buster. Він не встановлюватиме важливі оновлення для ядра та іншого програмного забезпечення. Ваші варіанти:

Рекомендований варіант:

sudo apt install unattended-upgrades

echo 'Unattended-Upgrade::Origins-Pattern {
//      Fix missing Rasbian sources.
        "origin=Debian,codename=${distro_codename},label=Debian";
        "origin=Debian,codename=${distro_codename},label=Debian-Security";
        "origin=Raspbian,codename=${distro_codename},label=Raspbian";
        "origin=Raspberry Pi Foundation,codename=${distro_codename},label=Raspberry Pi Foundation";
};' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-raspbian

Для більш швидких оновлень безпеки (але меншої стабільності, оскільки пакети не були затверджені для Rasbian), ви можете додати пакети debian-безпеки для підходу:

echo 'deb http://deb.debian.org/debian-security/ buster/updates main contrib non-free' | sudo tee /etc/apt/sources.list.d/debian-security.list

Можливо, вам потрібно буде встановити нові підхожі ключі для сховища debian .

Інші параметри:

  • Обробіть це питання за допомогою cron-apt: sudo apt install cron-apt

  • Інші способи обійти це.

Рекомендується використовувати без нагляду оновлення та виправляти пакет, оскільки він найкраще підходить для цієї мети. Cron-apt - ваш другий найкращий варіант, оскільки він також розроблений для подібних цілей. Я не впевнений, що може автоматично перезавантажити вашу систему після оновлення ядра. Без уваги оновлення зазвичай має такий варіант, але я не впевнений, що він працює з виправленням вище.

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