Как мне узнать, для какой платформы был создан пакет?

215
barrrista

Я пытаюсь обновить определенные пакеты в моей системе до 64 бит. Как мне узнать, создан ли конкретный пакет для 32 или 64 бит?

После имени пакета стоит x86, что обычно означает, что он 32-битный, но я не думаю, что это окончательно. то есть. Я знаю, что у меня есть пакеты, которые являются 64-битными, но имеют суффикс x86. Как я могу точно определить тип платформы?

Спасибо

0
Никаких `64` нигде в имени пакета при сборке для 64 бит, например` x86_64`? Daniel Beck 12 лет назад 1
Какой формат пакета это? grawity 12 лет назад 0
@Daniel: имена пакетов x86, и я не вижу x86_64. barrrista 12 лет назад 0
@hhsue: В этом случае это почти 100%, чтобы быть 32-битным. grawity 12 лет назад 1
@grawity: RPM, хотя некоторые из пакетов не перечислены в базе данных RPM. barrrista 12 лет назад 0

1 ответ на вопрос

0
Rich Homolka

Пакет должен быть x86 для стандартного 32-битного Intel-совместимого процессора, или иногда он будет иметь i386, i586, i686, если он был скомпилирован для этого уровня процессора (например, скомпилирован для 686 означает, что он может использовать некоторые коды операций, которые не будут работать на истинном 80386) ,

Если он имеет x86_64, то он был скомпилирован для 64-битной, AMD64 или EM64T, однако вы хотите вызвать его.

Если вы не думаете, что имя пакета является точным, вы можете запросить пакет с помощью инструментов менеджера пакетов (вы не говорите, какой менеджер пакетов вы используете). Вы также можете разархивировать пакет и использовать его fileна исполняемых файлах, чтобы увидеть, какой у них размер. Например, RPM - это специальные файлы cpio с метаданными; Вы можете разархивировать их с помощью комбинации rpm2cpio и cpio.

`rpm2cpio foo.rpm | cpio -idmv`, например. jjlin 12 лет назад 1

Похожие вопросы