Linux - Programm "Patch"?

4 Antworten

Die Updates die es gibt ,egal welches. Wird immer angegeben welches es ist.

(Aktualisierungsverwaltung)

Da Überwiegend man alles auf einer Großen Quelle bezieht ist es unerheblich ob nur der Kernel selbst oder Programme die auf den Kernel zugreifen und Ihre Aktivitäten darüber ausführen aktualisiert werden. Man kann jederzeit die Updates oder "Patches" Abwählen wenn man das Explizit nicht will das es aktualisiert wird. Diese Freiheit hat man so gut wie nicht bei MS Windoof . Dies aktualisiert nur das Betriebssystem und evtl. MS Office. NICHT aber die Programme die man darunter Installiert hat ( z.B. Adobe Produkte) . Diese muss man dann Separat beim Hersteller sich ziehen und Installieren.

Reine Kernel Patches werden auch Entsprechend Ausgegeben bzw. sieht man an deren Information

sudo apt update && sudo apt upgrade

Aktualisiert alles.

sudo apt dist-upgrade

Aktualisiert nur rein die Distribution was mitunter auch den verwendeten Kernel Beinhaltet.

Apt stammt vom Wort Aptitude ab.

Die Aktualisierungen selbst sind total Unterschiedlich. bei einigen wird Quellcode entfernt und durch anderen Erstetzt. Bei den nächsten wird nur der Quellcode ergänzt. . Bei dem nächsten werden nicht mehr Verwendete Dateien Gelöscht und durch andere Ersetzt ,etc.

Patch ist keineswegs nur für den Kernel gedacht. Du kannst damit einen Diff (also eine maschinenlesbare Beschreibung von Veränderungen) auf beliebige Dateien anwenden.

Sowas verwendet man in der Regel für Sourcecode, nicht für Binärdateien.

Wenn du Bestandteile deines Betriebssystems aktualisieren willst, wirst du mit sowas nur im absoluten Ausnahmefall arbeiten - und nur, wenn du genau weißt, was du tust.

Ansonsten solltest du stets die Bordmittel deiner Distribution verwenden (bei Debian eben apt). Die kümmern sich drum, dass alles zusammenpasst.


Manfred958 
Fragesteller
 01.09.2023, 09:38

Danke für die Antwort :)

Ansonsten solltest du stets die Bordmittel deiner Distribution verwenden (bei Debian eben apt). Die kümmern sich drum, dass alles zusammenpasst.

Gibt es da denn einen Unterschied? Beide aktualisieren die Version und bringen "Neuerungen" rein.

Benutzt man den Befehl Patch einfach nur unter anderen Voraussetzungen oder bewirkt ein Update was anderes als ein Patch?

0
jo135  01.09.2023, 09:50
@Manfred958

Patch ist ein Low-Level-Werkzeug, um eine oder mehrere Dateien zu aktualisieren. Das verwenden Entwickler. Es funktioniert nur, wenn Ausgangsversion und Patch zueinander passen. Mehr macht das nicht.

Bei Apt u.ä. spielen sich sehr viel mehr Dinge ab: die passenden Dateien werden von den richtigen Quellen runtergeladen, die Abhängigkeiten festgestellt, die wiederum nötigenfalls aktualisiert, die Versionsnummern festgehalten (sodass Apt weiß, was in welcher Version vorliegt), das Ganze mit Prüfsummen abgesichert usw. Beim Kernel muss danach ggf. das initrd neu gebaut werden, bei anderen Paketen müssen andere Tätigkeiten nach dem Update laufen (etwa Datenbankupgrades oder Schemaänderungen, Neustart von Services, ...). Da laufen also diverse Skripte nach dem eigentlichen "Patchen", damit alles funktioniert. Das Tool sorgt auch dafür, dass im Fehlerfall möglichst kein "halbkaputter" Zustand bleibt, sondern wenigstens wieder der Ausgangszustand hergestellt wird.

3
Manfred958 
Fragesteller
 01.09.2023, 12:53
@jo135

Danke, das ist eine schöne Antwort :)

0

Das klassische patch nutzt diffs, um Veränderungen am Quellcode vorzunehmen.

D.h. ich muß bei einer neuen Version nicht den gesamten Quellcode besorgen, sondern nur die Änderungen und wende diese auf den vorhandenen Quellcode der Vorversion an. Das ist also vor allem dann relevant, wenn man mit Quellcode hantiert.

Distributionen liefern allerdings oft kernel+module binär aus, das Update via Paketmanager installiert dann entweder die neuen Binaries, oder es wird auch mit Deltas 'gepatcht'.


Manfred958 
Fragesteller
 02.09.2023, 18:31

Also Patch aktualisiert den Quellcode, der dann noch kompiliert wird, um daraus ein Binärpaket zu machen?

Paketmanager entpacken das Paket und installieren / kopieren dann einfach nur die Dateien in die richtigen Verzeichnisse?

0
KarlRanseierIII  02.09.2023, 19:31
@Manfred958

Richtig.

Wobei die Binärüakete eben in den meisten Fällen vom Distributor geschnürt werden. (Eine Ausnahme wären Meta-Distris)

0

Den patch-Befehl hab ich persönlich noch nie genutzt / bzw. davon gehört.

Wenn du mit "sudo apt update && sudo apt full-upgrade && sudo apt autoremove" die Paketquellen aktualisierst, die Pakete selber aktualisierst und dann nicht mehr genutzte Pakete (Orphans) entfernst, dabei wird der Kernel ja auch aktualisiert, da alles in Linux quasi ein Paket ist.

Also ich persönlich sehe garkeinen Grund diesen Befehl zu nutzen.

Ansonsten kannst du natürlich auch mal in der genauen Dokumentation nachschauen.


Manfred958 
Fragesteller
 01.09.2023, 09:36

Danke für die Antwort :)

Ich wollte nur wissen, wo der Unterschied liegt oder ob es dasselbe ist, nur unter anderen "Umständen" :/

0