Как включить автоматическое автоматическое обновление для любого хранилища?
Я читал здесь, как включить автоматическое автоматическое обновление для 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.dailycron, в частности/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,