在CygWin上安装ruby gems时出现类型错误

在CygWin上安装ruby gems时出现类型错误,ruby,windows,cygwin,Ruby,Windows,Cygwin,我已经在CygWin中安装了ruby 2.2.5/gem 2.3.0,但是我在使用gem安装时遇到了安装错误 正如在某些地方所建议的那样,我也尝试了gem update--system,但即使这样也无济于事 如何纠正这个问题 我已附加了我运行的命令的输出: $ gem install napa --backtrace ERROR: While executing gem ... (TypeError) no implicit conversion of nil into String

我已经在
CygWin
中安装了
ruby 2.2.5/gem 2.3.0
,但是我在使用
gem安装时遇到了安装错误

正如在某些地方所建议的那样,我也尝试了
gem update--system
,但即使这样也无济于事

如何纠正这个问题

我已附加了我运行的命令的输出:

$ gem install napa --backtrace
ERROR:  While executing gem ... (TypeError)
    no implicit conversion of nil into String
        /usr/local/share/ruby/site_ruby/rubygems/installer.rb:168:in `check_executable_overwrite'
        /usr/local/share/ruby/site_ruby/rubygems/installer.rb:409:in `block in generate_bin'
        /usr/local/share/ruby/site_ruby/rubygems/installer.rb:396:in `each'
        /usr/local/share/ruby/site_ruby/rubygems/installer.rb:396:in `generate_bin'
        /usr/local/share/ruby/site_ruby/rubygems/installer.rb:236:in `install'
        /usr/local/share/ruby/site_ruby/rubygems/request_set.rb:156:in `block in install'
        /usr/local/share/ruby/site_ruby/rubygems/request_set.rb:140:in `each'
        /usr/local/share/ruby/site_ruby/rubygems/request_set.rb:140:in `install'
        /usr/local/share/ruby/site_ruby/rubygems/commands/install_command.rb:249:in `install_gem'
        /usr/local/share/ruby/site_ruby/rubygems/commands/install_command.rb:291:in `block in install_gems'
        /usr/local/share/ruby/site_ruby/rubygems/commands/install_command.rb:287:in `each'
        /usr/local/share/ruby/site_ruby/rubygems/commands/install_command.rb:287:in `install_gems'
        /usr/local/share/ruby/site_ruby/rubygems/commands/install_command.rb:202:in `execute'
        /usr/local/share/ruby/site_ruby/rubygems/command.rb:307:in `invoke_with_build_args'
        /usr/local/share/ruby/site_ruby/rubygems/command_manager.rb:167:in `process_args'
        /usr/local/share/ruby/site_ruby/rubygems/command_manager.rb:137:in `run'
        /usr/local/share/ruby/site_ruby/rubygems/gem_runner.rb:54:in `run'
        /usr/bin/gem:21:in `<main>'

$ gem update --system
Updating rubygems-update
ERROR:  While executing gem ... (TypeError)
    no implicit conversion of nil into String
$gem安装napa——回溯
错误:执行gem时。。。(打字错误)
没有将nil隐式转换为字符串
/usr/local/share/ruby/site\u ruby/rubygems/installer.rb:168:in'check\u executable\u overwrite'
/usr/local/share/ruby/site_ruby/rubygems/installer.rb:409:in`block in generate_bin'
/usr/local/share/ruby/site_ruby/rubygems/installer.rb:396:in'each'
/usr/local/share/ruby/site_ruby/rubygems/installer.rb:396:in'generate_bin'
/usr/local/share/ruby/site_ruby/rubygems/installer.rb:236:in'install'
/usr/local/share/ruby/site\u ruby/rubygems/request\u set.rb:156:in'block in install'
/usr/local/share/ruby/site\u ruby/rubygems/request\u set.rb:140:in'each'
/usr/local/share/ruby/site\u ruby/rubygems/request\u set.rb:140:in'install'
/usr/local/share/ruby/site\u ruby/rubygems/commands/install\u command.rb:249:in'install\u gem'
/usr/local/share/ruby/site\u ruby/rubygems/commands/install\u command.rb:291:in'block in install\u gems'
/usr/local/share/ruby/site\u ruby/rubygems/commands/install\u command.rb:287:in'each'
/usr/local/share/ruby/site\u ruby/rubygems/commands/install\u command.rb:287:in'install\u gems'
/usr/local/share/ruby/site\u ruby/rubygems/commands/install\u command.rb:202:in'execute'
/usr/local/share/ruby/site_ruby/rubygems/command.rb:307:in`invoke_with_build_args'
/usr/local/share/ruby/site\u ruby/rubygems/command\u manager.rb:167:in'process\u args'
/usr/local/share/ruby/site\u ruby/rubygems/command\u manager.rb:137:in'run'
/usr/local/share/ruby/site_ruby/rubygems/gem_runner.rb:54:in'run'
/usr/bin/gem:21:in`'
$gem更新--系统
更新rubygems更新
错误:执行gem时。。。(打字错误)
没有将nil隐式转换为字符串

请跳到下面的简短答案,不要加入我的旅程。
所以我今天一直在做这件事,因为就我的一生而言,去年让它工作起来的东西今年却不起作用。在使用管理员权限时尝试执行所有步骤。我在其他线程中执行了一些有问题的命令,这些命令要求我将gem降级到6年前的某个级别,不要这样做,因为我不知道如何恢复,所以我删除了我的Cygwin安装,并为此重新开始。Windows 10是我的操作系统

我使用cygwin的安装程序安装了ruby、gem和sass的当前版本。(我确信随着时间的推移,这些数字将会过时)

  • ruby 2.3.3p222(2016-11-21修订版56859)[x86_64-cygwin]
  • ruby-devel 2.3.3-1
  • 创业板2.6.11
  • Sass 3.4.21
旁注我倾向于在视图下拉列表下使用“类别”,并选择devel类别。我还让cygwin自动为我选择依赖项

此时我也有同样的错误。通过查看输出提供的日志,我决定尝试一些在那里被破坏的命令,比如没有的“gcc”。再次加载cygwin安装程序,安装了gcc 5.4.0版(称为gcc核心的包:GNU编译器集合(C,OpenMP))

再次尝试运行“gem安装指南针”,另一个错误,它找不到“make”再次预热安装程序并找到'make:GNU版本的'make'实用程序(4.2.1-2)

再次运行compass install命令并检查日志:“libffi”看起来不像它在那里。在我们的cygwin安装程序中,在libs类别下,我已经有了libffi6 v2.2.1-2。我要给Liffi devel一次机会,因为我非常想安装指南针

这成功了!导航到您的目录并运行命令“compass watch”,我非常激动。在命令行中运行“compass-v”将显示版本1.0.3

简短回答: 使用Cygwin安装程序安装以下软件包

  • ruby:解释型面向对象脚本语言
  • ruby-devel:解释型面向对象脚本语言
  • ruby-gems:ruby模块管理系统
  • ruby-sass:ruby-css编译器扩展
  • make:make实用程序的GNU版本
  • gcc核心:GNU编译器集合(c、OpenMP)
  • libffi-devel:可移植的外部函数接口库

然后以管理员身份运行cygwin并输入命令“gem install compass”。

我也经历过这种情况。我能够通过cygwin安装程序安装sass和gem,但是这个命令以同样的方式失败。当我尝试安装gem compass时,我得到一个错误“构建gem本机扩展失败”。以管理员身份运行。我自己也在积极处理这个问题。上面只允许具有管理员权限的用户运行compass。在我工作的地方,我有两个用户,一个是管理员用户,一个是普通用户。通常我通常使用普通用户,需要时只使用管理员。要让compass为非管理员工作:启动cygwin,运行“gem install compass”。还有一步,我们需要通过编辑.bashrc文件和底部的加载项:export path=“$HOME/bin:$path”Save.bashrc文件,告诉cygwin不要为compass使用疯狂路径。关闭cygwin,打开它并运行“compass-v”返回指南针版本,您就完成了设置。