Wie kann ich nur Sicherheitsupdates über die Befehlszeile installieren?

296

sudo apt-get upgrade installiert alle Updates, nicht nur Sicherheitsupdates. Ich weiß, dass ich Update Manager nur zur Auswahl wichtiger Sicherheitsupdates verwenden kann, aber gibt es eine Möglichkeit, dies über die Befehlszeile auszuführen?

    
mac9416 29.07.2010, 00:50

7 Antworten

274

Das Paket unbeaufsichtigte Upgrades bietet Funktionen zum automatischen Installieren von Sicherheitsupdates.

Sie können dies verwenden, aber anstatt den automatischen Teil zu konfigurieren, können Sie ihn manuell aufrufen. In diesem Fall sollte Folgendes leise geschehen:

sudo unattended-upgrade

oder mehr ausführliche Version, um zu kontrollieren, wie es geht

sudo unattended-upgrade -d

HINWEIS: Wenn Sie ein unbeaufsichtigtes Upgrade anrufen, verlassen Sie das "s" am Ende.

Dies setzt voraus, dass das Paket standardmäßig installiert ist, was wahrscheinlich der Fall ist. Wenn nicht, machen Sie einfach:

sudo apt-get install unattended-upgrades

Siehe auch /usr/share/doc/unattended-upgrades/README.md .

    
blueyed 29.07.2010, 19:28
109

Einige Tipps zum Verwalten von Updates

Dies gilt sowohl für Debian als auch für Ubuntu, es folgen jedoch genauere Anweisungen für Ubuntu.

  • Nur Sicherheitsupdates anzeigen:

    apt-get -s dist-upgrade |grep "^Inst" |grep -i securi 
    

    oder

    sudo unattended-upgrade --dry-run -d
    

    oder

    /usr/lib/update-notifier/apt-check -p
    
  • Alle aktualisierbaren Pakete anzeigen

    apt-get -s dist-upgrade | grep "^Inst"
    
  • Nur Sicherheitsupdates installieren

    apt-get -s dist-upgrade | grep "^Inst" | 
        grep -i securi | awk -F " " {'print '} | 
        xargs apt-get install
    

Hinweise:

  • Manchmal zeigt Ubuntu Sicherheitsupdates als ob sie aus dem $ release-updates Repository stammen. Dies ist so, heißt es, weil Ubuntu-Entwickler auch Sicherheitsupdates in das $ release-updates-Repository stecken, um ihre Verfügbarkeit zu beschleunigen.

    In diesem Fall können Sie nur Sicherheitsupdates anzeigen:

    sudo sh -c 'grep ^deb /etc/apt/sources.list | 
        grep security > /etc/apt/sources.security.only.list'
    

    und

    apt-get -s dist-upgrade -o Dir::Etc::SourceList=/etc/apt/sources.security.only.list -o Dir::Etc::SourceParts=/dev/null  | 
        grep "^Inst" | awk -F " " {'print '}
    
  • Prüfen Sie, welche Dienste nach Paketaktualisierungen neu gestartet werden müssen. Stellen Sie fest, welche Pakete Sie aktualisieren möchten, und legen Sie einen Neustart / Neustart fest. Das Problem hierbei ist, dass ein Neustart eines Dienstes möglicherweise immer noch eine ältere Version einer Bibliothek verwendet (häufigster Grund), die vor der Installation eines neuen Pakets in den Speicher geladen wurde, wodurch eine Sicherheitsanfälligkeit behoben wird.

    checkrestart -v
    

    Beachten Sie jedoch, dass checkrestart möglicherweise Prozesse auflistet, die nicht unbedingt neu gestartet werden müssen. Beispielsweise speichert der PostgreSQL-Dienst möglicherweise eine bereits gelöschte xlog-Datei im Speicher, was keinen gültigen Grund für einen Neustart des Dienstes darstellt.

    Eine andere, zuverlässigere Methode, dies mit Standard-Utils zu überprüfen, ist das folgende kleine Bash-Skript, das ich schamlos aus link

    Überprüft, ob laufende Prozesse auf einem System weiterhin gelöschte Bibliotheken verwenden, indem Kopien von diesen im aktiven Speicher aufbewahrt werden.

    ps xh -o pid |
    while read PROCID; do
           grep 'so.* (deleted)$' /proc/$PROCID/maps 2> /dev/null
           if [ $? -eq 0 ]; then
                   CMDLINE=$(sed -e 's/\x00/ /g' < /proc/$PROCID/cmdline)
                   echo -e "\tPID $PROCID $CMDLINE\n"
           fi
    done
    
