我正在尝试更新我的版本的
ruby,在Scientific
Linux上运行,但是命令:
$rvm install ruby-2.1.6
失败并出现此错误:
checking size of long long... configure: error: in `/localdisk/home/user/.rvm/src/ruby-2.1.6': configure: error: cannot compute sizeof (long long)
如果我尝试重新安装之前安装的ruby版本,我也会收到同样的错误.我不知道发生了什么变化,但我确实有另一台机器具有非常相似的设置,可以正常工作.我比较了工作和失败安装中的configure.log文件.以下是不同之处:
$diff configure_broken.log configure_working.log 1c1 < [2015-09-03 14:59:13] ./configure --- > [2015-09-03 14:41:20] ./configure 3,5c3 < GEM_HOME=/localdisk/home/user/.rvm/gems/ruby-2.1.3 < PATH=/localdisk/home/user/.rvm/gems/ruby-2.1.3/bin:/localdisk/home/user/.rvm/gems/ruby-2.1.3@global/bin:/localdisk/home/user/.rvm/rubies/ruby-2.1.3/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/localdisk/home/user/.rvm/bin < GEM_PATH=/localdisk/home/user/.rvm/gems/ruby-2.1.3:/localdisk/home/user/.rvm/gems/ruby-2.1.3@global --- > PATH=/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/localdisk/home/user/.rvm/bin 199,202c197,199 < checking gmp.h usability... yes < checking gmp.h presence... yes < checking for gmp.h... yes < checking for __gmpz_init in -lgmp... yes --- > checking gmp.h usability... no > checking gmp.h presence... no > checking for gmp.h... no 213,218c210,525 < checking size of int... 0 < checking size of short... 0 < checking size of long... 0 < checking size of long long... configure: error: in `/localdisk/home/user/.rvm/src/ruby-2.1.6': < configure: error: cannot compute sizeof (long long) < See `config.log' for more details --- > checking size of int... 4 > checking size of short... 2 > checking size of long... 8 > checking size of long long... 8 > checking size of __int64... 0
两台机器都有完全相同的发布信息:
-bash-4.1$cat /etc/*release LSB_VERSION=base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch Scientific Linux release 6.5 (Carbon) Scientific Linux release 6.5 (Carbon)
我有一种谷歌搜索感觉,这可能与我的gcc设置有关.请给我关于如何调试和修复此问题的建议.
谢谢.
解决方法
您可以在构建目录的config.log文件中查看configure调用的日志输出(例如/var/folders/fm/fn9fyfm10n7ch34843lcg1t80000gy/T/ruby-build.20180328150122.9202/ruby-2.3.1).
在我的情况下,错误是这样的:
In file included from /usr/local/include/stdint.h:59: /usr/local/include/stdint.h:2:10: error: #include nested too deeply #include <stddef.h> ^ /usr/local/include/stdint.h:59:11: error: #include nested too deeply # include <stdint.h> ^ /usr/local/include/stdint.h:72:11: error: #include nested too deeply # include <sys/types.h> ^ /usr/local/include/stdint.h:76:10: error: #include nested too deeply #include <limits.h> ^ /usr/local/include/stdint.h:82:11: error: #include nested too deeply # include <inttypes.h> ^ 5 errors generated. configure:11616: $? = 1 configure: program exited with status 1