2016-03-31 15 views
2

Ich habe RPMs mit Mock gebaut. Es ist ein zweistufiger Prozess wie folgt.Warum unterscheiden src rpms

mkdir buildsrpm 
mock buildsrpm --spec myprogram-1.spec --sources myprogram-1.tar.gz --resultdir buildsrpm 
mkdir rebuild 
mock rebuild buildsrpm/myprogram-1.src.rpm --resultdir rebuild 

Der erste Schritt ist der Aufbau einer Quelle rpm. Der zweite Schritt ist der Aufbau einer Drehzahl.

In dem Prozess, den ich verwende, erstelle ich Verzeichnisse, um Ergebnisse zu speichern.

Ich habe festgestellt, wenn ich diff -qrs buildsrpm/myprogram-1.src.rpm rebuild/myprogram-1.src.rpm ausführen das Ergebnis ist, sind sie unterschiedlich.

Also meine Fragen sind:

  1. Warum eine Quelle rpm ist mock rebuild erzeugen? Offensichtlich brauche ich keine, da ich eine Quell-rpm als Eingabe für die Neuerstellung bereitgestellt habe.
  2. Warum sind sie anders?
  3. Wenn ich ein Repository erstellen ist eins besser als das andere?
+2

Was sagt "diff" eigentlich als Unterschied zwischen den SRPMs? Alles sinnvoll oder nur Zeitstempel/etc.? Vergleichen Sie die Ausgänge von 'rpm -qp --dump' auf beiden? –

+1

Ich kann das jetzt nicht überprüfen, aber ich weiß, dass normale RPMs Zeitstempel-Informationen darüber haben, wann sie gebaut wurden. Machen Sie SRPMs auch? –

Antwort

1

Versuchen Sie es in verschiedenen chroot zu laufen. Z. B:

mock -r fedora-23-x86_64 foo-1.0.16-1.fc22.src.rpm 

Und Sie werden feststellen, dass es (neben Binärpaket) foo-1.0.16-1.fc23.src.rpm zu schaffen. Sehen Sie den Unterschied in distag.

Das resultierende SRPM ist innerhalb des chroot rpmbuild Befehl von diesem chroot Verwendung aufzubauen. Dies kann zu Unterschieden führen (versuchen Sie rpm -qpi auf diesen src.rpm). Zwischen Fedora 22 und 23 wird es wahrscheinlich keinen Unterschied geben, aber 'Build Date' (und daher sind sie immer binär unterschiedlich). Aber Epel-5 und Fedora-23 haben sogar Unterschiede in der verwendeten Prüfsumme (MD5 vs. SHA).

Und wenn Sie Mock's sign plugin dann die resultierende SRPM können auch signiert werden.

Um es zusammenzufassen - Sie lieber die umgebaut SRPM auf sicheren Seite zu bleiben verwenden sollten. Die ursprüngliche SRPM wird jedoch normalerweise ebenfalls funktionieren.

+0

Super! Danke für die Erklärung. – emory