Wie überprüfe ich, ob meine Software 32-Bit oder 64-Bit ist?

30

Ich möchte überprüfen, ob meine Software 64-Bit oder 32-Bit ist (nicht das Betriebssystem). Diese Software ist eine ausführbare Datei. Wenn ich sie überprüfe, werden keine Informationen angezeigt, wenn es sich um 64-Bit- oder 32-Bit-Dateien handelt.

Wie überprüfe ich, ob meine Software 64-Bit oder 32-Bit ist?

Levan
quelle

Antworten:

39

Mit dem fileBefehl können Sie überprüfen, in welchem ​​Format diese ausführbare Datei vorliegt. Beispielsweise:

file /usr/bin/gedit
/usr/bin/gedit: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0x5a388215eb6f60b420fc3b6d68ec52d563071f84, stripped
Radu Rădeanu
quelle
4

Dieser einfache Befehl zeigt Ihnen, ob die ausführbare Datei 32-Bit (i386) oder 64-Bit (amd64) ist.

Syntax:

apt-cache show $(dpkg -S /path/to/the/file | awk -F ':' '{print $1 }') | awk '/Architecture:/ {print $2}' -

Beispiel:

$ apt-cache show $(dpkg -S /usr/bin/gedit | awk -F ':' '{print $1 }') | awk '/Architecture:/ {print $2}' -
amd64

Erläuterung:

dpkg -SBefehl greift nach dem Paket, zu dem die Datei tatsächlich gehört. apt-cache show packageBefehl zeigt die Details des Pakets an. Von diesen Details greift awk nur den Architektur-Teil und leitet ihn an stdout weiter.

ODER

Sie können diesen Befehl auch versuchen,

$ dpkg -l $(dpkg -S /usr/bin/gedit | awk -F ':' '{print $1 }') | awk '/ii/ {print $4}'
amd64
Avinash Raj
quelle
1
cut -d: -f1wäre hier kürzer und beachte, dass dies nur für installierte Pakete funktioniert, nicht für eine zufällige Datei in deinem Home-Ordner. Vielleicht xargs -rist es sinnvoller, wenn der dpkg -SBefehl leer zurückgegeben wird.
Lekensteyn
Dies funktioniert nur, wenn die Software von apt / dpkg stammt, während die andere Antwort immer funktioniert, egal woher sie stammt.
Joseph Sible-Reinstate Monica vor