Ich habe mir Gedanken darüber gemacht, speziell für die Erstellung von Software in Debian (das installierte Debian-System kann eine 32-Bit-Version mit einem 32-Bit-Kernel, Bibliotheken usw. sein, oder eine 64-Bit-Version mit Dingen, die für den 64-Bit- statt für den 32-Bit-Kompatibilitätsmodus kompiliert wurden).
Debian-Pakete selbst müssen natürlich wissen, für welche Architektur sie bestimmt sind, wenn sie das Paket mit all seinen Metadaten, einschließlich der Plattformarchitektur, erstellen, daher gibt es ein Paketierungswerkzeug, das diese Daten für andere Paketierungswerkzeuge und Skripte ausgibt, genannt dpkg-architecture . Er enthält sowohl die Konfiguration, für die er gebaut wird, als auch den aktuellen Host. (Normalerweise sind diese jedoch identisch.) Beispielausgabe auf einem 64-Bit-Rechner:
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
Sie können nur eine dieser Variablen ausdrucken oder einen Test gegen ihre Werte mit Befehlszeilenoptionen für dpkg -Architektur.
Ich habe keine Ahnung, wie dpkg-architecture die Architektur ermittelt, aber Sie könnten sich die Dokumentation oder den Quellcode ansehen (dpkg-architecture und ein Großteil des dpkg-Systems im Allgemeinen sind Perl).