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

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



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


Reply to: