在CygWin上安装ruby宝石时出现错误



我已经在CygWin中安装了ruby 2.2.5 / gem 2.3.0,但是在使用gem install时出现了安装错误。

在一些地方建议,我也尝试了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降级到6年前的东西,不要这样做,我不知道如何恢复,所以我删除了我的Cygwin安装,并为此开始新鲜和干净。Windows 10是我的操作系统。

我使用cygwin的安装程序来安装当前版本的ruby, gem和sass。(我敢肯定,随着时间的推移,这些遗嘱号码将会过时。)

  • ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-cygwin]
  • ruby-devel 2.3.3-1
  • gem 2.6.11
  • Sass 3.4.21 selective steve

旁注我倾向于在视图下拉菜单下使用"类别",并选择devel类别。我还让cygwin自动为我选择依赖项。

在这一点我有同样的错误。查看了输出提供的日志,我决定尝试其中的一些命令,比如缺少的"gcc"。再次加载cygwin安装程序,安装了gcc版本5.4.0(包名为gcc-core: GNU Compiler Collection (C, OpenMP))

试图再次运行'gem install compass',又一个错误,它找不到'make'。再次预热安装程序并找到'make: 'make'实用程序的GNU版本(4.2.1-2)

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

这工作!导航到你的目录并运行'compass watch'命令,我非常兴奋。在命令行中运行'compass -v'将显示1.0.3版本

短答:使用Cygwin安装程序安装以下包

  • ruby:解释性面向对象脚本语言
  • ruby-devel:解释性面向对象脚本语言
  • Ruby -gems: Ruby Module管理系统
  • Ruby -sass: Ruby css编译器扩展
  • make: make工具的GNU版本
  • gcc-core: GNU Compiler Collection(c, OpenMP)
  • libffi-devel:便携式外部函数接口库

然后以管理员身份运行cygwin,输入命令'gem install compass'

最新更新