Warum bekomme ich beim Erstellen meines RPMs zweimal Dateien?

5296
user983022

Meines Wissens ist es so, dass RPM keine Dateien unter diesem Verzeichnis aufführt, wenn ich die% dir-Direktive in der% files-Liste angebe. Auf diese Weise können Sie bestimmte Berechtigungen für das betreffende Verzeichnis (oder den Benutzer, die Gruppe usw.) festlegen. Ich erhalte jedoch immer noch die Meldung "Dateien doppelt aufgeführt", wenn ich zusätzlich zu dem angegebenen Verzeichnis auch explizit die Dateien aufliste. Das klingt nicht gut, ich weiß, aber die Dateien haben unterschiedliche Berechtigungen für das Verzeichnis, weshalb ich das Verzeichnis mithilfe der Direktive% dir separat definieren muss.

Wenn ich nicht die Direktive% dir verwende, würde ich erwarten, dass diese Warnmeldungen angezeigt werden.

Hab ich recht?

AKTUALISIEREN:

Tatsächlich scheint die zweimal aufgeführte Datei nur zu erscheinen, wenn ich die Direktive% dir mit der Direktive% config kombiniere.

Folgendes ist also ohne Warnmeldungen in Ordnung:

%files %dir %attr(0755,testuser,test) /app/product/tracking-tool/bin/ %dir %attr(0755,testuser,test) /app/product/tracking-tool/bin/scripts/  %attr(0755,vscc_prod,vscc) /app/product/tracking-tool/bin/run.sh %attr(0755,vscc_prod,vscc) /app/product/tracking-tool/bin/count.sh %attr(0755,vscc_prod,vscc) /app/product/tracking-tool/bin/delete.sh %attr(0755,vscc_prod,vscc) /app/product/tracking-tool/bin/scripts/script1.sh 

Die folgenden Ergebnisse führen jedoch zu Warnmeldungen:

%config %dir %attr(0755,testuser,test) /app/product/tracking-tool/config/ %config %dir %attr(0755,testuser,test) /app/product/tracking-tool/config/properties %config %dir %attr(0755,testuser,test) /app/product/tracking-tool/config/other  %config %attr(0644,testuser,test) /app/product/tracking-tool/config/xmlconfig.xml %config %attr(0644,testuser,test) /app/product/tracking-tool/config/properties/logging.properties %config %attr(0600,testuser,test) /app/product/tracking-tool/config/properties/test.txt %config %attr(0600,testuser,test) /app/product/tracking-tool/config/other/other.txt  Warning appear as follows:  [WARNING] warning: File listed twice: /app/product/tracking-tool/config/xmlconfig.xml [WARNING] warning: File listed twice: /app/product/tracking-tool/config/properties/logging.properties [WARNING] warning: File listed twice: /app/product/tracking-tool/config/properties/test.txt [WARNING] warning: File listed twice: /app/product/tracking-tool/config/other/other.txt 
7

1 Antwort auf die Frage

1
Forrest

Soweit mir bekannt ist, lässt die Direktive% config keine zusätzlichen Anweisungen zu, da sie nur zum Kennzeichnen von Dateien als Konfigurationsdateien verwendet wird. Versuchen Sie etwas davon (ich bin immer noch nicht zu 100% sicher, dass die Anweisung% config für Verzeichnisse funktioniert. Die Dokumentation sagt nicht aus, ob dies der Fall ist).

%files %config /app/product/tracking-tool/config/xmlconfig.xml %config /app/product/tracking-tool/config/properties/logging.properties %config /app/product/tracking-tool/config/other/other.txt %dir %attr(0755,testuser,test) /app/product/tracking-tool/config/  %dir %attr(0755,testuser,test) /app/product/tracking-tool/config/properties %dir %attr(0755,testuser,test) /app/product/tracking-tool/config/other %attr(0644,testuser,test) /app/product/tracking-tool/config/xmlconfig.xml %attr(0644,testuser,test) /app/product/tracking-tool/config/properties/logging.properties %attr(0600,testuser,test) /app/product/tracking-tool/config/properties/test.txt %attr(0600,testuser,test) /app/product/tracking-tool/config/other/other.txt 
% config bezieht sich nur auf Dateien, nicht auf Verzeichnisse, aufgrund der durchgeführten Aktionen (z. B. Installation von * .rpmnew, wenn die Datei geändert wird), wenn% config verarbeitet wird. Es gibt keine einfache Definition für das, was ein "modifiziertes" Verzeichnis bedeuten könnte, noch ist das Umbenennen eines modifizierten Verzeichnisses eine sinnvolle / nützliche Definition, wenn "modifiziert" wird. Jeff Johnson vor 8 Jahren 0
Gut zu wissen, danke @JeffJohnson. Ich habe meine Antwort aktualisiert, um das Verzeichnis zu entfernen, aber den fraglichen Teil belassen, so dass die Leute Ihren Kommentar hoffentlich überprüfen. Forrest vor 8 Jahren 0