ILIV 16.11.2012 12:35
46

Ersetzen Sie /etc/apt/preferences durch Folgendes:

Package: *
Pin: release a=lucid-security
Pin-Priority: 500

Package: *
Pin: release o=Ubuntu
Pin-Priority: 50

Jetzt aktualisiert ein einfaches apt-get upgrade nur alle Sicherheitsupdates.

Warum (und wie) dies funktioniert: In der Voreinstellungsdatei werden alle Pakete von Ubuntu-Distribution an Priorität 50 angehängt, wodurch sie weniger wünschenswert sind als bereits installierte Pakete. Dateien, die aus dem Sicherheits-Repository stammen, erhalten die Standardpriorität (500), sodass sie für die Installation in Betracht gezogen werden. Dies bedeutet, dass Sicherheitsupdates nur Pakete sind, die als wünschenswerter angesehen werden als aktuell installierte. Weitere Informationen zum Fixieren finden Sie in der apt_preferences-Manpage .

Mit der Option --target-release , die mindestens mit apt-get und aptitude zusammenarbeitet, können Sie eine bestimmte Distribution vorübergehend für Updates heraufstufen. Dadurch können Sie bestimmte Releases festlegen, sodass sie für ein Upgrade berechtigt sind.

Wenn Sie dies nur für Skripts verwenden möchten und nicht für das System als Standard festlegen, können Sie die Regeln an einem anderen Ort ablegen und stattdessen Folgendes verwenden:

apt-get -o Dir::Etc::Preferences=/path/to/preferences_file upgrade

Dadurch wird apt von einem nicht standardmäßigen Speicherort nach der Voreinstellungsdatei gesucht.

Die als Beispiel angegebene Voreinstellungsdatei gilt nicht für Repositorys von Drittanbietern. Wenn Sie auch diese fixieren möchten, können Sie apt-cache policy verwenden, um auf einfache Weise die für das Fixieren erforderlichen Schlüssel zu ermitteln.

    
Ressu 29.07.2010 06:12
9

Folgendes wird in Ubuntu 14.04 LTS bestätigt.

Verwenden Sie das Paket unattended-upgrade .

Schauen Sie sich die Datei /etc/apt/apt.conf.d/50unattended-upgrades an. Oben sollte es einen Abschnitt geben:

// 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";
};

Beachten Sie, wie konfiguriert wurde, um standardmäßig nur unbeaufsichtigte Aktualisierungen für Sicherheitspakete zuzulassen.

Ändern Sie die Datei /etc/apt/apt.conf.d/10periodic ähnlich:

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

Hiermit werden einmal pro Tag automatische, unbeaufsichtigte Sicherheitsaktualisierungen durchgeführt.

Jetzt manuell ausführen: sudo unattended-upgrade .

So testen Sie als Testlauf, ohne etwas zu tun: sudo unattended-upgrade --dry-run .

Quelle: link

    
vcardillo 03.10.2016 19:18
5

Obwohl es ziemlich hässlich ist, können Sie alle Repositorys außer dem Sicherheits-Repository deaktivieren und dann Folgendes tun:

sudo apt-get update && sudo apt-get upgrade

Ich habe es nicht getestet, aber theoretisch würde es nur Updates im Sicherheits-Repo finden und sie anwenden ...

    
Stephen RC 29.07.2010 02:00
3
  • apt-get update : Lesen Sie einfach die Einträge im Repository - entsprechend der vorhandenen Liste. Erforderlich, um zu prüfen, was neu ist.
  • apt-get upgrade : Alle Updates für installierte Pakete ohne Kernelmodule. Kein Release-Update
  • apt-get dist-upgrade : Alle Updates für installierte Pakete auch mit Kernelmodulen. Kein Release-Update
  • apt-get mit Parameter -s : Nur Test, keine Änderungen durchgeführt.
fuser 02.08.2013 11:49
0

Ich kann weder in apt-get noch in aptitude eine Option finden, jedoch hatte jemand die gleiche Frage zu SuperUser. Die einzige Antwort lautet:

  

/etc/apt/apt.conf.d/50unattended-upgrade überprüfen und anpassen. Haben Sie "karmic" durch den Codenamen Ihres Ubuntu ersetzt?

Keine Antwort, ob dies jedoch funktioniert hat.

    
Ross 29.07.2010 01:04