2015-10-14 68 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將其添加到路徑立即伊利。