2015-10-14 11 views
8

Używam Cygwin z wersją rubiego cygwin na Windows.Uruchamianie klejnotów Ruby przy pomocy Cygwin

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

Po pomyślnym zainstalowaniu rspec (gem install rspec), staram uruchamiając podstawowe polecenia init (rspec --init), aby zacząć, ale pojawia się komenda bash Nie znaleziono wiadomości.

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

Zgaduję, że to się dzieje, ponieważ nie ma „rspec” pod moim pliku C: \ cygwin64 \ bin (jak jest „Ruby”, „IRB”, itd. Pliki że Cygwin musi wyglądać w momencie wpisywania poleceń).

Przeglądając moje katalogi cygwin, widzę plik "exe" rspec pod "C: \ cygwin64 \ home \ nazwa_użytkownika \ .gem \ ruby ​​\ gems \ rspec-core-3.3.2 \ exe". Myślę, że oznacza to po prostu kwestię dodania tego pliku do ścieżki cygwin, ale nie byłem w stanie znaleźć tego dobrego przykładu. Idealnie rozwiązanie poradziłoby sobie z tym klejnotem (rspec) i wszystkimi przyszłymi instalacjami bez konieczności "twardego kodowania" ścieżki za każdym razem.

Patrząc na moje "środowisko klejnotów", wygląda na to, że zainstalowane kamienie są już pod moimi "PUNKAMI GEM". Wygląda na to, że istnieje rozdźwięk między tym a miejscem, w którym patrzy 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 
    ... 

Najbliższy rzeczą znalazłem w moich poszukiwań był kolejnym StackOverflow pytanie tutaj:

What version of ruby use with cygwin?

ale z tego co rozumiem rozwiązania, to będzie szukać plików z .bat rozbudowa. Uruchamianie jego części w moim cygwin w celu przetestowania go nie przynosi przydatnych rezultatów.

Jakieś wskazówki dotyczące tworzenia linii cygwin z tym, co widzę w środowisku klejnotów?

Odpowiedz

10

Chociaż moja odpowiedź jest nieco opóźniona, sądzę, że może pomóc komuś, kto ma ten sam problem.

Problem polegał na tym, że wszystkie pliki wykonywalne ruby ​​były przechowywane w ~/bin., Co nie było ustawione na mojej ścieżce cygwin. Więc zmieniłem lokalizację wszystkich klejnotów Ruby i ich wykonywalnych w moim ~/.gemrc:

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

Po ponownym zainstalowaniu kamienie, wszystko działało w porządku ze mną do przodu. Spowoduje to zainstalowanie wszystkich plików wykonywalnych gem bezpośrednio w /usr/bin. Jest to na pewno trochę brudne, jeśli chodzi o konfiguracje wielu użytkowników.

Jeśli wymagana jest odpowiednia konfiguracja dla wielu użytkowników, lepszym rozwiązaniem byłoby ustawienie parametru PATH, tak aby wskazywał na ~./bin isntead.

Kolejne odczyty:

6

Można tylko dodać następujące do .bashrc lub podobne:

PATH=$PATH:~/bin 

i zrobienia source ~/.bashrc, aby dodać go do ścieżka od razu ely.

Powiązane problemy