Jak mogę przełączyć się na ruby 1.9.3 zainstalowany przy użyciu Homebrew?

Zainstalowałem ruby 1.9.3 używając hombrew

Brew install ruby

Ale domyślna wersja 1.8.7 jest nadal używana. Jak Mogę zmienić osx na 1.9.3 jako domyślny ruby?

Author: Alexey Zakharov, 2012-01-04

8 answers

Proponuję rzucić okiem na 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 wystarczy zmienić pierwszeństwo katalogów w PATH

Oto moje/etc / paths

# 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 systemowa wersja git, ruby, pg_admin,... wszystkie będą używane zamiast wersji brew.

Jeśli powiesz which -a ruby zobaczysz wszystkie zainstalowane rubiny i pierwszeństwo w PATH

Eg.

$ which -a ruby
/Users/matthew/.rvm/rubies/ruby-1.9.3-p0/bin/ruby
/Users/matthew/.rvm/bin/ruby
/usr/bin/ruby


Aktualizacja: nie sądzę, że powinieneś zmienić /etc/paths

Zamiast tego musisz sprawdzić, który z .profile, .bashrc, lub {[10] } jest ładowany do powłoki i po prostu dodaj {[11] } do swojej ścieżki.

Dla mnie mam tylko .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
 90
Author: Matthew Rudy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-23 17:20:14

KRÓTKA ODPOWIEDŹ:

Po zainstalowaniu Rubiego przez homebrew zrób to:

brew link --overwrite ruby

I uruchom ponownie lub otwórz Terminal  


DŁUGA ODPOWIEDŹ

Więc zrobiłem normalną instalację Rubiego używając homebrew

brew install ruby

To zainstalowane dobrze, ale nadal używało domyślnego Rubiego systemu. co zweryfikowałem robiąc:

which ruby 
#/usr/bin/ruby

Więc zgodnie z sugestią Mateusza Rudy ' ego, sprawdziłem kolejność moich ścieżek/etc / i wszystko było dobrze.

Wtedy postanowiłem do zrobienia:

which -a ruby
#/usr/bin/ruby
#usr/local/bin/ruby
Więc nic nie zostało złamane 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 trzeba było:

brew link --overwrite ruby
 73
Author: Craig Wayne,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-04 02:10:17

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 używać 1.9.3 domyślnie, możesz uruchomić następujące polecenie:

$ rbenv global 1.9.3-p125
 46
Author: Francis Kim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-19 23:18:56

Miałem podobną sytuację. Zainstalowałem ruby używając Homebrew. which -a ruby dał mi następujące wyjście:

#usr/local/bin/ruby
#/usr/bin/ruby

Co oznacza, że nowo zainstalowana wersja powinna zostać użyta, ale ruby --version nadal zwraca starą wersję systemu.

Zamykam terminal (Cmd + Q)i po restarcie ruby --version zwracam poprawną wersję. Upewnij się więc, że uruchom ponownie terminal po zainstalowaniu, zanim spróbujesz innych (potencjalnie niepotrzebnych) poprawek.

 6
Author: Andrii Chernenko,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-29 15:10:10

Krótki: Zanotuj, na co chcesz go zmienić.

Jeśli jesteś na OS X i próbujesz użyć Rubiego do czegoś takiego jak Jekyll, to nie używaj homebrew, ponieważ Apple używa Rubiego do tego celu i może to nie być dobre, jeśli nie jesteś pewien, co robisz. Zamiast tego użyj rbenv lub RVM.

MNIEJ KRÓTKI: Próbowałem przełączyć się z domyślnej wersji na zaktualizowaną wersję (z 2.0), aby używać Jekyll, ponieważ wymagało to Rubiego w wersji 2.2.5 i wyższej. I zaktualizowałem go i zainstalowano wersję 2.5, ale kiedy sprawdziłem "ruby-v", nadal był to 2.0. Gdy w końcu doszedłem do zmiany domyślnej wersji, nie byłem w stanie 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.
 4
Author: Richard Lin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-22 06:57:16

Ruby został zainstalowany przez Homebrew w /usr/local/opt/ruby. Musimy więc dodać tę ścieżkę do bash lub Zsh.

# Type this to find out which shell you're using (e.g., bash, Zsh)
echo $SHELL

# If you're using Bash (e.g., echo $SHELL returns /bin/bash)
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.bash_profile

# If you're using Zsh
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.zshrc

Następnie źródło pliku

# E.g., if you're using bash
source ~/.bash_profile

Na koniec zweryfikuj wersję Rubiego

ruby -v
 1
Author: Catbuilts,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-13 23:56:52

W OSX możesz zmienić ścieżkę używając:

Sudo nano / etc / paths

A następnie dodaj ścieżkę lub zmień kolejność.

 0
Author: Robert,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-29 15:25:04

Jako alternatywne podejście dla każdego, kto szuka odpowiedzi na to pytanie - możesz ustawić alias w swoim .bash_profile e. g

ruby="/usr/local/bin/ruby"

Tak obejrzałem problem

 -2
Author: Bn Mk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-12 12:38:15