2

在尝试执行bundle install现有 Ruby on Rails 项目时,当捆绑程序到达Installing linecache (0.43) with native extensions. 我在项目 Gem 文件中没有看到 linecache,所以没有它我无法尝试捆绑。我正在运行 Windows 7 和 JetBrains RubyMine 2.0.2。我尝试从 RubyMine 内部和命令行进行捆绑(我意识到这些是等效的)。

我的路径中有以下 Ruby 和 DevKit-3.4.5-20100819-1535-sfx 目录:

C:\Ruby187\bin
C:\DevKit-3.4.5-20100819-1535-sfx\bin
C:\DevKit-3.4.5-20100819-1535-sfx\mingw\bin

下面是 bundle 命令的输出:

获取 http://rubygems.org/ 的源索引
使用耙子 (0.8.7)
使用 activesupport (2.3.4)
使用机架 (1.0.1)
使用动作包 (2.3.4)
使用 actionmailer (2.3.4)
使用活动记录 (2.3.4)
使用活动资源 (2.3.4)
使用 authlogic (2.1.6)
使用构建器 (2.1.2)
使用 mime 类型 (1.16)
使用 xml-simple (1.0.12)
使用 aws-s3 (0.6.2)
使用捆绑器 (1.0.0)
使用 calendar_date_select (1.16.1)
使用 cgi_multipart_eof_fix (2.5.0)
使用配置 (1.1.0)
使用守护进程 (1.1.0)
使用延迟作业(2.1.0.pre)
使用 factory_girl (1.3.2)
使用 gem_plugin (0.2.3)
使用 json_pure (1.4.6)
使用启动 (0.3.7)
使用 rest-client (1.6.1)
使用 heroku (1.11.0)
使用本机扩展安装 linecache (0.43) C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/installer.rb:483:in `build_extensions': 错误: 无法构建 gem 本机扩展。(Gem::Installer::ExtensionBuildError)

C:/Ruby187/bin/ruby.exe extconf.rb
创建 Makefile

制作
Makefile:130:警告:覆盖目标“C:/代码”的命令
Makefile:124:警告:忽略目标“C:/代码”的旧命令
gcc -I。-I/C/Ruby187/lib/ruby/1.8/i386-mingw32 -I/C/Ruby187/lib/ruby/1.8/i386-mingw32 -I. -g -O2 -DFD_SETSIZE=256 -c trace_nums.c
gcc -shared -s -o trace_nums.so trace_nums.o -L。-LC:/Ruby187/lib -L. -Wl,--enable-auto-image-base,--enable-auto-import,--export-all -lmsvcrt-ruby18 -lshell32 -lws2_32  

进行安装
Makefile:130:警告:覆盖目标“C:/代码”的命令
Makefile:124:警告:忽略目标“C:/代码”的旧命令
安装 -d C:/代码
/bin/install -c -m 0755 trace_nums.so C:/Code Metrics/2nd/cmusv/autotest-growl/ruby/1.8/gems/linecache-0.43/lib
/bin/install: 省略目录 `C:/Code'
制作:*** [Metrics/2nd/cmusv/autotest-growl/ruby/1.8/gems/linecache-0.43/lib/trace_nums.so] 错误 1


Gem 文件将继续安装在 C:/Code Metrics/2nd/cmusv/autotest-growl/ruby/1.8/gems/linecache-0.43 以供检查。
结果记录到 C:/Code Metrics/2nd/cmusv/autotest-growl/ruby/1.8/gems/linecache-0.43/ext/gem_make.out
    来自 C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/installer.rb:446:in `each'
    来自 C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/installer.rb:446:in `build_extensions'
    来自 C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/installer.rb:198:in `install'
    来自 C:/Ruby187/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/source.rb:100:in `install'
    来自 C:/Ruby187/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/installer.rb:55:in `run'
    来自 C:/Ruby187/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/spec_set.rb:12:in `each'
    来自 C:/Ruby187/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/spec_set.rb:12:in `each'
    来自 C:/Ruby187/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/installer.rb:44:in `run'
    来自 C:/Ruby187/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/installer.rb:8:in `install'
    来自 C:/Ruby187/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/cli.rb:217:in `install'
    来自 C:/Ruby187/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/vendor/thor/task.rb:22:in `send'
    来自 C:/Ruby187/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/vendor/thor/task.rb:22:in `run'
    来自 C:/Ruby187/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task'
    来自 C:/Ruby187/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/vendor/thor.rb:246:in `dispatch'
    来自 C:/Ruby187/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/vendor/thor/base.rb:389:in `start'
    来自 C:/Ruby187/lib/ruby/gems/1.8/gems/bundler-1.0.0/bin/bundle:13
    来自 C:\Ruby187\bin/bundle:19:in `load'
    来自 C:\Ruby187\bin/bundle:19
    从 -e:1:in `load'
    从 -e:1

进程以退出代码 1 结束

我错过了什么导致这个捆绑包失败?

4

1 回答 1

2

看起来可能是因为 ruby​​ 安装路径“C:/Code Metrics/2nd/cmusv/autotest-growl/ruby/...”中的空间:

Makefile:130: warning: overriding commands for target `C:/Code'

/bin/install: omitting directory `C:/Code'
make: *** [Metrics/2nd/cmusv/autotest-growl/ruby/1.8/gems/linecache-0.43/lib/trace_nums.so] Error 1

RubyMine 是否配置为使用不同的 ruby​​ 安装?您的 PATH 系统变量是否列出了此路径并且优先级高于您的 Ruby187 安装?

于 2010-10-26T17:35:43.103 回答