it-swarm.com.de

Wie aktiviere ich automatische automatische Updates für ein Repository?

Ich lese hier wie man stille automatische Updates für Google Chrome aktiviert. Ich habe jedoch andere Repositorys wie spotify, docky und andere, für die ich stille Updates aktivieren möchte.

Ich versuche dies in meinem Ubuntu 10.04 System zu tun. Diese Frage gilt jedoch für alle Ubuntu-Versionen. Ich habe das Paket für unbeaufsichtigte Upgrades installiert.

Wie kann ich das machen?

41
nik90

Installieren Sie zuerst gksu:

Sudo apt-get install gksu

Die einfachste Möglichkeit, unbeaufsichtigte Updates für Ihr System zu aktivieren, besteht darin, die Datei 50unattended-upgrades in /etc/apt/apt.conf.d/ mit Ihrem bevorzugten Texteditor zu bearbeiten. Beispiel:

gksu gedit /etc/apt/apt.conf.d/50unattended-upgrades

Darin müssen Sie die kommentierten Abschnitte des Blocks Allowed Origins auskommentieren

Veränderung

Unattended-Upgrade::Allowed-Origins {
        "${distro_id} ${distro_codename}-security";
//      "${distro_id} ${distro_codename}-updates";
//      "${distro_id} ${distro_codename}-proposed";
//      "${distro_id} ${distro_codename}-backports";
};

zu

Unattended-Upgrade::Allowed-Origins {
        "${distro_id} ${distro_codename}-security";
        "${distro_id} ${distro_codename}-updates";
//      "${distro_id} ${distro_codename}-proposed";
//      "${distro_id} ${distro_codename}-backports";
};

Für Software, die sich nicht auf den Ubuntu-Repos befindet, die Sie aktualisieren möchten, müssen Sie ein Origin- und ein Archiv hinzufügen in die Datei. Um herauszufinden, was diese für Ihre PPAs sind, öffnen Sie den Ordner /var/lib/apt/lists/, der den Speicherbereich für Statusinformationen für jede Paketressource darstellt. Was Sie suchen, sind die Dateien, die mit Release im Namen enden.

Öffne eines mit deinem Texteditor, zB für 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.

Der Ursprung ist offensichtlich (Origin: Google, Inc.) und das Archiv wird das sein, was unter der Zeile Suite (Suite: stable) steht.

Fehlt entweder Origin oder Suite, handelt es sich um die leere Zeichenfolge. Beachten Sie jedoch, dass, wenn beide fehlen, es wahrscheinlich nicht möglich ist, diese Quelle mit unbeaufsichtigten Upgrades zu verwenden, ohne andere Quellen mit demselben Problem einzuschließen.

Nachdem Sie diese beiden Zeilen notiert haben, müssen Sie die Datei 50unattended-upgrades bearbeiten und die Zeilen im Format "<Origin>:<archive>"; für diese Beispiele hinzufügen, um "Google\, Inc.:stable"; zu verwenden.

Google Chrome's Origin ist etwas knifflig, da es ein Leerzeichen, einen Endpunkt und ein Komma enthält, aber die meisten Releases Dateien werden einfach zu lesen sein.

In einem anderen Beispiel gibt Node JS source einen Ursprung (Node Source) an, jedoch kein Archiv. So können Sie es mit "Node Source:"; abgleichen.

Zugelassene Ursprünge werden mit Platzhaltern im Shell-Stil verglichen (genauer gesagt mit Pythons fnmatch () ). Wenn Sie vorsichtig genug sind, um widersprüchliche Quellen nicht einzuschließen, können Sie Dinge wie "Node *:*"; schreiben.


Vergessen Sie nicht, eine Sicherungskopie Ihrer 50unattended-upgrades -Datei zu erstellen, bevor Sie sie bearbeiten. Führen Sie dies mit Sudo cp /etc/apt/apt.conf.d/50unattended-upgrades /etc/apt/apt.conf.d/50unattended-upgrades.bak aus.

Um die an der Datei vorgenommenen Änderungen zu testen, können Sie Sudo unattended-upgrades mit den Parametern --dry-run und --debug verwenden.

--dry-run führt einen unbeaufsichtigten Upgradezyklus durch, außer dass die Upgrades nicht wirklich installiert werden. Überprüfen Sie nur, ob alles in Ordnung ist.

--debug aktiviert den ausführlichen Modus.

Sie können die Protokolle immer auf unattended-upgrades unter /var/log/unattended-upgrades/unattended-upgrades.log überprüfen.


Sie können die Konfiguration der unbeaufsichtigten Upgrades ändern, indem Sie die Datei /etc/apt/apt.conf.d/10periodic bearbeiten. Die Optionen für die Konfiguration befinden sich im Skriptheader /etc/cron.daily/apt. Lesen Sie diese, um die Häufigkeit der unbeaufsichtigten Upgrades zu konfigurieren.

65
Bruno Pereira

Automatisierter Ansatz für die Antwort von @Bruno Pereira: (Wenn Sie die Antwort nützlich finden, sollten Sie das Github-Repo in der Hauptrolle spielen.)

Code Link: https://github.com/abhigenie92/unattended_upgrades_repos

  • Überprüfen Sie die Repositorys, um Folgendes hinzuzufügen:

    $ 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
    
  • Bearbeiten Sie nun /etc/apt/apt.conf.d/50unattended-upgrades, um sie einzuschließen:

    // 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";
    };
    ....
    ....
    
  • Überprüfen Sie, ob sie enthalten sind:

    $ 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
    
13
Abhishek Bhatia

Wenn Sie /etc/apt/apt.conf.d/50unattended-upgrades bearbeiten, fügen Sie Folgendes hinzu:

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

Dies ermöglicht unbeaufsichtigte Upgrades für alle Pakete.

5
Zachary West

Es gibt Anweisungen, um eine erneute Ausführung zu erzwingen, damit cron das automatische Update unter der folgenden Adresse startet: link . Das Verfahren zum Stoppen von Cron ist das folgende

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/*

und cron neu zu starten, damit das automatische Update jetzt (oder zumindest innerhalb weniger Minuten) erfolgt

Sudo service cron start
Sudo anacron -fn

Wie es funktioniert

Mehrere Dinge werden es zum Laufen bringen.

  • Es wird ausgelöst, wenn /etc/cron.daily von cron ausgeführt wird, insbesondere /etc/cron.daily/apt. Cron startet /etc/cron.daily um 6.25 Uhr (siehe /etc/crontab)

  • Anacron läuft von Anfang an? und es wird /etc/cron.daily nach 5 Minuten Betriebszeit ausgelöst (siehe /etc/anacrontab)

    Hinweis APT::Periodic::RandomSleep kann in /etc/apt/apt.conf.d/10periodic eingestellt werden, die Standardeinstellung ist jedoch 1800s (30 Minuten), sodass keine Aktualisierungen vor Ablauf von 30 Minuten nach /etc/cron.daily/apt erfolgen können.

Protokoll

Wenn es funktioniert, sollten Dinge in diesem Ordner angemeldet werden, /var/log/unattended-upgrades.

3
Eleanor Ellis