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 [email protected] [email protected] [email protected]
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.
signature.asc
Description: Digital signature

