2015-10-14 66 views
8

我在Windows上使用Cygwin与cygwin'd版本的红宝石。与Cygwin一起运行红宝石

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

成功安装rspec的(创业板安装RSpec的),我尝试运行基本init命令(rspec的--init)后上手,但我得到一个bash命令未找到的消息。

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

我猜发生这种情况,因为有在我的C没有“rspec的”文件:\ cygwin64 \ bin目录(因为有“红宝石”,“IRB”等文件的cygwin必须看在何时输入命令)。

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

看着我的“宝石环境”,好像已安装好的宝石已经在我的“宝石路径”下。这似乎与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与我在宝石环境中看到的内容相符的任何提示?

回答

10

尽管我的答案有点晚,但我认为这可能会帮助有同样问题的人。

对我来说,问题在于,所有ruby可执行文件都存储在~/bin中,该文件未在我的cygwin路径中设置。所以,我在~/.gemrc改变了所有红宝石宝石和其可执行文件的路径:

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

后重新安装宝石,一切从我向前运行良好。这会将所有gem可执行文件直接安装到/usr/bin中。当涉及到多用户设置时,这肯定有点脏。

如果您需要适当的多用户设置,更好的方法是将PATH调整为指向~./bin

进一步阅读:

6

你可以只添加以下到您的.bashrc或类似:

PATH=$PATH:~/bin 

source ~/.bashrc将其添加到路径立即伊利。