ทำไมฉันถึงได้รับรายชื่อไฟล์สองครั้งเมื่อสร้าง RPM ของฉัน


7

ความเข้าใจของฉันคือถ้าฉันระบุคำสั่ง% dir ภายใต้รายการ% files RPM จะไม่แสดงรายการไฟล์ใด ๆ ภายใต้ไดเรกทอรีนั้น การทำเช่นนี้ช่วยให้คุณสามารถกำหนดสิทธิ์เฉพาะสำหรับไดเรกทอรีที่เป็นปัญหา (หรือผู้ใช้กลุ่ม ฯลฯ ) อย่างไรก็ตามฉันยังคงได้รับข้อความ "ไฟล์ที่มีคำเตือนสองครั้ง" เมื่อนอกเหนือจากไดเรกทอรีที่ระบุฉันยังแสดงรายการไฟล์อย่างชัดเจน นี่ฟังดูบ้าฉันรู้ แต่ไฟล์มีสิทธิ์ต่างกันไปยังไดเรกทอรีซึ่งเป็นสาเหตุที่ฉันต้องกำหนดไดเรกทอรีแยกต่างหากโดยใช้คำสั่ง% dir

หากฉันไม่ได้ใช้คำสั่ง% dir ถ้าใช่ฉันคาดว่าจะเห็นข้อความเตือนเหล่านี้

ฉันถูกไหม?

UPDATE:

ที่จริงแล้วไฟล์ที่อยู่ในรายการสองครั้งดูเหมือนว่าจะปรากฏเฉพาะเมื่อฉันรวมคำสั่ง% 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

คำตอบ:


1

เท่าที่ฉันทราบคำสั่ง% 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

เป็นการดีที่จะรู้ว่าขอบคุณ @JeffJohnson ฉันได้อัปเดตคำตอบของฉันเพื่อลบไดเรกทอรี แต่ออกจากส่วนการตั้งคำถามดังนั้นหวังว่าผู้คนจะตรวจสอบความคิดเห็นของคุณ
Forrest
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.