如何判断我的cygwin安装是32位还是64位?

时间:2014-03-27 12:09:10

标签: cygwin

如何判断我的cygwin安装是32位还是64位? 我不记得要下载哪个setup.exe。我不想搞乱我的cygwin安装。

4 个答案:

答案 0 :(得分:46)

uname -m

如果它是64位,它应该在输出中说x86_64,如果是32位,它应该在i686

答案 1 :(得分:21)

运行uname -m。如果您的cygwin安装是64位,则输出将为x86_64。如果它是32位,您将看到i386i486i586i686

答案 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