Как включить автоматическое автоматическое обновление для любого хранилища?
Я читал здесь, как включить автоматическое автоматическое обновление для Google Chrome. Тем не менее, у меня есть другие репозитории, такие как spotify, docky и другие, для которых я хотел бы включить автоматическое обновление.
Я пытаюсь сделать это в моей системе Ubuntu 10.04. Но этот вопрос относится ко всем версиям Ubuntu. У меня установлен пакет автоматических обновлений.
Как я могу это сделать?
4 ответа
Сначала установите gksu
:
sudo apt-get install gksu
Самым простым включением автоматических обновлений для вашей системы является редактирование файла. 50unattended-upgrades
внутри /etc/apt/apt.conf.d/
с вашим любимым текстовым редактором, например:
gksu gedit /etc/apt/apt.conf.d/50unattended-upgrades
В нем вам нужно закомментировать закомментированные разделы блока Allowed Origins
+ Изменить
Unattended-Upgrade::Allowed-Origins {
"${distro_id} ${distro_codename}-security";
// "${distro_id} ${distro_codename}-updates";
// "${distro_id} ${distro_codename}-proposed";
// "${distro_id} ${distro_codename}-backports";
};
в
Unattended-Upgrade::Allowed-Origins {
"${distro_id} ${distro_codename}-security";
"${distro_id} ${distro_codename}-updates";
// "${distro_id} ${distro_codename}-proposed";
// "${distro_id} ${distro_codename}-backports";
};
Для программного обеспечения, которое отсутствует в репозиториях Ubuntu, которое вы хотите обновить, вам нужно добавить источник и архив в файл. Чтобы узнать, что это за ваши PPA, откройте папку /var/lib/apt/lists/
это область хранения информации о состоянии для каждого ресурса пакета. То, что вы ищете, это файлы, которые заканчиваются на Release в названии.
Откройте его в текстовом редакторе, например, для Google Chrome:
gedit /var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_Release
Origin: Google, Inc.
Label: Google
Suite: stable
Codename: stable
Version: 1.0
Date: Thu, 17 Nov 2011 19:09:01 +0000
Architectures: i386 amd64
Components: main
Description: Google chrome-linux repository.
Происхождение очевидно (Origin: Google, Inc.
) и в архиве будет все, что есть под строкой Suite (Suite: stable
).
Если либо Origin
или же Suite
отсутствует, то они будут пустой строкой. Но обратите внимание, что если оба отсутствуют, то, вероятно, будет невозможно использовать этот источник с автоматическими обновлениями, не включая другие источники с той же проблемой.
После того, как вы отметили эти 2 строки, вам нужно отредактировать 50unattended-upgrades
файл и добавить строки, используя этот формат "<origin>:<archive>";
ради этого примера "Google\, Inc.:stable";
,
Происхождение Google Chrome довольно сложно, поскольку в нем есть пробел, конечная точка и запятая, но большинство файлов Release будет легко читаться.
В качестве другого примера, источник JS Node указывает источник (Node Source
) но не архив; так что вы можете сопоставить его с "Node Source:";
,
Allowed Origins сопоставляется с использованием подстановочных знаков в стиле оболочки (более конкретно, с помощью функции Python fnmatch ()). Если вы достаточно осторожны, чтобы не включать конфликтующие источники, можно написать что-то вроде "Node *:*";
,
Не забудьте сделать резервную копию вашего 50unattended-upgrades
файл перед редактированием, сделайте это с sudo cp /etc/apt/apt.conf.d/50unattended-upgrades /etc/apt/apt.conf.d/50unattended-upgrades.bak
,
Для проверки изменений, внесенных в файл, вы можете использовать sudo unattended-upgrades
с параметрами --dry-run
а также --debug
,
--dry-run
будет запускать цикл автоматических обновлений, за исключением того, что он не будет устанавливать обновления, только проверьте и убедитесь, что все в порядке.
--debug
включит подробный режим.
Вы всегда можете проверить журналы для unattended-upgrades
в /var/log/unattended-upgrades/unattended-upgrades.log
,
Вы можете изменить конфигурацию автоматических обновлений, отредактировав файл /etc/apt/apt.conf.d/10periodic
параметры для настройки находятся в /etc/cron.daily/apt
Заголовок сценария. Прочитайте их, чтобы настроить частоту автоматических обновлений.
Автоматизированный подход к ответу @Bruno Pereira:(Пожалуйста, подумайте о роли github-репо, если вы найдете ответ полезным.)
Ссылка на код: https://github.com/abhigenie92/unattended_upgrades_repos
Проверьте репозитории, чтобы добавить:
$ python automatic_upgrade.py Add repos: "Ubuntu:xenial"; "LP-PPA-kubuntu-ppa-backports:xenial"; "LP-PPA-tuxonice:xenial"; "LP-PPA-webupd8team-sublime-text-3:xenial"; Skipping files due to not present origin or suite. Or origin being a url.: packagecloud.io_slacktechnologies_slack_debian_dists_jessie_InRelease tiliado.eu_nuvolaplayer_repository_deb_dists_xenial_InRelease
Сейчас редактирую
/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"; "Ubuntu:xenial"; "LP-PPA-kubuntu-ppa-backports:xenial"; "LP-PPA-tuxonice:xenial"; "LP-PPA-webupd8team-sublime-text-3:xenial"; }; .... ....
Проверьте, включены ли они:
$ sudo unattended-upgrade --dry-run --debug Initial blacklisted packages: Initial whitelisted packages: Starting unattended upgrades script Allowed origins are: ['o=Ubuntu,a=xenial-security', 'o=Ubuntu,a=xenial-updates', 'o=Ubuntu,a=xenial-proposed', 'o=Ubuntu,a=xenial-backports', 'o=Ubuntu,a=xenial', 'o=LP-PPA-kubuntu-ppa-backports,a=xenial', 'o=LP-PPA-tuxonice,a=xenial', 'o=LP-PPA-webupd8team-sublime-text-3,a=xenial'] pkgs that look like they should be upgraded: Fetched 0 B in 0s (0 B/s) fetch.run() result: 0 blacklist: [] whitelist: [] No packages found that can be upgraded unattended and no pending auto-removals
Редактирование /etc/apt/apt.conf.d/50unattended-upgrades
добавьте следующее:
Unattended-Upgrade::Origins-Pattern {
"origin=*";
};
Это позволит автоматические обновления для всех пакетов.
Инструкции по принудительному повторному запуску для автоматического запуска cron по следующей ссылке. Процедура остановки cron заключается в следующем
sudo service anacron stop
sudo service cron stop
sudo rm -rf /var/run/unattend* /var/run/cron* /var/run/anacron*
sudo rm -rf /var/lib/apt/periodic/*
и перезапустить cron, чтобы сделать автоматическое обновление сейчас (или, по крайней мере, в течение нескольких минут)
sudo service cron start
sudo anacron -fn
Как это устроено
Несколько вещей приведут его в действие.
Он уволен с работы
/etc/cron.daily
cron, в частности/etc/cron.daily/apt
, Крон бежит/etc/cron.daily
в 6.25 (см./etc/crontab
)Анакрон бежит от выскочки? и оно сработает
/etc/cron.daily
после 5 минут безотказной работы (см./etc/anacrontab
)Заметка
APT::Periodic::RandomSleep
может быть установлен в/etc/apt/apt.conf.d/10periodic
, но по умолчанию - 1800 секунд (30 минут), поэтому обновления могут происходить только через 30 минут после/etc/cron.daily/apt
пробеги.
Журнал
Если это работает, вещи должны войти в эту папку, /var/log/unattended-upgrades
,