Wie kann ich nur Sicherheitsupdates über die Befehlszeile installieren?


Zur akzeptierten Antwort gehen


sudo apt-get upgrade Installiert alle Updates, nicht nur Sicherheitsupdates. Ich weiß, dass ich mit Update Manager nur wichtige Sicherheitsupdates auswählen kann. Gibt es eine Möglichkeit, dies über die Befehlszeile zu tun?


336





2010-07-28




Anzahl der Antworten: 9


Das Paket für 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:

 sudo unattended-upgrade -d --dry-run
sudo unattended-upgrade -d
 

Wenn Sie es stattdessen ruhig ausführen möchten:

 sudo unattended-upgrade
 

HINWEIS: Wenn Sie das unbeaufsichtigte Upgrade aufrufen, lassen Sie das "s" am Ende stehen.

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

 sudo apt-get install unattended-upgrades
 

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


313


2010-07-29

Einige Tipps zum Verwalten von Updates

Dies gilt sowohl für Debian als auch für Ubuntu. Genauere Anweisungen für Ubuntu folgen.

  • 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"
     
  • Installieren Sie nur Sicherheitsupdates

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

Anmerkungen:

  • Manchmal zeigt Ubuntu Sicherheitsupdates an, als stammten sie aus dem $ release-updates-Repository. Dies ist, wie mir gesagt wurde, so, weil Ubuntu-Entwickler Sicherheitsupdates auch in das $ release-updates-Repository verschieben, um deren Verfügbarkeit zu beschleunigen.

    In diesem Fall können Sie folgendermaßen vorgehen, um nur Sicherheitsupdates anzuzeigen:

     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 $2'}
     
  • Überprüfen Sie, welche Dienste nach Paketaktualisierungen neu gestartet werden müssen. Stellen Sie im Voraus fest, welche Pakete aktualisiert werden sollen, und planen Sie die Neustarts / Neustarts. Das Problem hierbei ist, dass, wenn Sie einen Dienst nicht neu starten, möglicherweise noch eine ältere Version einer Bibliothek verwendet wird (häufigster Grund), die vor der Installation eines neuen Pakets in den Speicher geladen wurde, um eine Sicherheitsanfälligkeit zu beheben, oder was auch immer.

     checkrestart -v
     

    Beachten Sie jedoch, dass checkrestart möglicherweise Prozesse aufgelistet sind, die nicht unbedingt neu gestartet werden müssen. Beispielsweise kann der PostgreSQL-Dienst eine bereits gelöschte xlog-Datei im Speicher behalten, was kein gültiger Grund für einen Neustart des Dienstes ist.

    Daher ist das folgende kleine Bash-Skript, das ich schamlos von https://locallost.net/?p=233 gestohlen habe, eine zuverlässigere Möglichkeit, dies mit Standard-Utils zu überprüfenhttps://locallost.net/%3Fp%3D233

    Es prüft, ob laufende Prozesse auf einem System noch gelöschte Bibliotheken verwenden, indem Kopien dieser 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
     

117


2012-11-16

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 wird ein einfaches apt-get upgrade Upgrade nur für alle Sicherheitsupdates durchführen.

Warum (und wie) das funktioniert: Die Voreinstellungsdatei fixiert alle Pakete von der Ubuntu-Distribution auf Priorität 50, was sie weniger wünschenswert macht als bereits installierte Pakete. Dateien, die aus dem Sicherheitsrepository stammen, erhalten die Standardpriorität (500), sodass sie für die Installation berücksichtigt werden. Dies bedeutet, dass nur Pakete Sicherheitsupdates sind, die als wünschenswerter als die derzeit installierten angesehen werden. Weitere Informationen zum Fixieren finden Sie auf der Hilfeseite apt_preferences .

Sie können vorübergehend eine bestimmte Verteilung von Aktualisierungen mit der Förderung der --target-release Option , die mit arbeitet apt-get und aptitude (zumindest) , die Sie so bestimmte Versionen Stift können , dass sie für das Upgrade berechtigt sind.

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

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

Dadurch wird apt veranlasst, nach der Voreinstellungsdatei von einem nicht standardmäßigen Speicherort aus zu suchen.

Die als Beispiel angegebene Einstellungsdatei gilt nicht für Repositorys von Drittanbietern. Wenn Sie diese ebenfalls anheften möchten, können Sie apt-cache policy die erforderlichen Schlüssel zum Anheften einfach ermitteln.


46


2010-07-29

Folgendes wird in Ubuntu 14.04 LTS bestätigt.

Verwenden Sie das unattended-upgrade Paket.

Schauen Sie sich die Datei an /etc/apt/apt.conf.d/50unattended-upgrades . Es sollte oben einen Abschnitt geben, der lautet:

 // 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, dass standardmäßig nur unbeaufsichtigte Upgrades für Sicherheitspakete zulässig sind.

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

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

Dadurch werden einmal täglich automatische unbeaufsichtigte Sicherheitsupgrades ausgeführt.

Nun läuft manuell: sudo unattended-upgrade .

Um zu testen , als Trockenlauf, ohne etwas zu tun: sudo unattended-upgrade --dry-run .

Quelle: https://help.ubuntu.com/14.04/serverguide/automatic-updates.html


12


2016-10-03

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 Aktualisierungen im Sicherheits-Repository finden und anwenden ...


5


2010-07-29

  • apt-get update : Lies einfach die Einträge im Repository - entsprechend der vorhandenen Liste. Muss überprü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 vorgenommen.

3


2013-08-02

Unter Debians verwende ich diesen Befehl nur, um Sicherheitsupdates durchzuführen:

 apt-get install -y --only-upgrade $( apt-get --just-print upgrade | awk 'tolower($4) ~ /.*security.*/ || tolower($5) ~ /.*security.*/ {print $2}' | sort | uniq )
 

2


2019-01-18

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

 Check and adjust /etc/apt/apt.conf.d/50unattended-upgrade. 
Did you replace 'karmic' with the code name of your Ubuntu?
 

Keine Antwort, ob das aber geklappt hat.


0


2010-07-28

Hier ist ein Skript, mit dem dies auf verschiedene Arten erreicht wird:

 #!/usr/bin/env bash
set -e

# List upgradable packages
apt-get update
apt list --upgradable 2>/dev/null
# List security upgrades
test "$(apt-get upgrade -s -y)" && (apt-get upgrade -s -y)
# List upgradable apt packages then upgrade
apt-get update && apt-get upgrade -y  -V | grep '=>' | awk '{print$1}' && test "$(apt-get upgrade -y)"
 

0


2019-07-22