[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Как правильно узнать разрядность системы?



On Mon, Mar 17, 2014 at 02:33:52PM +0400, Mikhail A Antonov wrote:
> Здравствуйте.
> 
> Возникла необходимость в скриптах использовать разрядность системы.
> Всё бы ничего - есть uname -r, есть arch и обычно они не врут,
> но есть ситуация когда они говорят не то, что есть на самом деле.
> Я понимаю что они показывают разрядность _машины_ или _ядра_,
> но мне нужна разрядность _системы_.
> 
> Есть i686-система с ядром amd64
[64-bit kernel, 32-bit userland]
> 
> И запускать бинарники x86_64 эта система отказывается.
> Как правильно узнать разрядность системы в такой конфигурации?

Не точно в тему, но если Вам нужно запускать бинарники, можете
воспользоваться multiarch - поставите libc6:amd64 и несколько
других библиотек (я обычно ставлю сразу некоторую простую программу,
скажем, dc:amd64, и она берет зависимости), тогда сможете выполнять
ELF executables для amd64.

Но если Вам действительно нужна архитектура системы, тогда вероятно
Вам будет нужно искать platform-dependent способов, как уже упомянутый

  dpkg --print-architecture
  
или

  readelf -h /bin/sh | sed -ne '/Class:/ { s/^.*Class:[[:space:]]*\(ELF\)*//; p; }'

Всего лучшего,
Петр

-- 
Peter Pentchev	roam@ringlet.net roam@FreeBSD.org p.penchev@storpool.com
PGP key:	http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint 2EE7 A7A5 17FC 124C F115  C354 651E EFB0 2527 DF13
When you are not looking at it, this sentence is in Spanish.

Attachment: signature.asc
Description: Digital signature


Reply to: