Wie kann in der CLI überprüft werden, ob alle 4 Wochen Aktualisierungen stattfinden, und diese automatisch installiert werden, ohne auf Softwarequellen zuzugreifen?

10

Ich habe eine Reihe von benutzerdefinierten Befehlen, die ich nach der Installation auf meinen Computern ausführe . Wie lasse ich Ubuntu alle 4 Wochen nach Updates suchen und installiere sie automatisch bei der Überprüfung?

Ich müsste dies über die Befehlszeile erledigen, damit ich es für normale Benutzer einrichten kann, wenn ich ihre Computer einrichte.

Mit dem ersten Befehl sucht der Update Manager alle 2 Wochen nach Updates, da diese nicht immer so häufig sind, und um die Bandbreite der Ubuntu-Server zu sparen.

Ich muss es auch so einstellen, dass Benutzer nicht klicken müssen, um Updates zu installieren, da es jedes Mal anstrengend ist, wenn ich einem Freund beim Einrichten eines Computers helfe.

Känguru
quelle

Antworten:

10

Aktivieren Sie zunächst automatische Updates wie folgt:

sudo apt-get install unattended-upgrades

Sie müssen dann die Konfiguration bearbeiten und eingeben

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

(Ersetzen Sie ihn nanodurch Ihren bevorzugten Texteditor, wenn Sie möchten)

Die Datei sieht folgendermaßen aus:

Unattended-Upgrade::Allowed-Origins {
        "Ubuntu maverick-security";
//      "Ubuntu maverick-updates";
};

Das //bedeutet, dass diese Zeile ein Kommentar ist und vom Programm nicht berücksichtigt wird. Entfernen Sie die Striche, um neben Sicherheitskorrekturen auch stabile Release-Updates einzuschließen. Ersetzen Sie außerdem maverickdie Version von Ubuntu, die Sie ausführen.

Bearbeiten Sie die /etc/apt/apt.conf.d/10periodicDatei mit einem Texteditor , um das Intervall festzulegen, in dem das System nach Updates sucht :

APT::Periodic::Update-Package-Lists "14";
APT::Periodic::Download-Upgradeable-Packages "14";
APT::Periodic::AutocleanInterval "14";
APT::Periodic::Unattended-Upgrade "14";

In diesem Beispiel wird das System alle zwei Wochen aktualisiert.

Eine ausführlichere Erklärung finden Sie unter Automatische Updates im Ubuntu-Serverhandbuch.


Beachten Sie, dass Papukaijas Antwort über das Intervall spricht, in dem der Update Manager-Dialog auf Ihrem Bildschirm angezeigt wird. Ich denke, das ist nicht das, was Sie nicht wollen, aber ich bin mir nicht sicher. :) :)

Stefano Palazzo
quelle
Dialoge müssen nicht angezeigt werden und werden nicht in einer Zeile angezeigt. Wenn ich in Softwarequellen 2 Wochen festgelegt habe, um sie zu überprüfen, ist es dann möglich, dass der Aktualisierungsdialog früher oder später angezeigt wird? Erforderlich ist, dass mit 1 Zeile eingerichtet werden kann, dass der Benutzer nicht einmal weiß, dass das System alle 4 Wochen aktualisiert wird, und dass er keine Updates sehen muss, die gefragt werden, und dass es automatisch gerade installiert wird. Ich muss das also nicht manuell mit der Maus in Softwarequellen einstellen.
Kangarooo
Ich bin mir nicht sicher, ob ich dich verstehe. Sie können die Update-Benachrichtigungen deaktivieren, indem Sie zu System → Einstellungen → Startanwendungen gehen und das Häkchen bei "Update Notifier" entfernen. Ist es das, was du meintest? Natürlich können Sie es auch auf "30" anstatt auf "14" Tage (oder einen beliebigen Betrag)
Stefano Palazzo
Und das geht auch mit einer Zeile? Wenn ja, ist das auch gut, wenn nicht - es ist nicht die Hauptsache, die ich wollte. Die Hauptsache ist, das Aufrufen der Einstellungen für Softwarequellen zu überwinden, um die Aktualisierungsprüfung zu ändern und was zu tun ist. Ich möchte alle 28 Tage eine Überprüfung durchführen und Updates installieren, ohne etwas im Terminal zu fragen, damit es schneller geht.
Kangarooo
Einzeiliger Befehl in meiner Antwort: apt-get update && apt-get upgrade -y
luri
@luri darum geht es in dieser Frage nicht
Stefano Palazzo
2

