Я прочитал здесь , как включить автоматическое автоматическое обновление для Google Chrome. Тем не менее, у меня есть другие репозитории, такие как spotify, docky и другие, для которых я хотел бы включить автоматическое обновление.
Я пытаюсь сделать это в моей системе Ubuntu 10.04. Но этот вопрос относится ко всем версиям Ubuntu. У меня установлен пакет автоматических обновлений .
Как я могу это сделать?
Сначала установите gksu
:
sudo apt-get install gksu
Самый простой способ включения автоматических обновлений для ваша система должна отредактировать файл 50unattended-upgradedes
внутри /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, которые вы хотели бы обновить, вам необходимо добавить в файл origin и архив . Чтобы узнать, что это за 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.
Источник очевиден ( Источник: Google, Inc.
), и архив будет тем, что находится под строкой Suite ( Suite: стабильный
).
Если отсутствует Origin
или Suite
, то они будут пустой строкой. Но обратите внимание, что если оба отсутствуют, то, вероятно, будет невозможно использовать этот источник с автоматическими обновлениями без включения других источников с той же проблемой.
После того, как вы отметили эти 2 строки, вам необходимо отредактировать 50unattended-upgradedes
и добавьте строки в этом формате «
для этого примера «Google \, Inc.:stable» ;
.
Происхождение Google Chrome довольно сложно, потому что в нем есть пробел, конечная точка и запятая, но большинство файлов Release будет легко читать.
Другой пример, Источник JS узла указывает источник ( Источник узла
), но не архив; так что вы можете сопоставить его с "Источник узла:";
.
Разрешенное происхождение сопоставляется с использованием подстановочных знаков в стиле оболочки (более конкретно, с помощью Python fnmatch () ) . Если вы достаточно осторожны, чтобы не включать конфликтующие источники, можно написать такие вещи, как «Узел *: *»;
.
Не забудьте сделать резервную копию ваших 50unattended-upgrade
перед его редактированием, сделайте это с помощью sudo cp /etc/apt/apt.conf.d/50unattended-upgrades /etc/apt/apt.conf.d/50unattended-upgrades.bak
.
Для проверки изменений, внесенных в файл, вы можете использовать sudo unattended-upgradedes
с параметрами - пробный запуск
и - отладка
.
] - пробный запуск
запустит цикл автоматических обновлений, за исключением того, что на самом деле они не будут устанавливать обновления, а только проверить и убедиться, что все в порядке.
- debug
включит подробный режим.
Вы всегда можете проверить журналы для автоматических обновлений
по адресу /var/log/unattended-upgrades/unattended-upgrades.log
.
Вы можете изменить конфигурацию автоматических обновлений отредактировав файл / etc / ap t / apt.conf.d / 10periodic
, параметры конфигурации находятся в заголовке сценария /etc/cron.daily/apt
. Прочтите их, чтобы настроить частоту автоматических обновлений.
Автоматический подход к ответу @Bruno Pereira: (Если вы считаете, что ответ полезен, то, пожалуйста, посмотрите на звездочку github repo.)
Ссылка на код: https://github.com/abhigenie92/unattended_upgrades_repos
Проверка репозиториев для добавления:
$ python automatic_upgrade.py.
Добавить репозиторий:
"Ubuntu:xenial";
"LP-PPA-kubuntu-ppa-backports:xenial";
"LP-PPA-tuxonice:xenial";
"LP-PPA-webupd8team-sublime-text-3:xenial"; "LP-PPA-webupd8team-sublime-text-3:xenial";
Пропускаемые файлы по причине отсутствия их происхождения или набора. Или происхождение - url:
packagecloud.io_slacktechnologies_slack_debian_dists_jessie_InRelease
tiliado.eu_nuvolaplayer_repository_deb_dists_xenial_InRelease
Теперь отредактируйте /etc/apt/apt.conf.d/50unattended-upgrades
, чтобы включить их:
// Автоматически обновлять пакеты из этих пар (origin:archive).
Без присмотра-обновление::Разрешенные-Оригины {
"${distro_id}:${distro_codename}-безопасность";
"${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"; "LP-PPA-webupd8team-sublime-text-3:xenial";
};
....
....
Проверьте, включены ли они:
$ sudo unattended-upgrade --dry-run --debug
Первоначальные пакеты в черном списке:
Первоначальные пакеты, занесенные в белый список:
Запуск автоматического скрипта обновления
Допустимое происхождение: ['o=Убунту,a=xenial-security', 'o=Убунту,a=xenial-updates', 'o=Убунту,a=xenial-proposed', 'o=Убунту,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']
пкгс, которые выглядят так, как будто их нужно модернизировать:
Получил 0 B в 0s (0 B/s)
fetch.run() результат: 0
чёрный список: []
Белый список: []
Не найдено ни одного пакета, который можно было бы обновить без присмотра, ни одного автоудаленного пакета.
Редактирование /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
. Cron запускает /etc/cron.daily
в 6.25 утра (см. / etc / crontab
)
Anacron запускается из выскочки? и он сработает /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 -обновления
.