构建本地扩展宝石失败 - 找不到extconf.rb

5

在尝试安装时

'bcrypt-ruby', :lib => 'bcrypt'

并且。
'hpricot'

我在两种情况下都遇到了这个问题(使用Windows XP)。
C:/Ruby/bin/ruby.exe: No such file or directory -- extconf.rb (LoadError)

我从这里安装了Rb 1.8.6,包括devkit:http://rubyinstaller.org/downloads/。有什么提示吗?谢谢。
3个回答

11

现在RubyInstaller Wiki中已经有一篇文章解决了这个问题:

使用命令提示符,运行以下命令:

REG QUERY "HKCU\Software\Microsoft\Command Processor"
REG QUERY "HKLM\Software\Microsoft\Command Processor"

逐行执行代码。运行后,会看到如下内容:

HKEY_CURRENT_USER\Software\Microsoft\Command Processor
    CompletionChar    REG_DWORD    0x9
    DefaultColor    REG_DWORD    0x0
    EnableExtensions    REG_DWORD    0x1
    PathCompletionChar    REG_DWORD    0x9

信息列包括键(Key)、类型(Type)和值(Value)。如果你看到一个名为AutoRun的键,有可能是你收到错误的罪魁祸首。AutoRun会干扰Ruby与子进程执行相关并且影响gem安装。请使用以下命令删除它:

REG DELETE "HKCU\Software\Microsoft\Command Processor" /v AutoRun

完成后,请尝试打开新的命令提示符并再次执行gem安装。


+1 对我有用,我自己很久以前设置了AutoRun,现在当然完全忘记了。非常感谢! - Ev Dolzhenko
1
+1 实际上你并不需要删除 AutoRun,只要确保你没有改变 AutoRun 的工作目录即可。 - dieend

0

嗯,我的RubyInstaller+DevKit安装一次就成功了。所以我有几个建议:

1.) 你是通过“使用 Ruby 启动命令提示符”快捷方式启动 Gem 的吗?(这将确保正确的路径和其他设置被包含在内)

2.) 你确定DevKit已经正确安装了吗?虽然这两个 gem 包都包括extconf.rb 文件,但如果期望的开发工具不可用,Gem 仍然会失败。

(……否则,RubyInstall 邮件列表可能是寻求帮助的最佳地方——或者联系 gem 的作者,但似乎他不支持 Windows。)


1
不确定您的意思:1.)您是从名为“使用 Ruby 启动命令提示符”的快捷方式启动 Gem 的吗?(这将确保正确的路径和其他设置已包括在内。)
  1. 设置正确 :)。
- george
1
开始菜单中的RubyInstaller文件夹应该包括一个名为“使用Ruby启动命令提示符”的快捷方式...基本上,它启用了命令扩展并运行C:\Ruby\bin\setrbvars.bat以确保环境设置正确。 - ewall
尝试过了,但没有成功。我会尝试重新安装Ruby/Devkit。谢谢你的帮助。 - george

0
如果Ryan Barton的答案无效,请尝试以下方法。这个方法也来自于RubyInstaller Wiki
在命令提示符中,输入以下命令:
SET COMSPEC

默认输出应该如下所示:

ComSpec=C:\Windows\system32\cmd.exe

如果输出中包含的可执行文件与 cmd.exe 不同,请将其调整为使用 cmd.exe。请注意,变量必须包含指向 cmd.exe 可执行文件的完整路径,否则相对路径将会失败。
某些工具可能会更改您的命令处理器命令,这会干扰 Ruby 调用子进程。
未经处理的变量(可在“系统属性 - 环境变量”中找到)为:%SystemRoot%\system32\cmd.exe 更改该变量并尝试重新安装 gem。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接