2015-10-14 15 views
8

Tôi đang sử dụng Cygwin với phiên bản cygwin'd của ruby ​​trên Windows.Chạy đá quý Ruby với Cygwin

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

Sau khi cài đặt thành công rspec (gem install rspec), tôi thử chạy lệnh init cơ bản (rspec --init) để bắt đầu, nhưng tôi nhận được lệnh bash lệnh không tìm thấy.

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

Tôi đoán điều này xảy ra vì không có "rspec" tập tin dưới C của tôi: \ cygwin64 \ thư mục bin (như có "ruby", "IRB", vv file Cygwin rằng phải nhìn khi các lệnh được gõ vào nó).

Nhìn qua các thư mục cygwin của tôi, tôi có thể xem tệp "exe" rspec trong "C: \ cygwin64 \ home \ tên người dùng \ .gem \ ruby ​​\ gems \ rspec-core-3.3.2 \ exe". Tôi nghĩ rằng điều này có nghĩa nó chỉ đơn giản là một vấn đề của việc thêm tập tin này vào con đường của Cygwin, nhưng tôi đã không thể tìm thấy một ví dụ tốt về điều này. Lý tưởng nhất là giải pháp sẽ xử lý gem này (rspec) và tất cả các cài đặt trong tương lai mà không cần phải "hard-code" đường dẫn mọi lúc.

Nhìn vào "môi trường đá quý" của tôi, có vẻ như đá quý đã cài đặt đã nằm trong "GEM PATHS" của tôi. Nó có vẻ như có một ngắt kết nối giữa điều này và nơi Cygwin đang tìm kiếm.

$ 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 
    ... 

Điều gần nhất tôi tìm thấy trong tìm kiếm của tôi là một câu hỏi StackOverflow đây:

What version of ruby use with cygwin?

nhưng từ những gì tôi hiểu của giải pháp, nó sẽ tìm kiếm file với .bat sự mở rộng. Chạy các phần của nó trong Cygwin của tôi để kiểm tra nó ra không tạo ra kết quả hữu ích.

Bất kỳ mẹo nào về cách tạo cygwin phù hợp với những gì tôi thấy trong môi trường đá quý?

Trả lời

10

Mặc dù câu trả lời của tôi hơi trễ một chút trong điều này, tôi nghĩ rằng nó có thể giúp ai đó gặp vấn đề tương tự.

Vấn đề đối với tôi là, tất cả các tệp thi hành ruby ​​đều được lưu trữ trong ~/bin., Không được đặt trong đường dẫn cygwin của tôi. Vì vậy, tôi đã thay đổi vị trí của tất cả các đá quý ruby ​​và thực thi của họ trong ~/.gemrc tôi:

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

Sau khi cài đặt lại những viên đá quý, tất cả mọi thứ đã làm việc tốt từ tôi về phía trước. Điều này sẽ cài đặt tất cả các tệp thi hành gem trực tiếp vào /usr/bin. Điều này là chắc chắn một chút bẩn khi nói đến thiết lập đa người dùng.

Nếu bạn yêu cầu thiết lập nhiều người dùng phù hợp, cách tốt hơn là điều chỉnh PATH để trỏ tới ~./bin không thành công.

bài đọc thêm:

6

Bạn chỉ có thể thêm dòng sau vào .bashrc của bạn hoặc tương tự:

PATH=$PATH:~/bin 

và làm source ~/.bashrc để thêm nó vào con đường ngay lập tức ely.

Các vấn đề liên quan