Wenn Sie damit meinen, alles "aktualisierbar" zu aktualisieren, dh ALLE Ihre Pakete zu aktualisieren, könnten Sie (innerhalb des Root-Cron) cronen, als alle 28 Tage ausgeführt apt-get update && apt-get upgrade -ywird.

Einige Menschen haben aufgrund einer restriktiven PATHEinstellung Probleme mit schlechten Jobs . Wenn Sie ein Problem haben, können Sie es ganz PATHam Anfang der crontab -eDatei definieren (wie in CronHowto vorgeschlagen ).

Um zu überprüfen, ob alles in Ordnung ist, würde ich die Ergebnisse wie folgt protokollieren:

root@PORTATIL:/var/log$ crontab -l
* * */2 * * /usr/share/myupdate.sh > /var/log/myupdate.log

myupdate.sh könnte so einfach sein:

#!/bin/bash
#Testing updates
echo "$(date) Crond myupdate sarting."
apt-get update -y
apt-get upgrade -y
echo "$(date)Crond myupdate finished."
luri
quelle
Das funktioniert bei mir nicht. Wenn ich meine Cron-Protokolle erhalte, aptitude -y safe-upgradebeschwere ich mich über die Notwendigkeit einer Steuerungs-Tty und dann über eine Reihe von Pfadfehlern. Vielleicht sollte ich eine Frage stellen ..
djeikyb
Haben Sie es innerhalb des Root-Cron eingestellt?
Luri
Ja. Es ist aufgrund verschiedener Pfadprobleme fehlgeschlagen, daher habe ich ein Skript unter / root / bin mit #! / Bin / bash und dem vollständigen Pfad zu apt-get erstellt. Es funktioniert besser, aber es wird immer noch nicht aktualisiert.
Djeikyb
Veröffentlichen Sie
Ich stellte eine separate Frage: askubuntu.com/q/23795/8515
djeikyb
1

Sie können das Intervall zwischen dem Ausführen des Update-Managers ändern, indem Sie den gconf-Editor öffnen (z. B. mit Alt + F2 und gconf-editor eingeben). Dann suchen /apps/update-notifier.

Das Intervall wird im Schlüssel definiert, regular_auto_launch_intervalwobei der Wert die Anzahl der Tage ist. Ich denke, dass diese Methode den nicht grafischen automatischen Updater (unbeaufsichtigte Upgrades) nicht beeinflusst.

Bitte beachten Sie, dass Ubuntu Sicherheitsupdates aufgrund eines Fehlers möglicherweise nicht automatisch installiert .

Papukaija
quelle
4
Dies ist die Befehlszeilenversion dieser Antwort: gconftool -s /apps/update-notifier/regular_auto_launch_interval --type int 7(wobei 7 das Intervall in Tagen ist)
Stefano Palazzo
Ich habe gerade überprüft, dass es bereits 7 war. Aber in Software-Quellen ist es 2 Wochen eingestellt. Vielleicht ist es woanders?
Kangarooo
0

Ich stelle gconftool -s /apps/update-notifier/regular_auto_launch_interval --type int 1und seine Eröffnung jeden Tag zeigt, dass ich keine Updates installiert habe. Wird es geöffnet, wenn keine neuen Updates verfügbar sind? Wenn Sie also alle 4 Wochen ein automatisches Update durchführen, wird dies nicht angezeigt? Wie kann man dann mit CLI alle 4 Wochen Updates automatisch installieren? Das ist, was ich will. Indem Sie nicht zu Softwarequellen gehen und dies mit der Maus tun. Und wenn dies möglich ist, kann es nicht länger als 2 Wochen dauern.

Känguru
quelle