簡體   English   中英

用Cygwin運行Ruby寶石

[英]Running Ruby gems with Cygwin

我在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問題:

什么版本的ruby與cygwin一起使用?

但根據我對解決方案的理解,它將尋找擴展名為.bat的文件。 在我的cygwin中運行它的部分來測試它不會產生有用的結果。

有關使cygwin與我在寶石環境中看到的一致的任何提示?

雖然我的回答有點晚,但我認為它可能有助於有同樣問題的人。

對我來說問題是,所有ruby可執行文件都存儲在~/bin 。中,這在我的cygwin路徑中沒有設置。 所以我在~/.gemrc更改了所有ruby gems及其可執行文件的位置:

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

重新安裝寶石后,一切都很順利。 這會將所有gem可執行文件直接安裝到/usr/bin 對於多用戶設置,這肯定有點臟。

如果您需要適當的多用戶設置,更好的方法是將PATH調整為指向~./bin isntead。

進一步閱讀:

您可以將以下內容添加到.bashrc或類似內容中:

export PATH=$PATH:~/bin

並執行source ~/.bashrc將其立即添加到路徑中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM