Powyższe nie działa za pierwszym razem, działa za drugim razem.
Spróbuj ustawić wersję ruby na 2.0.0 dla każdego nowego okna powłoki.
Robić
$ rvm use 2.0.0 --default
daje
Warning! PATH is not properly set up, '/home/durrantm/.rvm/gems/ruby-1.9.3-p125/
bin' is not at first place,
usually this is caused by shell initialization files - check them for '
PATH=...' entries,
it might also help to re-add RVM to your dotfiles: 'rvm get stable --au
to-dotfiles',
to fix temporarily in this shell session run: 'rvm use ruby-1.9.3-p125'
.
Using /home/durrantm/.rvm/gems/ruby-2.0.0-p247
Następnie robiąc to samo
$ rvm use 2.0.0 --default
teraz nie daje żadnego błędu, tj
$ rvm use 2.0.0 --default
Using /home/durrantm/.rvm/gems/ruby-2.0.0-p247
durrantm.../durrantm$
ale nowe okna wciąż dają mi ruby 1.9.3, a nie 2.0.0
Mój .bashrc
plik zawiera:
PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
[[ -s "/home/durrantm/.rvm/scripts/rvm" ]] && . "/home/durrantm/.rvm/scripts/rvm"
Mój .bash_profile ma:
source ~/.profile
case $- in *i*) . ~/.bashrc;; esac
Próbować
rvm get stable
wydaje się działać, ale pod koniec wielu zielonych wyników pokazuje:
Could not update RVM, get some help at #rvm IRC channel at freenode servers.
Nowe okno terminala rvm list rubies
pokazujące to:
$ rvm list rubies
Warning! PATH is not properly set up, '/home/durrantm/.rvm/gems/ruby-1.9.3-p125/bin' is not at first place,
usually this is caused by shell initialization files - check them for 'PATH=...' entries,
it might also help to re-add RVM to your dotfiles: 'rvm get stable --auto-dotfiles',
to fix temporarily in this shell session run: 'rvm use ruby-1.9.3-p125'.
rvm rubies
=> ruby-1.9.3-p125 [ x86_64 ]
ruby-1.9.3-p194 [ x86_64 ]
* ruby-2.0.0-p247 [ x86_64 ]
# => - current
# =* - current && default
# * - default
~/.bashrc
,~/.bash_profile
, bieganiervm get stable --auto-dotfiles
, powtórnego sprawdzenia~/.bashrc
,~/.bash_profile
i~/.profile
wiele razy ... to odpowiedź wreszcie naprawili! Ran:rvm reset
i pozbył się ostrzeżeń! (IMHO ... RVM jest zbyt wybredny, jeśli chodzi o bycie pierwszym na ścieżce ... Jeśli ustawię coś innego na mojej ścieżce, wiem, co robię)rvm reset
rvm reset
(komunikat pojawi się po raz ostatni), teraz za każdym razem, gdy wydaję polecenie rvm, nie ma więcej ostrzeżeń PATH.rvm help
zwraca dość przerażającą wskazówkę dlarvm reset
: usuń wszystkie ustawienia domyślne i systemowe 😄Odpowiedź brzmiała:
** na DOLE ** (ostatnia linia - ważne!) mojego pliku .bashrc. Miałem to w swoim pliku .bash_profile (jestem na Ubuntu) i to tylko częściowo działało, prowadząc do mylących błędów.
źródło
export PATH="/usr/local/bin:/usr/local/sbin:$PATH"
dla Homebrew jest prawdopodobnie częstym problemem, który wchodzi w konflikt z rvm.rvm reset
to zrobisz, zrobi to automatycznie ...Może nie jest to najlepszy sposób rozwiązania tego problemu, ale dodałem tę linię na dole mojego .zshrc (będzie działać również w .bashrc!)
źródło
Wypróbowałem rozwiązanie Michaela Durranta i nie zadziałało. ale pobiegłem
rvm get stable --auto-dotfiles
i zaczęło działać zgodnie z życzeniem.Mam nadzieję, że to pomoże
źródło
rvm default
na dole mojegoconfig.fish
pliku. poleceniervm reset
nie pomogło przy utrzymywaniu otwartego okna terminala. To polecenie zadziałało. Mój wynik: pastebin.com/1jUCSGnPbash
interpretera i powinienem był sprawdzić te pliki konfiguracyjne ..rvm default
linia. Teraz jest lepiej ...To nie jest odpowiedź na zadane pytanie, ale na pokrewne pytanie, które zadawała większość komentujących / respondentów - Dlaczego musisz umieścić wiersz rvm na dole pliku rc powłoki?
Odpowiedź jest prosta.
$PATH
i.bashrc
(lub odpowiednik dla twojej domyślnej powłoki) jest odczytywany i interpretowany wiersz po wierszu od góry do dołu.Wyobraź sobie więc następujący scenariusz:
Oczywiście, jeśli coś jest obecne w pliku inicjalizacyjnym powłoki po linii RVM i dokona jakichkolwiek zmian w $ PATH, a dokładniej, jeśli poprzedza katalogi do
$PATH
, to te zmiany spowodują przesunięcie katalogów dodanych przez rvm w dół od ich pierwszej pozycji. Po wywołaniu RVM stwierdzi, że jego binarne katalogi Ruby nie znajdują się na samym początku,$PATH
a BAM! dostaniesz ostrzeżenie :).Mam nadzieję, że to wszystko wyjaśnia.
źródło
Dodam tylko moje doświadczenie: jeśli używasz
.bash_profile
, sprawdź, czy.bashrc
nie przeszkadza . Zabijanie.bashrc
na korzyść pojedynczej konfiguracji Bash.bash_profile
działa w tym przypadku.źródło
.bashrc
jest wykonywany dla każdej zagnieżdżonej powłoki interaktywnej;.bash_profile
jest wykonywany tylko na pierwszej wprowadzonej powłoce bash, tj. powłoce logowania. Zmienne generalnie powinny być ustawione w.bash_profile
, podczas gdy funkcje, aliasy itp. (Rzeczy, które nie są przesyłane w normalnym środowisku dziedziczonym) powinny być ustawione.bashrc
.Mam dodatkowe pytanie (chciałbym móc po prostu dodać komentarz - ale nie mam wystarczającej liczby kredytów). Miałem ten sam problem - i kiedy postępowałem zgodnie ze skryptem rvm, który został zasugerowany
--auto-dotfiles
, wpadłem w kłopoty, ponieważ w jakiś sposób skrypt powłoki usunął mój plik .bashrc_profile .W każdym razie, w końcu doszedłem do tej samej odpowiedzi, którą wymieniono powyżej, umieszczając tę linię na dole pliku .bashrc .
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
Czy zdarzyło Ci się odkryć, dlaczego to działa tak, jak działa, a nie z linią w środku pliku .bashrc? Czy masz jakąś jasność co do sposobu, w jaki Unix ładuje zmienną środowiskową, która powoduje, że RVM działa w jednej instancji, a nie w innej?
źródło
Miałem ten sam problem. Znalazłem to w pliku bashrc
wiele wpisów dla rvm. Skomentowałem jeden wpis i działa dobrze.
źródło
Wyczyściłem wszystko, co zawierało plik .rvm, z linii PATH = w moim pliku .zshrc
To rozwiązało problem dla mnie, gdzie inne odpowiedzi tutaj (pozyskiwanie skryptu rvm lub stabilizacja z auto dotfiles) nie.
źródło
Uznałem, że to polecenie jest bardzo przydatne. Rozwiązuje moją sprawę. Więc jeśli ktoś ma ten sam problem, spróbuj:
rvm get stable --auto-dotfiles
źródło
rvm install ruby-head
Naprawiono problem dla mnie - mało czasochłonny, ale załatwił sprawę. Nie jestem pewien, czy spowodowało to niezapowiedziane aktualizacje moich plików bash.źródło
Skończyło się na usunięcie
~/.profile
,~/.bashrc
i~/.zshrc
.Zasadniczo trzymałem tylko
~/.bash_profile
na moim Macu. I to działa.Myślę, że w moim przypadku są:
w tych plikach, a te zduplikowane ustawienia są pomieszane
rvm
źródło
Zrzeczenie się
Ponieważ tworzę głównie za pomocą Pythona, więc nie jestem pewien, czy to obejście dałoby poprawne rubinowe env lub po prostu zmieniło ścieżkę i pozbyło się ostrzeżenia
tło
W moim przypadku
rvm
najpierw zainstalowałem , a potempyenv
później. Konfiguracja obu z nich ulegnie zmianie$PATH
. Z ostrzeżenia wynika, że rvm zawsze chce być pierwszym na ścieżce$ echo $PATH
$HOME/.rvm/gems/ruby-2.6.3/bin: ......
Ale jeśli dodasz
eval "$(pyenv init -)"
zgodnie z wymaganiamipyenv
, zmieni się to$PATH
na$ echo $PATH
$HOME/.pyenv/shims:$HOME/.rvm/gems/ruby-2.6.3/bin: ......
Moje obejście
$ rvm use system
# Przełącz się z powrotem na rubin systemowy$ rvm use ruby-2.6.3
# Przełącz się na wersję, której potrzebujeszrvm
zmieni ścieżkę do tego, co lubi, wtedy nie zobaczysz ponownie irytującego ostrzeżenia.źródło
Zadziałało po skomentowaniu dwóch pierwszych zduplikowanych linii i dodaniu ich na dole. Nie zapomnij ponownie uruchomić terminala, aby działał.
źródło
Możesz dodać
do twojego
~/.rvmrc
pliku. To właśnie sugeruje teraz komunikat ostrzegawczy.źródło
PATH
dźwiękach mnie nachalnych, a co najwyżej ochronnych , postanowiłem zamieścić tę odpowiedź.NAPRAWIŁEM TEN PROBLEM. SPRÓBUJ UŻYĆ POLECENIA TAKIEGO:
DODAJ -p353 lub inne szczegóły wersji do końca linii
źródło