Wie erfahre ich, für welche Plattform ein Paket entwickelt wurde?

291
barrrista

Ich versuche, bestimmte Pakete auf meinem System auf 64 Bit zu aktualisieren. Wie kann ich feststellen, ob ein bestimmtes Paket für 32 Bit oder 64 Bit ausgelegt ist?

Der Paketname hat ein x86 hinter dem, was normalerweise auf 32 Bit hinweist, aber ich denke nicht, dass dies definitiv ist. dh. Ich weiß, dass ich einige Pakete mit 64 Bit habe, die jedoch ein x86-Suffix haben. Wie kann ich den Plattformtyp sicher bestimmen?

Vielen Dank

0
Nein "64" im Paketnamen, wenn er für 64 Bit gebaut ist, z. B. "x86_64"? Daniel Beck vor 12 Jahren 1
Welches Paketformat ist das? grawity vor 12 Jahren 0
@Daniel: Die Paketnamen sind x86, und ich sehe keine x86_64. barrrista vor 12 Jahren 0
@hhsue: In diesem Fall ist es fast zu 100% 32-Bit. grawity vor 12 Jahren 1
@ grawity: RPM, obwohl einige der Pakete nicht in der RPM-Datenbank aufgeführt sind. barrrista vor 12 Jahren 0

1 Antwort auf die Frage

0
Rich Homolka

Das Paket sollte x86 für einen generischen 32-Bit-Intel-kompatiblen Prozessor sein, oder es wird i386, i586, i686 enthalten, wenn es für diese Prozessorebene kompiliert wurde (z. B. kompiliert für 686 bedeutet dies, dass möglicherweise Opcodes verwendet werden, die bei einem echten 80386 fehlschlagen würden). .

Wenn es x86_64 hat, wurde es für 64 Bit, AMD64 oder EM64T kompiliert, Sie möchten es jedoch aufrufen.

Wenn Sie nicht der Meinung sind, dass der Paketname genau ist, können Sie das Paket entweder mit den Paketmanagertools abfragen (Sie sagen nicht, welchen Paketmanager Sie verwenden). Sie können das Paket auch entpacken und filefür ausführbare Dateien verwenden, um zu sehen, um welche Bitgröße es sich handelt. RPMs sind beispielsweise spezielle Cpio-Dateien mit Metadaten. Sie können sie mit einer Mischung aus rpm2cpio und cpio aufheben.

`rpm2cpio foo.rpm | cpio -idmv` zum Beispiel. jjlin vor 12 Jahren 1