Почему я получаю файлы в списке дважды при сборке RPM?

5221
user983022

Насколько я понимаю, если я укажу директиву% dir в списке файлов%, RPM не будет перечислять файлы в этом каталоге. Это может позволить вам установить определенные разрешения для рассматриваемого каталога (или пользователя, группы и т. Д.). Тем не менее, я по-прежнему получаю сообщения «Файлы перечислены дважды с предупреждением», когда в дополнение к указанному каталогу я также явно перечисляю файлы. Это звучит глупо, я знаю, но файлы имеют разные права доступа к каталогу, поэтому мне нужно определять каталог отдельно, используя директиву% dir.

Если бы я не использовал директиву% dir, то да, я бы ожидал увидеть эти предупреждающие сообщения.

Я прав?

ОБНОВИТЬ:

На самом деле, файл, указанный дважды, кажется, появляется только тогда, когда я объединяю директиву% dir с директивой% config.

Таким образом, следующее без предупреждений:

%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 

Но в результате появляются предупреждающие сообщения:

%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 ответ на вопрос

1
Forrest

Насколько я знаю, директива% config не допускает дополнительных директив после нее, поскольку она просто используется для пометки файлов как файлов конфигурации. Попробуйте что-то вроде этого (я все еще не уверен на 100%, что директива% config работает для каталогов, в документации не сказано, работает ли она или нет):

%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 применяется только к файлам, но не к каталогам, из-за предпринятых действий (например, установка как * .rpmnew, если файл изменен), когда обрабатывается% config. Не существует простого определения того, что может означать «измененный» каталог, и при этом переименование измененного каталога не является разумным / полезным определением, когда «изменен». Jeff Johnson 8 лет назад 0
Полезно знать, спасибо @JeffJohnson. Я обновил свой ответ, чтобы удалить каталог, но оставил часть вопросов, так что, надеюсь, люди просмотрят ваш комментарий. Forrest 8 лет назад 0

Похожие вопросы