Zainstalowałem Ruby 1.9.3 używając hombrew
napar zainstalować rubin
Ale domyślna 1.8.7 jest nadal używana. Jak mogę przełączyć OSX, aby używał 1.9.3 jako domyślnego ruby?
Zainstalowałem Ruby 1.9.3 używając hombrew
napar zainstalować rubin
Ale domyślna 1.8.7 jest nadal używana. Jak mogę przełączyć OSX, aby używał 1.9.3 jako domyślnego ruby?
Odpowiedzi:
Proponuję przyjrzeć się rvm . Następnie możesz ustawić go jako domyślny za pomocąrvm use 1.9.3 --default
Ale jeśli jesteś zadowolony z instalacji homebrew.
Następnie po prostu zmień pierwszeństwo katalogów w PATH
Oto moje ścieżki / etc /
# homebrews should always take precedence
/usr/local/bin
# the default stack
/usr/bin
/bin
/usr/sbin
/sbin
Jest to ważne ogólnie dla homebrew, w przeciwnym razie zamiast wersji brew zostanie użyta systemowa wersja git, ruby, pg_admin, ...
jeśli powiesz which -a ruby
, że zobaczysz wszystkie zainstalowane rubiny i pierwszeństwo wPATH
na przykład.
$ which -a ruby
/Users/matthew/.rvm/rubies/ruby-1.9.3-p0/bin/ruby
/Users/matthew/.rvm/bin/ruby
/usr/bin/ruby
/etc/paths
Zamiast tego trzeba sprawdzić, który z .profile
, .bashrc
lub .bash_login
jest ładowany w swojej skorupie, i po prostu dodać /usr/local/bin
do swojej drodze.
Dla mnie mam tylko plik .profile
. Możesz utworzyć ten plik, jeśli żaden z tych plików nie istnieje już w Twoim katalogu domowym.
# homebrews should always take precedence
export PATH=/usr/local/bin:$PATH
brew upgrade git
, Ale wersja nie zmieni wyproszeni ja nigdy nie używałem wersji napar.)
KRÓTKA ODPOWIEDŹ:
po zainstalowaniu Ruby przez homebrew po prostu zrób to:
brew link --overwrite ruby
i uruchom ponownie lub ponownie otwórz terminal
DŁUGA ODPOWIEDŹ
Zrobiłem więc normalną instalację ruby za pomocą homebrew
brew install ruby
który zainstalował się dobrze, ALE nadal używał domyślnego ruby systemu. które zweryfikowałem wykonując:
which ruby
#/usr/bin/ruby
Więc zgodnie z sugestią Matthew Rudy'ego sprawdziłem kolejność moich ścieżek / etc / i wszystko poszło dobrze.
Wtedy zdecydowałem się zrobić:
which -a ruby
#/usr/bin/ruby
#usr/local/bin/ruby
więc nic nie zostało zepsute jako takie. próbowałem ponownie zainstalować Ruby, używając metody homebrew, a potem go znalazłem.
Homebrew wspomniał:
Warning: ruby-2.3.1 already installed, it's just not linked
więc musiałem zrobić:
brew link --overwrite ruby
ruby --version
pokaże się nieaktualna wersja.
hash -r
?
Jeśli chcesz użyć homebrew do zainstalowania 1.9.3, możesz wykonać następujące kroki:
$ brew update
$ brew install rbenv
$ brew install ruby-build
Po zainstalowaniu rbenv i ruby-build możesz uruchomić następujące polecenie, aby zainstalować Ruby 1.9.3.
$ rbenv install 1.9.3-p125
Teraz, jeśli chcesz domyślnie używać 1.9.3, możesz uruchomić następujące polecenie:
$ rbenv global 1.9.3-p125
Miałem podobną sytuację. Zainstalowałem Ruby za pomocą Homebrew. which -a ruby
dał mi następujący wynik:
#usr/local/bin/ruby
#/usr/bin/ruby
Co oznacza, że nowo zainstalowana wersja powinna zostać użyta, ale ruby --version
nadal powinna zwrócić starą wersję systemu.
Opuściłem terminal (Cmd + Q), a po restarcie zwróciłem ruby --version
poprawną wersję. Dlatego przed wypróbowaniem innych (potencjalnie niepotrzebnych) poprawek należy ponownie uruchomić terminal po instalacji.
SKRÓT: Zanotuj, na co chcesz to zmienić.
Jeśli korzystasz z OS X i próbujesz użyć Ruby do czegoś takiego jak Jekyll, nie używaj homebrew, ponieważ do tego właśnie używa Apple dla Ruby i może nie być dobry w użyciu, jeśli nie jesteś pewien, kim jesteś robić. Zamiast tego użyj rbenv lub RVM.
MNIEJ KRÓTKI: Próbowałem przełączyć się z wersji domyślnej na zaktualizowaną (z 2.0), aby używać Jekyll, ponieważ wymagało to Ruby w wersji 2.2.5 i nowszych. Zaktualizowałem go i została zainstalowana wersja 2.5, ale kiedy zaznaczyłem "ruby -v", nadal była to 2.0. Kiedy w końcu udało mi się zmienić wersję domyślną, nie mogłem zainstalować pakietu, którego potrzebowałem, ponieważ nie miałem uprawnień do zapisu. Na przykład, jeśli natkniesz się na coś takiego, prawdopodobnie masz ten sam problem
$ gem install jekyll bundler
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
Jako alternatywne podejście dla każdego, kto szuka odpowiedzi na to pytanie - możesz ustawić alias w swoim .bash_profile np.
ruby="/usr/local/bin/ruby"
w ten sposób poradziłem sobie z problemem