Saya bertanya-tanya tentang hal ini khusus untuk membangun perangkat lunak dalam Debian (sistem Debian yang diinstal dapat berupa versi 32-bit dengan kernel 32-bit, pustaka, dll., Atau dapat berupa versi 64-bit dengan hal-hal yang dikompilasi untuk 64- bit daripada mode kompatibilitas 32-bit).
Paket Debian sendiri perlu tahu untuk apa arsitekturnya (tentu saja) ketika mereka benar-benar membuat paket dengan semua metadata-nya, termasuk arsitektur platform, jadi ada alat pengemasan yang mengeluarkannya untuk alat pengemasan dan skrip lain untuk digunakan, disebut dpkg-arsitektur . Ini mencakup apa yang dikonfigurasi untuk membangun, serta host saat ini. (Biasanya ini sama saja.) Contoh output pada mesin 64-bit:
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
Anda dapat mencetak hanya satu dari variabel-variabel itu atau melakukan tes terhadap nilainya dengan opsi baris perintah ke dpkg -architecture.
Saya tidak tahu bagaimana arsitektur dpkg menyimpulkan arsitektur, tetapi Anda bisa melihat dokumentasi atau kode sumbernya (arsitektur dpkg dan sebagian besar sistem dpkg pada umumnya adalah Perl).