Как включить автоматическое автоматическое обновление для любого хранилища?

Я прочитал здесь , как включить автоматическое автоматическое обновление для Google Chrome. Тем не менее, у меня есть другие репозитории, такие как spotify, docky и другие, для которых я хотел бы включить автоматическое обновление.

Я пытаюсь сделать это в моей системе Ubuntu 10.04. Но этот вопрос относится ко всем версиям Ubuntu. У меня установлен пакет автоматических обновлений .

Как я могу это сделать?

48
задан 13 April 2017 в 15:23

4 ответа

Сначала установите 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 . Прочтите их, чтобы настроить частоту автоматических обновлений.

72
ответ дан 13 April 2017 в 15:23

Автоматический подход к ответу @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
    чёрный список: []
    Белый список: []
    Не найдено ни одного пакета, который можно было бы обновить без присмотра, ни одного автоудаленного пакета.
    
14
ответ дан 13 April 2017 в 15:23

Редактирование /etc/apt/apt.conf.d/50unattended-upgrades , добавьте следующее:

Unattended-Upgrade::Origins-Pattern {
        "origin=*";
};

Это позволит автоматическое обновление для всех пакетов.

7
ответ дан 13 April 2017 в 15:23

Есть инструкции для принудительного перезапуска, чтобы 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 -обновления .

3
ответ дан 13 April 2017 в 15:23

Другие вопросы по тегам:

Похожие вопросы: