Ist apt-get upgrade ein gefährlicher Befehl?

8

Wenn ich apt-get update und apt-get upgrade verwende, sollten einige Pakete in der neuesten Version installiert sein, wie unten:

The following packages will be upgraded:
  accountsservice apparmor apport apt apt-transport-https apt-utils binutils
  cloud-init cpp-4.8 dpkg fuse g++-4.8 gcc-4.8 gcc-4.8-base gdisk gnupg gpgv
  grub-common grub-legacy-ec2 grub-pc grub-pc-bin grub2-common initscripts
  isc-dhcp-client isc-dhcp-common libaccountsservice0 libapparmor-perl
  libapparmor1 libapt-inst1.5 libapt-pkg4.12 libasan0 libatomic1 libbsd0
  libcurl3-gnutls libdrm2 libedit2 libfuse2 libgcc-4.8-dev libgd3 libgomp1
  libitm1 libjson-c2 libjson0 libnuma1 libpam-systemd libpolkit-agent-1-0
  libpolkit-backend-1-0 libpolkit-gobject-1-0 libquadmath0 libstdc++-4.8-dev
  libstdc++6 libsystemd-daemon0 libsystemd-login0 libtsan0 libudev1 libxext6
  linux-libc-dev ntpdate openssl overlayroot patch policykit-1 ppp
  python-urllib3 python3-apport python3-problem-report python3-update-manager
  rsyslog systemd-services sysv-rc sysvinit-utils tcpdump tzdata udev
  update-manager-core
75 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.

Wenn ich nicht jedes dieser Pakete kenne, was passiert, wenn es in der neuesten Version aktualisiert wird. Ich sollte diesen Befehl nicht ausführen (apt-get upgrade).

Zum Beispiel:

Diese PHP-Version ist vor dem Upgrade

yzxu@ubuntu:/tmp/git-2.1.2$ php --version
PHP 5.6.6-1+deb.sury.org~precise+1 (cli) 
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies

und nach dem Upgrade:

yzxu@ubuntu:/tmp/git-2.1.2$ php --version
PHP 5.6.10-1+deb.sury.org~precise+1 (cli) 
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies

Die PHP-Version wurde geändert. Und wenn ich nicht wusste, was in zwei Versionen geändert wurde, sollte ich sie aktualisieren? Wird dies das Produkt beeinflussen ?

大 易 归真
quelle
Nun
@ Mr.Gosh Wenn ich also ein Upgrade verwenden möchte, sollte ich jedes Versionsnummerierungsschema für Pakete beachten und sicherstellen, dass jedes Update keinen Einfluss auf das Produkt hat.
易 归真
Nein, nicht unbedingt. Wenn Sie nicht sicher sind, ob ein Paket, auf das Sie angewiesen sind, etwas kaputt macht, müssen Sie nachforschen. In PHP ist das Versionsnummerierungsschema xyz, wobei x = Hauptversionsnummer (ändern Sie dies und es bricht Dinge) x = Funktionsnummer (hier werden sich auch die Dinge ändern - aber es ist alles gut dokumentiert und sollte kein Problem durch Abhängigkeitsprüfungen von Ubuntu sein) z = Bugfix Release (diese werden normalerweise nicht kaputt gehen und sollten immer schnell installiert werden)
Mr.Gosh
@ Mr.Gosh Ich habe ein apt-get- Upgrade in vielen Dokumenten auf github oder einer anderen Website gesehen. Es sieht so aus, als ob es dem Autor egal war, was passieren wird, wenn der Benutzer apt-get upgrade verwendet , um das System zu aktualisieren. Es scheint, dass sie apt-get upgrade nur als normalen Befehl betrachten, anstatt als gefährlichen Befehl wie rm -rf
易 归真
Nun, es ist etwas, das viele kanonische Tests durchführt, bevor das Material für seine Benutzer freigegeben wird. Daher sollten Sie sich normalerweise darauf verlassen, dass das apt-get-Upgrade nichts zerstört - wenn ja - die Software, die Sie verwenden oder auf der sich Ihr Server nicht befindet Ihre volle Kontrolle. Wenn Sie sich auf Ihr System verlassen - Sie benötigen ein Staging-System für Tests -, um sicherzustellen, dass ein Upgrade von apt-get kein Problem darstellt ...
Mr.Gosh

Antworten:

8
apt-get update

Aktualisiert die Repositorys und ruft Informationen zu online verfügbaren Paketen ab.

apt-get upgrade

Lädt Updates für alle installierten Pakete herunter und installiert sie - solange es keine Abhängigkeiten stört (neue Pakete installieren, alte entfernen oder eine Repo-Quelle überqueren (ein Paket von einem Repo zu einem anderen wechseln)).

apt-get dist-upgrade

Funktioniert wie "Upgrade", aktualisiert jedoch ein Paket auch, wenn Abhängigkeiten oder Quellen geändert werden (etwas, das Sie auf Servern ohne weitere Tests vermeiden möchten).

Abschließend - ein Update kann Dinge kaputt machen, aber es ist notwendig! Wenn Sie sich also auf einem Desktop befinden, sollten Sie normalerweise Folgendes ausführen:

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

Ohne etwas zu zerstören.

Auf einem Server meistens a:

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

sollte ausreichen UND Sicherheitsupdates sollten automatisch installiert werden (auf Servern und Desktops)

Update auf 16.04

Mittlerweile ist der "apt" -Wrapper der Standard in Ubuntu, daher lauten die Befehle jetzt:

sudo apt update        #to update the repo-information

sudo apt upgrade       #to install all security fixes and changes that doesn't harm the system or change the behaviour

sudo apt full-upgrade  #the new "dist-upgrade" that installs newer versions that can break backwards-compatibility

TL; DR!

Ja, Sie sollten PHP in diesem Beispiel aktualisieren, da es sich um ein Sicherheitsupdate handelt (dies kann durch das Versionsschema von PHP gesehen werden; es wäre auch nicht in den "Upgrade" -Kanal von Ubuntu verschoben worden.)

Mr.Gosh
quelle
Guter Rat bezüglich der dist-upgradeOption für Server, da dadurch Ihre Konfigurationsdateien häufig entfernt werden können! +1
Arronical
Ich verstehe den Unterschied zwischen Upgrade und Distupup. Mein Rätsel ist, wenn ich nicht wusste, was sich tatsächlich zwischen zwei Versionen ändert, sollte ich es aktualisieren? Vielleicht beeinflusst es das Produkt.
易 归真
Brummen .. Aber es ist gefährlich? Ich habe eine gute 16.04 LTS , mit dem apt-get upgrade Befehl werde ich die LTS-Garantie verlieren ?
Peter Krauss
nein - das wirst du nicht - LTS bedeutet, dass du im "Upgrade" -Kanal länger neue Updates
erhältst
Woher wissen Sie, wann das apt-get-Upgrade abgeschlossen ist?
TheCrazyProfessor
1

Wenn Sie es ausführen apt-get upgrade, werden alle auf Ihrem System installierten Pakete aktualisiert. Es ist absolut sicher (es sei denn, Sie schneiden es ab, bevor es fertig ist), da alle Pakete aus den Repos stammen (Sie sollten nur die installieren, denen Sie vertrauen) und (wahrscheinlich) vor dem Hochladen gut getestet werden.

Das einzige kleine Risiko ist das Risiko von Fehlern in den Paketen selbst, aber dies kann auf jedem Betriebssystem passieren, das aktualisiert wurde, da Fehler in jeder Software häufig sind und je nach Version auftreten und gehen.

Sollten Sie ein Upgrade durchführen? Nun, das liegt an Ihnen, ich würde ja sagen, wenn Sie upgradedie application-updaterApp nicht mögen , das gleiche, keine Ausgabe, um Sie zu beunruhigen.

Hier finden Sie eine Dokumentation, aptdamit Sie mehr erfahren können

Mark Kirby
quelle
Brummen ... Aber es ist "LTS gefährlich"? Ich habe eine gute 16.04 LTS , mit dem apt-get upgrade Befehl werde ich die LTS-Garantie verlieren ?
Peter Krauss
@PeterKrauss Ich weiß nicht, was du meinst. Alles, was ein Upgrade macht, ist das aktuelle System zu aktualisieren. Es wird deine Ubuntu-Version nicht ändern, sondern nur die aktuellen Pakete aktualisieren.
Mark Kirby
1
Vielen Dank für Ihre Antwort. Beispiel: Wenn sich der apt-get upgradeBefehl von 16.04 LTS auf 17 (oder ein anderes 16.X-Nicht-LTS) ändert, geht die "LTS-Garantie" verloren. Wenn keine Verwirrung und kein Upgrade in der LTS-Subversion verbleiben, ist dies in Ordnung.
Peter Krauss
1
das wird das nicht tun, es aktualisiert Pakete, nicht das Betriebssystem, der Befehl, den Sie dafür verwenden, ist do-release-upgrade
Mark Kirby
1

Könnte sein. Sie sollten Ihr System jedoch regelmäßig aktualisieren. Updates können ein Risiko haben, ja. Dieses Risiko hängt auch von Dingen ab, die ich nicht kenne, wie z. B. welche PPAs Sie hinzugefügt haben oder nicht oder andere Quellen. Aber auch im Allgemeinen ist es eine gute Idee, Ihr System auf dem neuesten Stand zu halten. Beim Update erhalten Sie Stabilitätskorrekturen und Sicherheitsupdates. Daher werde ich sagen, dass es noch gefährlicher ist, Ihr System nicht zu aktualisieren (zu aktualisieren).

gnaservicesinc
quelle
-1
sudo apt-get update
  • Dadurch werden nur alle installierten Softwareprogramme aktualisiert.
  • Dies ist auch erforderlich, wenn Sie das Betriebssystem zum ersten Mal installiert haben. Da es zuerst aktualisiert werden muss, können Sie nur die installierte Software verwenden.

Bearbeiten: Und Upgrade wird verwendet, um die Pakete zu aktualisieren, die nicht korrekt installiert wurden.

user388229
quelle
1
Ich dachte, das updateist zum Aktualisieren der Paketlisten und upgradezum Aktualisieren der Pakete. Und dist-upgradeum installierte Pakete zu aktualisieren + neue Pakete zu installieren
daltonfury42
3
-1 Dies ist falsch, updateaktualisiert nur die Quellen und upgradeaktualisiert die Pakete
Mark Kirby
-1

Manchmal ist das System defekt, wenn Sie nach dem Aktualisieren PPA von Drittanbietern zu Ihrem Repository hinzufügen sudo apt-get update. Es ist nicht gefährlich und eigentlich sollten Sie dies tun, um Ihr System auf dem neuesten Stand zu halten. Ein Vorschlag von mir, deaktivieren Sie einfach das vorgeschlagene und Backport-Repository aus Softwarequellen.

121n3
quelle
1
-1 Sehen Sie nicht, wie dies die Frage überupgrade
Mark Kirby