Wie überprüfe ich nur Sicherheitsupdates über die Befehlszeile?

16

Gibt es eine Möglichkeit, die Verfügbarkeit von Sicherheitsupdates schnell über die Befehlszeile zu überprüfen ?

Auf meinem 12.04 System läuft apt-get updateFetches 20 MB Daten über verfügbare Pakete jedes Mal wenn ich führen Sie es, viele Repositorys auf dem Weg zu treffen. Dann kann ich jede der hier beschriebenen Methoden verwenden , um das Update tatsächlich durchzuführen.

Meine Frage bezieht sich nur auf das Erkennen der Verfügbarkeit von Sicherheitsupdates (dh das Ausführen des eigentlichen Upgrades mit apt-get / aptitude / etc): Gibt es eine schnelle Überprüfung, die über die Befehlszeile durchgeführt werden kann, die eine Ja-Nein-Antwort auf die Frage gibt ? frage "sind sicherheitsupdates verfügbar?" Ich möchte das ausführen, bevor ich das ausführliche apt-get update+ eigentliche Upgrade durchführe.

Ich glaube, ich muss nicht jeden Tag 20 MB Daten herunterladen, um die Antwort darauf zu erfahren.

Laramichaels
quelle
Sie meinen, dass die apt-get update20 MB Paket-Metadaten abrufen?
Jeremy Kerr
@JeremyKerr: Ja, wenn Sie sich auf dem Hauptserver (archive / us.archive) befinden, weil die Paketlisten alle halbe Stunde aktualisiert werden. Auf AU gibt es ein oder zwei lange Threads von international / low-speed Benutzer, die darüber sehr enttäuscht sind.
ish
@izx: Interessant, habe gerade einen Test mit apt-get updateeinem australischen Spiegel durchgeführt (ich bin in .au); Insgesamt wurden 1,3 MB heruntergeladen.
Jeremy Kerr

Antworten:

11

Meine Frage bezieht sich nur auf das Erkennen der Verfügbarkeit von Sicherheitsupdates

Ja, das ist mit dem Vorbehalt machbar, dass der Normalbetrieb apt-get updateeine vollständige Aktualisierung durchführt, wenn Sie ihn das nächste Mal ausführen (20 MB bedeutet, dass dies sowieso der Fall ist).

  • sudo sh -c 'grep precise-security /etc/apt/sources.list > /etc/apt/secsrc.list

  • Wenn Sie dann Folgendes ausführen, werden Sie feststellen, ob Sicherheitsupdates verfügbar sind ( Beispielausgabe ):

    sudo sh -c 'apt-get -o Dir :: Etc :: sourcelist = "secsrc.list" \
    -o Dir :: Etc :: sourceparts = "-" update && \
    apt-get --assume-no upgrade
    
  • Hiermit wird festgelegt apt-get, dass die Liste der speziellen Quellen nur für Sicherheitszwecke vorübergehend verwendet werden soll. Anschließend wird sie ausgeführt upgradeund antwortet automatisch mit Nein.

  • Wenn es welche gibt, führen Sie das richtige aus apt-get update(wodurch eine vollständige Aktualisierung durchgeführt wird) und führen Sie dann ein Upgrade durch.

  • Sie können das obige ein Bash-Skript mit einer einfachen Überprüfung des Grep / Exit-Codes am Ende machen, wenn Sie keine Lust haben, die Ausgabe von apt-get zu analysieren :)

ish
quelle
genau das habe ich gesucht, vielen dank! :) eine kurze frage: meine /etc/apt/secsrc.list-datei enthält keinen verweis auf das 'partners'-repository (nur auf' main restricted ',' universe 'und' multiverse '), werde ich trotzdem über Sicherheitsupdates für die Pakete in diesem Repository informiert?
Laramichaels
@laramichaels, das Partner- Repository enthält nur fünfzehn Pakete , und dies sind im Grunde genommen proprietäre Binärdateien, die in einer .deb- Datei verpackt sind. Inkrementelle "Sicherheits" -Updates werden für diese nicht veröffentlicht, und ich stelle mir vor, dass sogar regelmäßige Updates selten sind (denken Sie an Adobe Reader). Ich füge nur das eigentliche Repository ( deb http://archive.canonical.com/ubuntu precise partner) hinzu, um secsrc.listdie winzige Größe (5 KB) der Partner-Aktualisierungsdatei zu erhalten.
ish
@laramichaels, ich habe auch eine detailliertere Antwort auf Ihre vorherige Frage zum Aspekt der Partnersicherheitsupdates hinzugefügt . Die akzeptierte Antwort war IMO fehlerhaft. Schauen Sie also bitte nach, wenn Sie einen freien Moment haben, und akzeptieren Sie meinen, wenn Sie der Meinung sind, dass er besser ist.
ish
1
Wofür ist das Stück? -o Dir::Etc::sourceparts="-"
ChocoDeveloper
2

Dies ist möglicherweise nicht genau das, was die Frage stellt. Wenn Sie jedoch bereits ausgeführt haben apt update, können Sie die verfügbaren Sicherheitsupdates anzeigen, indem Sie Folgendes verwenden:

sudo apt list --upgradable | grep -e "-security"

das gibt dir so etwas wie:

libssl1.0.0/xenial-updates,xenial-security 1.0.2g-1ubuntu4.9 i386 [upgradable from: 1.0.2g-1ubuntu4.8]
openssl/xenial-updates,xenial-security 1.0.2g-1ubuntu4.9 i386 [upgradable from: 1.0.2g-1ubuntu4.8]
Steve
quelle