Zainstalowałem Rbenv zgodnie ze wskazówkami github. Używam OSX, ale wypróbowałem to na maszynie Wirtualnej Ubuntu 12.04 i uzyskałem te same wyniki. Oto, co otrzymuję w moim terminalu, gdy próbuję zmienić wersje Ruby:
rbenv versions
* 1.9.3-p0 (set by /Users/user/.rbenv/version)
1.9.3-p125
rbenv global
1.9.3-p0
rbenv rehash
ruby -v
ruby 1.8.7 (2011-12-28 patchlevel 357) [universal-darwin11.0]
which ruby
/usr/bin/ruby
Czy ktoś ma jakieś pomysły, dlaczego rbenv nie zmienia wersji ruby tak, jak jej się wydaje? Ponadto w katalogu lokalnym nie ma pliku .rbenv, który powodowałby domyślną wersję Ruby do 1.8.7
rbenv local
rbenv: no local version configured for this directory
Odpowiedzi:
Sprawdź, czy ŚCIEŻKA zawiera $ HOME / .rbenv / shims i $ HOME / .rbenv / bin
Sprawdź także, czy masz w swoim ~ / .bash_profile, jeśli używasz bash lub ~ / .zshenv, jeśli używasz zsh
UWAGA: Upewnij się, że jest to ostatnie ustawienie w twoim ~ / .bash_profile. Wystąpił problem polegający na tym, że zainstalowałem program, który zaktualizował mój profil .bash i zresetował PATH.
Na koniec upewnij się, że w
$HOME
folderze nie ma.ruby-version
pliku, który mógł zostać utworzony przypadkowo, jeśli miałbyś to zrobić$ rbenv local <ruby-version>
w swoim$HOME
folderze. Wykonanie$ rbenv global <ruby-version>' modifies the
$ HOME / .rbenv / wersjafile, and the existence of a
.ruby-wersjafile in the
$ HOMEfolder would override the version set by
$ HOME / .rbenv / wersja`.Z dokumentów:
źródło
exec $SHELL -l
(niższe L)export RBENV_ROOT="$HOME/.rbenv" if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
działa całkiem dobrze :) Sprawdź także, czy inicjacja PATH jest po deklaracji rbenv.Naprawiłem to, dodając następujące informacje do mojego ~ / .bash_profile:
To jest udokumentowane na https://github.com/sstephenson/rbenv .
Z tego, co mogę powiedzieć, nie ma katalogu ~ / .rbenv / bin, o którym wspomniano w poście @rodowi.
źródło
export PATH="$HOME/.rbenv/bin:$PATH
działać (bo mi się nie udawało)?~/.rbenv/bin/
jeśli instalujesz przez homebrew lub linuxbrew. I nie powinieneś sam ustawiać ścieżki podkładek, podobnierbenv init
jak to (i więcej) dla Ciebie .To może być stare pytanie, ale Google zaprowadził mnie tutaj i, dla potomności, pomyślał, że się podzielę.
Mój problem utrzymywał się po wielu powyższych zalecanych rozwiązaniach. Podobnie jak OP, zainstalowałem rbenv, a następnie wersję ruby, ale mój laptop domyślnie był ustawiony na system. To, co przeoczyłem, to to, że kiedy biegłem:
IOW, nadal domyślnie działał system. Szybki
przełączyłem go na nową wersję.
źródło
Pierwszym krokiem jest ustalenie, który rubin jest nazywany:
which ruby
Twój system mówi:
/usr/bin/ruby
To NIE jest podkładka używana przez rbenv, która (na MacOS) powinna wyglądać następująco:
/Users/<username>/.rbenv/shims/ruby
Podkładka jest w rzeczywistości skryptem, który działa jak przekierowanie do ustawionej wersji ruby.
rbenv global 1.9.3 rbenv local --unset rbenv shell --unset
Zalecam, aby w przypadku problemów związanych z rozwiązywaniem problemów rozłączyć wersję „lokalną” specyficzną dla projektu i wersję „powłoki” specyficzną dla powłoki i po prostu przetestować przy użyciu ustawienia wersji „globalnej” określonej w zwykłym pliku tekstowym w ~ / .rbenv / verion, który w twoim przypadku będzie to po prostu numer wersji „1.9.3”. Możesz zrobić „ls -laG” w katalogu głównym folderu projektu (nie w folderze domowym), aby upewnić się, że nie ma już pliku „.ruby-version”.
Możesz użyć „wersji rbenv”, aby określić, która wersja rbenv jest ustawiona (oraz lokalizację i nazwę pliku, który ją ustawia).
rbenv versions
BRAK Z LICZBY: dopóki ścieżka nie zostanie poprawnie ustawiona.
Użyj tego, aby upewnić się, że * MacOS będzie cię przestrzegać:
eval "$(rbenv init -)"
Śledzony przez:
which ruby
Aby upewnić się, że wygląda następująco: /Users//.rbenv/shims/ruby
Następnie dodaj linię do swojego profilu, aby działał za każdym razem, gdy otwierasz nowe okno terminala:
~/.bash_profile eval "$(rbenv init -)"
Istnieją inne sposoby modyfikowania ścieżki, możesz zastąpić dowolną z nich zamiast uruchamiać init rbenv.
UWAGA: zainstaluj ponownie Railsy za pomocą:
gem install rails
Jeśli próbujesz uruchomić Ruby on Rails, najpierw musisz to wszystko uruchomić, a następnie ponownie zainstalować klejnot Rails. Poprzednia instalacja Railsów użyje zakodowanej ścieżki do niewłaściwego rubinu, a kilka innych rzeczy znajdzie się w niewłaściwym miejscu, więc po prostu zainstaluj klejnot ponownie.
PS Jeśli Twój MacOS nie będzie cię słuchać (* wspomniano powyżej), być może będziesz musiał znaleźć inny sposób na modyfikację ścieżki, ale nie jest to problem, ponieważ „Mac tylko działa”;)
źródło
Właśnie znalazłem ten sam problem. To, co zrobiłem, to odinstalowanie rbenv (przez homebrew) i ponowna instalacja. Dodałem również
do ~ / .bash_profile po ponownej instalacji rbenv. Działa idealnie teraz.
źródło
W moim przypadku zmiana
~/.zshenv
nie działała. Musiałem wprowadzić zmiany w środku~/.zshrc
.Właśnie dodałem:
na górze
~/.zshrc
zrestartował powłokę i wylogował się.Sprawdź, czy zadziałało:
źródło
Uruchom to polecenie
Dodaj rbenv do bash, aby ładował się za każdym razem, gdy otwierasz terminal
rozwiąże to twój problem Odnośnik
źródło
Jeśli używasz bash , przejdź do
i dodaj następujący wiersz (jeśli jeszcze go nie ma)
Jeśli używasz Zsh, przejdź do
i dodaj ten sam wiersz kodu na końcu pliku .zshrc.
Następnie po prostu uruchom ponownie terminal i powinno już być dobrze.
źródło
rbenv help shell
„Ustawia wersję Ruby specyficzną dla powłoki, ustawiając w powłoce zmienną środowiskową„ RBENV_VERSION ”. Ta wersja zastępuje wersje specyficzne dla aplikacji lokalnej i wersja globalna. Powinien być ciągiem pasującym do wersji Ruby znanej rbenv. Ciąg znaków wersji specjalnej „użyje domyślnego systemu Ruby. Uruchom wersje rbenv”, aby wyświetlić listę dostępnych wersji Ruby. ”
Pod warunkiem, że rbenv został poprawnie zainstalowany, ruby -v będzie odpowiadać
rbenv shell 1.9.3-p125
źródło
Jak dla mnie najłatwiejszym sposobem używania
rbenv
wraz zzsh
dodawaniemrbenv
do sekcji wtyczek w.zshrc
config. W moim przypadku wygląda podobnie do:Po tym nie ma problemów z instalacją, przełączaniem, używaniem wersji Ruby przy pomocy
rbenv
.Pamiętaj o ponownym uruchomieniu sesji terminala po wprowadzeniu zmian.
źródło
Miałem ten sam problem, ale spowodowany przez Homebrew:
W jakiś sposób zainstalowałem też Ruby przez Homebrew, a ścieżka Homebrew wyprzedziła moją ścieżkę rbenv
$PATH
. Bieganiebrew uninstall ruby
naprawiło to dla mnie.źródło
biegać:
Po uruchomieniu tego, kiedy ustawiłem moją lokalną wersję rbenv:
wtedy moja
ruby -v
i mojarbenv local
wersja zbiegły się.Uwaga: możesz także wyjść z katalogu, w którym się znajdujesz, a następnie wrócić do niego, zauważyłem, że było to dla mnie konieczne, aby wszystko działało.
źródło
Doszedłem do tego samego problemu. Naprawiono to poprzez uruchomienie polecenia „rbenv global” z „sudo”. Myślę, że to był problem z pozwoleniem.
aktualizacja: w końcu znalazłem rozwiązanie. Na moim Macu była jedna taka sama „wersja” pliku, która znajduje się w „/usr/local/Cellar/rbenv/0.3.0/”. Myślę, że od czasu do czasu został stworzony przez pomyłkę. powinieneś to usunąć.
źródło
Kiedy miałem te objawy, okazało się, że problem polegał na tym, że instalacja nie powiodła się w połowie dla nowej wersji Ruby, na którą próbowałem się przełączyć, bez mojej uwagi. Poprawka polegała na usunięciu i ponownej instalacji.
(Oznaczało to, że chociaż Ruby 1.9.3 pojawił się na liście dostępnych wersji rbenv, nie miał pliku wykonywalnego na ścieżce, na której rbenv tak zakładał. Ponieważ rbenv próbuje zmienić twoją wersję ruby tylko przygotowując lokalizację do twoja ścieżka, jeśli nic nie jest w miejscu, które poprzedza, Twój system operacyjny z przyjemnością przeszuka twoją domyślną ścieżkę i znajdzie twoją wersję systemu, w moim przypadku jak w pytaniu 1.8.7.)
źródło
dla użytkownika skorupy ryb
źródło
Zdarzyło mi się to zaraz po ponownej instalacji
rbenv
. Najwyraźniej miałem.ruby-version
plik w moim katalogu domowym, określający wersję, która już nie istniała. Po usunięciu pliku wszystko działało.źródło
Upewnij się, że ostatni wiersz
.bash_profile
to:źródło
Zaakceptowana odpowiedź sugeruje dodanie następujących elementów:
To nie będzie działać na Mac OSX, do którego odwołuje się OP. W rzeczywistości, jeśli zainstalujesz rbenv przez
brew install rbenv
, który jest tak naprawdę jedyną metodą instalacji w Mac OSX, ponieważcurl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash
nie powiedzie się w OSX, to plik wykonywalny rbenv zostanie zainstalowany w:Jednak nawet w OSX root rbenv pozostanie w katalogu $ HOME:
Co to znaczy? Oznacza to, że kiedy zainstalujesz rubiny, zostaną one zainstalowane w podanym katalogu domowym pod .rbenv:
Teraz instalacja parzenia wykonała pracę, którą musiałbyś wykonać ręcznie w Linuksie. Na przykład w Linuksie musiałbyś ręcznie zainstalować Ruby-build jako wtyczkę:
Dokonano tego już przy instalacji Homebrew. Jest jeden ważny krok, który należy zrobić w instalacji homebrew, podobnie jak w instalacji Linux. Musisz dodać podkładki rbenv do swojej ścieżki. Aby to zrobić, kiedy uruchomi się twoja powłoka, musisz ocenić następujące polecenie (które z kolei doda podkładki rbenv na początku twojej $ PATH):
Teraz, gdy biegniesz
echo $PATH
, zobaczysz podkładki rbenv:Teraz sprawdź swoją wersję ruby, a będzie ona odzwierciedlała zainstalowany rubin rbenv:
źródło
O dziwo, wersja rbenv nie ustawiła pliku .rbenv Sprawdź za pomocą: ls -ltra -> aby zobaczyć, czy napisano rbenv
źródło
Możesz spróbować użyć chruby ? chruby nie opiera się na podkładek, zamiast tego tylko modyfikuje
PATH
,GEM_HOME
,GEM_PATH
.źródło
Zapomniałem usunąć rvm przed instalacją rbenv. Usunąłem rvm i ponownie zainstalowałem rbenv, ale system nadal nie używał wersji Ruby oznaczonej przez rbenv jako globalna. Próbowałem zamknąć Terminal, ale zadziałało to dopiero po ponownym uruchomieniu całej maszyny.
źródło