On 19/03/14 16:30, Peter Pentchev wrote: > 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; }' Спасибо за развёрнутый ответ, но мне достаточно getconf LONG_BIT. У меня задача - из двух бинарей выбрать правильный и запустить его не модифицируя систему. wget http://www.some-host.net/bin-`getconf LONG_BIT` ./bin-`getconf LONG_BIT` -- Best regards, Mikhail - WWW: http://www.antmix.ru/ XMPP: antmix@stopicq.ru
Attachment:
signature.asc
Description: OpenPGP digital signature