ฉันกำลังพยายามสร้าง RPM จากแอปพลิเคชัน python บนเครื่อง RHEL8.2
shebangs บนสคริปต์ถูกตั้งค่าอย่างถูกต้องเป็น #!/usr/bin/python3
อย่างไรก็ตามด้วยเหตุผลบางอย่าง Shebang เปลี่ยนไป #!/usr/libexec/platform-python -s
เมื่อ RPM ถูกสร้างขึ้น
ฉันลองเกือบทุกอย่างแล้ว
ฉันไม่ได้กำหนด mangling ตาม doc: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/packaging_and_distributing_software/advanced-topics
% undefine __brp_mangle_shebangs
แต่ shebangs ยังคงเปลี่ยนไป
นี่คือส่วนที่เกี่ยวข้องของไฟล์ข้อมูลจำเพาะ:
% undefine __brp_mangle_shebangs
ชื่อ: myapp
เวอร์ชัน: 2.0.0
เผยแพร่: 1%{?dist}
สรุป: rpm สำหรับแอปของฉัน
BuildArch: noarch
### สร้างการพึ่งพา ###
BuildRequires: python3-setuptools
BuildRequires: python3-devel
%?python_enable_dependency_generator
%สร้าง
%py3_build
%ติดตั้ง
%py3_install
% ไฟล์
....
ฉันสามารถรวม หลาม*-rpm-มาโคร
ตามข้อกำหนดและนั่นจะทำให้ shebang เป็นเช่นนี้ /usr/bin/python3.6
แต่มันมีข้อจำกัดมากเกินไป รหัสของเราทำงานในอะไรก็ได้ > python3.6 ดังนั้นถ้าเราปรับใช้ rpm ในระบบด้วย python3.8 มันควรจะใช้งานได้
ฉันจะตั้งค่า /usr/bin/python3 หรือปล่อยให้ shebang ไม่เปลี่ยนแปลงในสคริปต์หลามได้อย่างไร เมื่อ rpm ถูกบรรจุ?