Pourquoi ai-je deux fois la liste des fichiers lors de la création de mon RPM?

7

Je crois comprendre que si je spécifie la directive% dir dans la liste des fichiers%, RPM ne répertoriera aucun fichier dans ce répertoire. Cela peut vous permettre de définir des autorisations spécifiques pour le répertoire en question (ou utilisateur, groupe, etc.). Cependant, je reçois toujours des messages "fichiers listés deux fois en alerte" quand, en plus du répertoire spécifié, je liste aussi explicitement les fichiers. Cela semble idiot je sais, mais les fichiers ont des autorisations différentes sur le répertoire, raison pour laquelle je dois définir le répertoire séparément à l'aide de la directive% dir.

Si je n'utilisais pas la directive% dir, alors oui, je m'attendrais à voir ces messages d'avertissement.

Ai-je raison?

MISE À JOUR:

En fait, le fichier indiqué deux fois ne semble apparaître que lorsque je combine la directive% dir avec la directive% config.

Donc, ce qui suit est correct sans message d'avertissement:

%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

Mais les résultats suivants entraînent des messages d'avertissement:

%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
utilisateur983022
la source

Réponses:

1

Autant que je sache, la directive% config n'autorise pas de directives supplémentaires car elle est simplement utilisée pour marquer des fichiers en tant que fichiers de configuration. Essayez quelque chose comme ça (je ne suis toujours pas sûr à 100% que la directive% config fonctionne pour les répertoires, la documentation ne dit pas si c'est le cas ou pas):

%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
Forrest
la source
% config s'applique uniquement aux fichiers, pas aux répertoires, en raison des actions entreprises (par exemple, l'installation en tant que * .rpmnew si le fichier est modifié) lors du traitement de% config. Il n’existe pas de définition simple de ce que pourrait signifier un répertoire "modifié", et le fait de renommer un répertoire modifié ne constitue pas une définition raisonnable / utile lorsqu’il est "modifié".
Jeff Johnson
Bon à savoir, merci @JeffJohnson. J'ai mis à jour ma réponse pour supprimer le répertoire, mais j'ai laissé la partie questions, alors j'espère que les gens réviseront votre commentaire.
Forrest