通过gem install mechanize安装gem时显示错误"RUBYOPT中的无效切换:-F(RuntimeError)"

Mar*_*slo 6 ruby rubygems

我试图通过以下命令在我的计算机上安装gem(mechanize):

>> gem install mechanize --platform=ruby
>> gem install mechanize
Run Code Online (Sandbox Code Playgroud)

错误

ERROR:  Error installing mechanize:
        ERROR: Failed to build gem native extension.

    "C:/Program Files/Ruby200-x64/bin/ruby.exe" extconf.rb
C:/Program Files/Ruby200-x64/bin/ruby.exe: invalid switch in RUBYOPT: -F (RuntimeError)
Run Code Online (Sandbox Code Playgroud)

在我尝试安装宝石时显示(机械化).并以管理员身份运行命令行.

我通过以下命令安装了DevKit(config.xml已经修改了原因)

ruby dk.rb init
ruby dk.rb install
Run Code Online (Sandbox Code Playgroud)

有没有什么方法可以解决这个错误?提前致谢.

这里有一些OS信息:

  • 操作系统版本:Win7 64位
  • Ruby版本:2.0.0p195 x64
  • DevKit版本:DevKit-mingw64-64-4.7.2-20130224-1432-sfx
  • GEM版本:2.0.3
  • Ruby安装位置:C:/ Program Files/Ruby200-x64

详细信息可以从截图中找到: 在此输入图像描述

根据故障排除,我将从Regedit(HKCU\Software\Microsoft\Command Processor)中删除AutoRun ,但它仍然无法正常工作!

2013/06/03 10:00:26 PM >> REG QUERY "HKCU\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
    AutoRun    REG_SZ    (if %ANSICON_VER%==^%ANSICON_VER^% "C:\Marslo\Tools\Software\System\CommandLi
icon" -p)&run C:\WINDOWS\autorun.cmd
    AutoRun_bak    REG_SZ    (if %ANSICON_VER%==^%ANSICON_VER^% "C:\Marslo\Tools\Software\System\Comma
\ansicon" -p)&chcp 437&run C:\WINDOWS\autorun.cmd

2013/06/03 10:01:00 PM >> REG QUERY "HKLM\Software\Microsoft\Command Processor" /s

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor
    CompletionChar    REG_DWORD    0x40
    DefaultColor    REG_DWORD    0x0
    EnableExtensions    REG_DWORD    0x1
    PathCompletionChar    REG_DWORD    0x40
    AutoRun    REG_SZ    %WINDIR%\run.bat

2013/06/03 10:01:05 PM >> REG DELETE "HKCU\Software\Microsoft\Command Processor" /v AutoRun
Delete the registry value AutoRun (Yes/No)? yes
The operation completed successfully.
Run Code Online (Sandbox Code Playgroud)

有关宝石和红宝石的详细信息:

2013/06/03 10:15:46 PM >> gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 2.0.3
  - RUBY VERSION: 2.0.0 (2013-05-14 patchlevel 195) [x64-mingw32]
  - INSTALLATION DIRECTORY: C:/Program Files/Ruby200-x64/lib/ruby/gems/2.0.0
  - RUBY EXECUTABLE: "C:/Program Files/Ruby200-x64/bin/ruby.exe"
  - EXECUTABLE DIRECTORY: C:/Program Files/Ruby200-x64/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x64-mingw32
  - GEM PATHS:
     - C:/Program Files/Ruby200-x64/lib/ruby/gems/2.0.0
     - C:/Users/jiaoolii/.gem/ruby/2.0.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
Run Code Online (Sandbox Code Playgroud)

Mar*_*slo 16

我找到了原因.只是因为Ruby的安装路径中有一个空格

RUBY EXECUTABLE: "C:/Program Files/Ruby200-x64/bin/ruby.exe"
Run Code Online (Sandbox Code Playgroud)

将Ruby重新安装到不包含空格的路径,将修复此错误.


当然,AutoRun应该从HKCU\Software\Microsoft\Command Processor和中删除HKLM\Software\Microsoft\Command Processor.

那很重要!

  • 注意:你真的不需要在别处重新安装(好吧,至少在我的情况下,我没有).只要确保在任何地方使用8.3路径,即`C:/ Progra~1 /`,包括`CD Progra~1`等. (2认同)