Jestem NOVICE użytkownikiem Linuksa i używam Linux mięty 17.1
Ponownie zainstalowałem Linux Mint 20 w ciągu ostatnich 3 dni z powodu tego problemu, ale nie mogłem go naprawić
Próbuję zainstalować ruby na szynach za pomocą rvm. Jeśli to się stanie, zacznij nową instalację Linuksa i spróbuj zainstalować klejnoty, ruby i inne rzeczy w jednej sesji terminala, która została pomyślnie zainstalowana, jak tylko zamknę sesję terminala, nie mogę zdobyć tych klejnotów .
Ponownie instalując go ponad 20 razy w ciągu ostatnich 3 dni, szukałem również w Internecie. Powiedziano mi, aby wstawić zmienną środowiskową do /etc/environment
echa ścieżki w tej sesji i wkleiłem ją do /etc/environment
pliku.
nawet teraz nie dostaję zainstalowanych klejnotów
podczas pisania pojawiają rvm -v
się następujące błędy
Warning: PATH set to RVM ruby but GEM_HOME and/or GEM_PATH not set, see:
https://github.com/wayneeseguin/rvm/issues/3212
Warning! PATH is not properly set up, $GEM_HOME is not set,
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-2.2.2'.
rvm 1.26.11 (latest) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/]
Jestem bardzo początkującą osobą, jeśli chodzi o pracę z terminalem. Mogę uruchomić kilka podstawowych poleceń do pracy z Ruby.
chciałbym wiedzieć
- Jak ustawić ŚCIEŻKĘ
- Jak ustawić GEM_HOME
- Jak ustawić GEM_PATH
Poniżej moja pełna ścieżka
echo $PATH
/home/sharif/.rvm/gems/ruby-2.2.2/bin:/home/sharif/.rvm/gems/ruby-2.2.2@global/bin:/home/sharif/.rvm/rubies/ruby-2.2.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/sharif/.rvm/bin
Odpowiedzi:
Wygląda na to, że potrzebujesz polecenia
export
do ustawiania zmiennych środowiskowych:Będzie to jednak obowiązywać tylko w bieżącej sesji. Aby były bardziej trwałe, dodaj te wiersze do swojego
~/.bashrc
.źródło
Zwykle oznacza to, że rvm nie jest poprawnie skonfigurowany. Zwykłym błędem jest to, że nie zmodyfikowałeś
.bashrc
poprawnie (lub podobnego) lub nie przeładowałeś terminala.Nie powinieneś ręcznie ustawiać GEM_HOME lub GEM_PATH podczas używania rvm.
Możesz spróbować
source ~/.rvm/scripts/rvm
sprawdzić, czy to działa.Możliwe, że jeszcze nie zbudowałeś zestawu. Nie używaj rvm i sudo. Rvm działa najlepiej, gdy jest zainstalowany na koncie, a nie w całym systemie.
źródło
source ~/.rvm/scripts/rvm
do swojego,~/.bashrc
aby upewnić się, że jest ładowany przy każdym uruchomieniu nowej powłoki.Oto czego się nauczyłem i jak rozwiązałem ten pozornie powszechny problem zmiennych środowiskowych GEM_HOME i GEM_PATH, które nie ustawiły błędu.
tło
Instalacja RVM ma tworzyć zmienne env GEM_HOME i GEM_PATH dla każdego skonfigurowanego RVM i robi to. Ale najwyraźniej istnieje taki błąd, że w niektórych przypadkach zmienne env są ustawiane tylko tymczasowo, a aby je ustawić ponownie, należy ustawić je za pomocą wiersza polecenia. Znalazłem obejście, które powoduje, że zmienne env są trwałe dla RVM.
Obejście
Znajdź swoją aktywną (w RVM) wersję Ruby: Na serwerze produkcyjnym przejdź do katalogu aplikacji i wpisz
$rvm list
. Spowoduje to wyświetlenie listy zainstalowanych wersji Ruby i które są aktywne dla RVM. Przykład odpowiedzi:rvm rubies ruby-1.9.3-p547 [ x86_64 ] => ruby-1.9.3-p551 [ x86_64 ]
Wiem, że RVM używa obecnie wersji
ruby-1.9.3-p551
. Potrzebujesz tych informacji do następnego kroku.Uzyskaj ścieżki dla GEM_PATH i GEM_HOME : Robisz to, uruchamiając z wiersza poleceń
$rvm use ruby-1.9.3-p551
. Następnie nadal z linii komend pokaż wszystkie ustawienia środowiska za pomocą poleceniaenv
. Wyszukaj GEM_PATH i GEM_HOME i skopiuj je w całości do obszaru roboczego.GEM_PATH=/usr/local/rvm/gems/ruby-1.9.3-p551:/usr/local/rvm/gems/ruby-1.9.3-p551@global GEM_HOME=/usr/local/rvm/gems/ruby-1.9.3-p551
Ustaw zmienne środowiskowe GEM_HOME i GEM_PATH: Teraz ustaw te zmienne środowiskowe w jednym z wielu plików profilu. Chciałem zachować strukturę izolacji wersji RVM, dlatego zaktualizowałem /profile.d/appspecific.sh o te dwa wiersze:
export GEM_PATH=/usr/local/rvm/gems/ruby-1.9.3-p551:/usr/local/rvm/gems/ruby-1.9.3-p551@global export GEM_HOME=/usr/local/rvm/gems/ruby-1.9.3-p551
źródło
Odkryłem, że .profile jest ładowany jako ostatni i że umieszcza ~ / .local / bin i ~ / bin na początku ścieżki. Przeniosłem /etc/profile.d/rvm.sh do ~ / .rvm i na samym końcu .profile dodałem „source ~ / .rvm / rvm.sh” i błąd zniknął. Jestem na Linux Mint 18.3. Mam zainstalowane pyenv, rvm i sdkman i wszyscy chcą być ostatnimi. Teraz wszystko działa dobrze. :)
Jeśli jest to system współdzielony, po prostu przenieś plik rvm.sh poza ścieżkę, a każdy inny użytkownik może go pobrać, na przykład z /opt/rvm/rvm.sh.
źródło
Jak wspomniano @coteyr, nie powinieneś ręcznie ustawiać GEM_HOME i GEM_PATH podczas używania
rvm
. Jeśli sprawdzisz zmienną środowiskową PATH, uruchamiając,$ echo $PATH
a $ HOME / .rvm / bin jest jej częścią, musisz upewnić się, że terminal uruchamia polecenia jako powłokę logowania. Na przykład, jeśli korzystasz z komputera z systemem Ubuntu, otwórz terminal, a następnie przejdź do: menu> Edycja> Preferencje profilu> Polecenie, a następnie wybierz „Uruchom polecenie jako powłokę logowania”Wydaje się, że jest to stary problem,
rvm
który, jak zakładam, nie jest trywialny do rozwiązania, ponieważ istnieje już od jakiegoś czasu.źródło
Aby
$GEM_PATH
wypełnić mój system (Manjaro / Arch)gems
, dodałem do mojego.bashrc
:źródło