ฉันสงสัยเกี่ยวกับสิ่งนี้โดยเฉพาะสำหรับการสร้างซอฟต์แวร์ในDebian (ระบบ Debian ที่ติดตั้งสามารถเป็นรุ่น 32 บิตพร้อมเคอร์เนล 32 บิตไลบรารี ฯลฯ หรืออาจเป็นรุ่น 64 บิตที่รวบรวมสิ่งสำหรับ 64- บิตแทนโหมดความเข้ากันได้ 32 บิต)
แพ็คเกจเดเบียนจำเป็นต้องรู้ว่าสถาปัตยกรรมนั้นมีไว้เพื่ออะไร (แน่นอน) เมื่อสร้างแพ็คเกจด้วยข้อมูลเมตาทั้งหมดรวมถึงสถาปัตยกรรมแพลตฟอร์มดังนั้นจึงมีเครื่องมือบรรจุภัณฑ์ที่ให้ผลลัพธ์สำหรับเครื่องมือบรรจุภัณฑ์และสคริปต์อื่น ๆ ที่ใช้เรียกว่าdpkg สถาปัตยกรรม มันมีทั้งสิ่งที่มันถูกกำหนดค่าให้สร้างเช่นเดียวกับโฮสต์ปัจจุบัน (โดยปกติสิ่งเหล่านี้จะเหมือนกัน) ตัวอย่างผลลัพธ์ในเครื่อง 64 บิต:
DEB_BUILD_ARCH=amd64
DEB_BUILD_ARCH_OS=linux
DEB_BUILD_ARCH_CPU=amd64
DEB_BUILD_GNU_CPU=x86_64
DEB_BUILD_GNU_SYSTEM=linux-gnu
DEB_BUILD_GNU_TYPE=x86_64-linux-gnu
DEB_HOST_ARCH=amd64
DEB_HOST_ARCH_OS=linux
DEB_HOST_ARCH_CPU=amd64
DEB_HOST_GNU_CPU=x86_64
DEB_HOST_GNU_SYSTEM=linux-gnu
DEB_HOST_GNU_TYPE=x86_64-linux-gnu
คุณสามารถพิมพ์เพียงหนึ่งในตัวแปรเหล่านั้นหรือทำการทดสอบกับค่าของพวกเขาด้วยตัวเลือกบรรทัดคำสั่งเพื่อdpkg -สถาปัตยกรรม
ฉันไม่รู้ว่า dpkg-architecture ช่วยลดความซับซ้อนของสถาปัตยกรรมได้อย่างไร แต่คุณสามารถดูเอกสารหรือซอร์สโค้ด (dpkg-architecture และระบบ dpkg โดยทั่วไปเป็น Perl)