Мені було цікаво про це спеціально для створення програмного забезпечення в Debian (встановлена система Debian може бути 32-розрядною версією з 32-бітним ядром, бібліотеками тощо), або це може бути 64-бітна версія з вмістом, складеним для 64- біт, а не 32-бітний режим сумісності).
Самі пакети Debian повинні знати, для якої архітектури вони створені (звичайно), коли вони фактично створюють пакунок з усіма його метаданими, включаючи архітектуру платформи, тому існує інструмент упаковки, який виводить його для використання інших інструментів упаковки та сценаріїв, званих 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 -architecture.
Я поняття не маю, як dpkg-архітектура виводить архітектуру, але ви можете подивитися на її документацію чи вихідний код (dpkg-архітектура та велика частина системи dpkg взагалі Perl).