用Cygwin运行Ruby宝石

问题描述 投票:10回答:2

我在Windows上使用Cygwin和cygwin'd版本的ruby。

$ ruby -v
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-cygwin]

在成功安装rspec(gem install rspec)之后,我尝试运行基本的init命令(rspec --init)来开始,但是我得到了一个bash命令not found消息。

$ rspec --init
-bash: rspec: command not found

我猜这种情况正在发生,因为我的C:\ cygwin64 \ bin目录下没有“rspec”文件(因为有“ruby”,“irb”等文件,cygwin在输入命令时必须查看这些文件)。

浏览我的cygwin目录,我可以在“C:\ cygwin64 \ home \ username \ .gem \ ruby​​ \ gems \ rspec-core-3.3.2 \ exe”下看到rspec“exe”文件。我认为这意味着只需将此文件添加到cygwin的路径中,但我无法找到一个很好的例子。理想情况下,该解决方案将处理此gem(rspec)和所有未来的安装,而无需每次都对该路径进行“硬编码”。

看看我的“宝石环境”,似乎安装的宝石已经在我的“GEM PATHS”之下了。似乎这与Cygwin正在寻找的地方之间存在脱节。

$ gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 2.4.7
  - RUBY VERSION: 2.2.2 (2015-04-13 patchlevel 95) [x86_64-cygwin]
  - INSTALLATION DIRECTORY: /home/username/.gem/ruby
  - RUBY EXECUTABLE: /usr/bin/ruby.exe
  - EXECUTABLE DIRECTORY: /home/username/bin
  - SPEC CACHE DIRECTORY: /home/username/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-cygwin
  - GEM PATHS:
     - /home/username/.gem/ruby
     - /usr/share/gems
     - /usr/local/share/gems
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /usr/local/bin
     - /usr/bin
     ...

我在搜索中找到的最接近的东西是另一个StackOverflow问题:

What version of ruby use with cygwin?

但根据我对解决方案的理解,它将寻找扩展名为.bat的文件。在我的cygwin中运行它的部分来测试它不会产生有用的结果。

有关使cygwin与我在宝石环境中看到的一致的任何提示?

ruby bash cygwin
2个回答
12
投票

虽然我的回答有点晚,但我认为它可能有助于有同样问题的人。

对我来说问题是,所有ruby可执行文件都存储在~/bin。中,这在我的cygwin路径中没有设置。所以我在我的~/.gemrc中更改了所有ruby gems及其可执行文件的位置:

gemhome: /usr/local/rubygems
gem: --bindir /usr/bin

重新安装宝石后,一切都很顺利。这将直接将所有gem可执行文件安装到/usr/bin中。对于多用户设置,这肯定有点脏。

如果你需要一个适当的多用户设置,更好的方法是调整PATH指向~./bin isntead。

进一步阅读:


7
投票

您可以将以下内容添加到.bashrc或类似内容中:

export PATH=$PATH:~/bin

并做source ~/.bashrc立即将它添加到路径。

© www.soinside.com 2019 - 2024. All rights reserved.