Was bedeuten diese beiden Felder der Paketinformationen wirklich?

396
Sajuuk

mit CentOS 6.8, wenn ich tippe yum install tcpdump, Systemausgaben:

Package 14:tcpdump-4.0.0-11.20090921gitdf3cb4.2.el6.x86_64 already installed and latest version 

Dieses lange Stück Schnur hat nicht geholfen. Um mehr Informationen zu erhalten, habe ich yum info tcpdumpFolgendes eingegeben :

Name : tcpdump Arch : x86_64 Epoch : 14 Version : 4.0.0 Release : 11.20090921gitdf3cb4.2.el6 Size : 818 k Repo : installed From repo : base ... bla bla ... 

es geteilt, um den ursprünglichen Paketname String in mehrere Felder, was ich bin an diesen zwei Feldern: Epoch Release.

  • Was ist Epoch? einige Infos hier, aber nicht sehr aufschlussreich
  • Wie heißt Releasefield ( 11.20090921gitdf3cb4.2.el6)? Was ist die Konvention?
0
[Informationen zur Epoche] (https://www.redhat.com/archives/rpm-list/2000-October/msg00075.html), im Wesentlichen eine Erweiterung der Versionsnummer, um "unbedingt" ein Paket als neuer zu deklarieren. Die Konvention für die Version hängt wahrscheinlich vom Betreuer / Repository ab. In diesem Fall ist es wie aus einem Git-Build vom Datum 2009-09-21. Das letzte Bit kann ein Commit und eine Versionsnummer anzeigen. Die elf vorne? Keine Ahnung. Es gibt kein festes, universelles Namensschema. Seth vor 6 Jahren 0

1 Antwort auf die Frage

1
msuchy

Für eine lange Lektüre siehe: https://fedoraproject.org/wiki/Packaging:Versioning

Epoche wird sehr selten verwendet. Wenn nicht definiert, wird es auf 0 gesetzt und nicht gedruckt. Epoche wird verwendet, um Lücken in der Namensgebung zu überbrücken. Beispielsweise hat Upstream ein Projekt foound eine Version 2009 und plötzlich beschließen sie, die Version zu ändern. Die nächste Version wird 10 sein. Jetzt sollte Ihr Upgrade-Pfad von foo-2009 auf foo-10 gehen, aber rpm behandelt foo-2009> foo-10 und wird es nicht aktualisieren. Der Betreuer muss also die Epoche abstoßen, und rpm vergleicht foo-2009 == 0: foo-2009 <1: foo-10.

Release sollte mit 1 beginnen und jedes Mal, wenn Sie ein neues Paket freigeben - aber mit der gleichen tar.gz derselben Version -, sollten Sie das Release erhöhen. Dies kann in einem Postlet-Scriptlet geändert werden. Änderung der Laufzeitanforderung. Erneuerung wegen Änderung der ABI der erforderlichen Bibliothek. Oder weil Maintaner Patch hinzufügen. Normalerweise wird ein Sicherheitsgrund behoben. Das Format des Veröffentlichungsfelds ist nicht standardisiert. Sie können also nur vermuten, warum der Betreuer dieses Format verwendet hat. In der Tat brauchen Sie nicht zu raten, da Sie das Änderungsprotokoll der Drehzahl lesen können, wo die Änderung beschrieben werden soll.