如何判断我的cygwin安装是32位还是64位? 我不记得要下载哪个setup.exe。我不想搞乱我的cygwin安装。
答案 0 :(得分:46)
uname -m
如果它是64位,它应该在输出中说x86_64
,如果是32位,它应该在i686
。
答案 1 :(得分:21)
运行uname -m
。如果您的cygwin安装是64位,则输出将为x86_64
。如果它是32位,您将看到i386
,i486
,i586
或i686
。
答案 2 :(得分:7)
其他答案解决了OP的问题,但是如果你像我一样使用Cygwin的两种口味,那么知道你使用哪一个以上的问题是有用的。只是运行setup.exe。如果我知道我的脚本在Cygwin上运行,我更喜欢
uname -m
因为它只给了我" x86_64"或" i686"作为输出。我可以在" if"阻止这样:
if [ $(uname -m) == "x86_64" ]; then do something; fi
当然,您也可以使用" uname -a"与" grep"在if语句中。这是个人偏好的问题。
答案 3 :(得分:2)
NateT向"打印机器硬件名称"提供正确的命令。根据" uname --help":
uname -m
我得到" x86_64"或" i686",但谁知道这些字符串是否会改变?这是" uname -a"的整个输出。 WOW64在64位Windows上告诉你它是32位的Cygwin。在32位你没有选择,对吧? ; - )
$ uname -a
CYGWIN_NT-6.1-WOW64 Pegasus 1.7.32(0.274/5/3) 2014-08-13 23:03 i686 Cygwin
更新:(感谢theDrake。)具有讽刺意味的是,自2015年2月左右the WOW64 in the string has changed to WOW以来,虽然现在检查WOW可能是安全的,但似乎机器硬件名称&#34 34;可能确实比内核名称更安全"。
Cygwin似乎确实根据该主题认真对待兼容性,但也注意到在MSYS2下你需要依赖"机器硬件名称"无论如何,而不是"内核名称":
$ uname -a
MSYS_NT-6.1 Pegasus 2.5.0(0.295/5/3) 2016-03-15 11:29 x86_64 Msys