"uname -m" - это команда, которую вы ищете. Вы можете запускать как 32-битные, так и 64-битные на современных процессорах Intel и AMD, так что «uname -p» вам не поможет (кроме того, в основном это не работает в наши дни, здесь Core2 считает ответ на «uname -p»). "неизвестно").
Поиск существования / usr / lib64 (как было предложено) вам тоже не поможет, поскольку некоторые пакеты, относящиеся к оборудованию и системе, будут устанавливать 32-битные и 64-битные библиотеки, чтобы быть в безопасности. В моей системе (Debian) пакет fakeroot делает именно это.
Что касается вывода «uname -m», если это i386 или i686, то это 32-битная версия, если это x86_64 (или альфа, или ia64, или какая-то другая 64-битная архитектура, которую я никогда не видел :), это 64-битная.
(как забавно, мой 64-битный сервер FreeBSD возвращает «amd64», что может быть немного странно для Intel Quadcore, но вполне понятно, если вы знаете историю 64-битной архитектуры x86)
это говорит вам об архитектуре установки или фактической архитектуре процессора. Например, если вы установили 32-битную ОС на 64-битном процессоре, это вернет i686 или x86_64?
Monkut
15
uname -a и ищите x86_64. Если вы хотите знать, может ли ваш процессор обрабатывать 64 бита, cat / proc / cpuinfo и ищите lm в пределах флагов.
Просто чтобы запутать вещи, вы можете запустить 64-битное ядро с 32-битным пользовательским пространством, что я и делаю. В этом случае uname -mвозвращает, x86_64но у меня нет 64-битных библиотек, поэтому большинство 64-битных программ не запускаются.
Поэтому , как только вы проверяете uname, вам нужно искать /lib64/ld-linux-x86-64.so.2, /lib64/libc-2.7.soи /lib/ld-linux.so.2, /lib/libc-2.7.soчтобы увидеть , имеются ли 64 - битные и 32 - битные библиотеки. И чтобы действительно убедиться, запустите эти файлы и посмотрите, правильно ли они работают.
Другой полезной информацией является вывод, lsb_release -aкоторый является перекрестным дистрибутивом, и сообщит о том, какие модули LSB для конкретной архитектуры доступны.
uname -m выдаст вам только запущенную архитектуру / архитектуру ядра. Он НЕ скажет вам, используете ли вы 32-битный дистрибутив GNU / Linux на 64-битном процессоре.
Чтобы узнать ваши возможности процессора:
cat /proc/cpuinfo
Флаг «LM» должен присутствовать в 64-битных системах, поскольку он представляет «LONG MODE» (64-битные расширения, AMD64 или Intel EM64T).
Ответы:
"uname -m" - это команда, которую вы ищете. Вы можете запускать как 32-битные, так и 64-битные на современных процессорах Intel и AMD, так что «uname -p» вам не поможет (кроме того, в основном это не работает в наши дни, здесь Core2 считает ответ на «uname -p»). "неизвестно").
Поиск существования / usr / lib64 (как было предложено) вам тоже не поможет, поскольку некоторые пакеты, относящиеся к оборудованию и системе, будут устанавливать 32-битные и 64-битные библиотеки, чтобы быть в безопасности. В моей системе (Debian) пакет fakeroot делает именно это.
Что касается вывода «uname -m», если это i386 или i686, то это 32-битная версия, если это x86_64 (или альфа, или ia64, или какая-то другая 64-битная архитектура, которую я никогда не видел :), это 64-битная.
(как забавно, мой 64-битный сервер FreeBSD возвращает «amd64», что может быть немного странно для Intel Quadcore, но вполне понятно, если вы знаете историю 64-битной архитектуры x86)
источник
uname -a и ищите x86_64. Если вы хотите знать, может ли ваш процессор обрабатывать 64 бита, cat / proc / cpuinfo и ищите lm в пределах флагов.
источник
для RedHat / CentOS:
32-битный
64-битный
источник
Просто чтобы запутать вещи, вы можете запустить 64-битное ядро с 32-битным пользовательским пространством, что я и делаю. В этом случае
uname -m
возвращает,x86_64
но у меня нет 64-битных библиотек, поэтому большинство 64-битных программ не запускаются.Поэтому , как только вы проверяете uname, вам нужно искать
/lib64/ld-linux-x86-64.so.2
,/lib64/libc-2.7.so
и/lib/ld-linux.so.2
,/lib/libc-2.7.so
чтобы увидеть , имеются ли 64 - битные и 32 - битные библиотеки. И чтобы действительно убедиться, запустите эти файлы и посмотрите, правильно ли они работают.Другой полезной информацией является вывод,
lsb_release -a
который является перекрестным дистрибутивом, и сообщит о том, какие модули LSB для конкретной архитектуры доступны.источник
lsb_release -a
, не выводит пользовательскую архитектуру$> getconf LONG_BIT
Ответ: 32 или 64.источник
Еще один способ сделать это - спросить Perl, какой компилятор сказал, что размер длинного целого числа:
против
Или, если у вас установлен gcc, то же самое в C:
против
:-)
источник
Как дубликат:
Linux + как проверить версию 32-битной или 64-битной Linux
uname -m выдаст вам только запущенную архитектуру / архитектуру ядра. Он НЕ скажет вам, используете ли вы 32-битный дистрибутив GNU / Linux на 64-битном процессоре.
Чтобы узнать ваши возможности процессора:
Флаг «LM» должен присутствовать в 64-битных системах, поскольку он представляет «LONG MODE» (64-битные расширения, AMD64 или Intel EM64T).
источник
источник
Если у вас есть / usr / lib64, вы используете x86_64 ..
источник
У команды Брэда Гилберта была ошибка perl. Я исправил это, и работает следующая команда: cat / proc / cpuinfo | grep ^ flags | perl -e '$ = <>; print ($ ? "x86_64 \ n": "not x86_64 \ n")'
источник