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 r...@ringlet.net r...@freebsd.org p.penc...@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.
signature.asc
Description: Digital signature