Homebrew를 사용하여 설치된 루비 1.9.3으로 어떻게 전환 할 수 있습니까?


답변:


90

rvm 살펴보기를 제안합니다 . 그런 다음 다음을 사용하여 기본값으로 설정할 수 있습니다.rvm use 1.9.3 --default

그러나 홈브류 설치에 만족한다면.

그런 다음 디렉토리의 우선 순위를 PATH

여기에 내 / etc / paths가 있습니다.

# homebrews should always take precedence
/usr/local/bin

# the default stack
/usr/bin
/bin
/usr/sbin
/sbin

이것은 일반적으로 homebrew에 중요합니다. 그렇지 않으면 brew 버전 대신 git, ruby, pg_admin, ...의 시스템 버전이 모두 사용됩니다.

which -a ruby설치된 모든 루비를 볼 수 있다고 말하면PATH

예.

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


업데이트 : 이제 변경해야한다고 생각하지 않습니다. /etc/paths

대신 당신은 어떤 확인해야합니다 .profile, .bashrc또는 .bash_login쉘에로드되고, 그냥 추가 /usr/local/bin경로에.

저에게는 .profile. 홈 디렉토리에 이미 존재하는 파일이없는 경우 해당 파일을 만들 수 있습니다.

# homebrews should always take precedence
export PATH=/usr/local/bin:$PATH

1
마지막으로 이전에 rvm도 사용했던 rbenv를 선택합니다.
Alexey Zakharov

멋있는. 어쨌든 / etc / paths를 변경하는 것이 좋습니다. 이상한 오류가 발생했습니다 (예 : I 'd brew upgrade git했지만 버전이 변경되지 않았습니다. brew 버전을 사용하지 않은 것으로 밝혀
Matthew Rudy

29
"use rvm"이라고 말하는 것이 아니라 실제 답변을 제공해 주셔서 감사합니다. 모든 사람이 RVM을 사용할 수있는 것은 아니며 최상위 답변이 OP가 수행 방법을 묻지 않은 작업을 지시 할 때 싫어합니다.
bricker

이것이 트릭을했습니다 : interworks.com/blogs/ckaukis/2013/03/05/…
user2387149

rvm을 사용하여 루비를 컴파일하는 데 문제가 있었기 때문에 문제없이 작동했기 때문에 대신 rbenv를 사용하게되었습니다.
Pellet

73

짧은 대답:

homebrew를 통해 Ruby를 설치 한 후 다음을 수행하십시오.

brew link --overwrite ruby

터미널을 다시 시작하거나 다시 엽니 다.  


긴 답변

그래서 homebrew를 사용하여 루비를 정상적으로 설치했습니다.

brew install ruby

잘 설치되었지만 여전히 시스템의 기본 루비를 사용하고있었습니다. 다음을 수행하여 확인했습니다.

which ruby 
#/usr/bin/ruby

그래서 Matthew Rudy의 제안에 따라 / etc / paths의 순서를 확인했고 모두 좋았습니다.

그런 다음 결정했습니다.

which -a ruby
#/usr/bin/ruby
#usr/local/bin/ruby

그래서 아무것도 깨지지 않았습니다. homebrew 방법을 사용하여 루비를 다시 설치하려고 시도한 후 찾았습니다.

Homebrew는 다음과 같이 언급했습니다.

Warning: ruby-2.3.1 already installed, it's just not linked

그래서해야했다 :

brew link --overwrite ruby

13
iTerm 인스턴스를 다시 시작하는 것을 잊지 마십시오. 그렇지 않으면 ruby --version오래된 버전이 표시됩니다.
dialex

1
실제로 다시 시작해야합니까? 아니면 그냥 hash -r?
dwanderson

1
참고로, Homebrew는 이제 거부합니다. Fish를 사용하는 경우 다음과 같이 제안했습니다. echo 'set -g fish_user_paths "/ usr / local / opt / ruby ​​/ bin"$ fish_user_paths'>> ~ / .config / fish / config.fish
Atem18

46

homebrew를 사용하여 1.9.3을 설치하려면 다음 단계를 따르십시오.

$ brew update
$ brew install rbenv
$ brew install ruby-build

rbenv 및 ruby-build가 설치되면 다음 명령을 실행하여 Ruby 1.9.3을 설치할 수 있습니다.

$ rbenv install 1.9.3-p125

이제 기본적으로 1.9.3을 사용하려면 다음 명령을 실행할 수 있습니다.

$ rbenv global 1.9.3-p125

소스 링크는 이제 죽었습니다
Chris Brown

4
OS X 10.11 이상에서는 작동하지 않습니다. 시스템은 rbenv install 1.9.3-p125 / rbenv global 1.9.3-p125
Andrei Konstantinov

"rbenv global 1.9.3-p125"-이 라인은 내 밤을 구했습니다. 감사!
Andrii Kovalchuk 2016 년

나를 위해 작동하지 않는 것 같습니다. 작동하기 전에 $ PATH에 ruby ​​exec의 경로를 넣어야했습니다.
mr-sk

6

비슷한 상황이있었습니다. Homebrew를 사용하여 루비를 설치했습니다. which -a ruby다음과 같은 결과를 얻었습니다.

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

즉, 새로 설치된 버전을 사용해야하지만 ruby --version여전히 이전 시스템 버전을 반환합니다.

터미널 (Cmd + Q)을 종료하고 다시 시작한 후 ruby --version올바른 버전을 반환했습니다. 따라서 다른 (잠재적으로 불필요한) 수정을 시도하기 전에 설치 후 터미널을 다시 시작하십시오.


4

단축 : 무엇을 변경하고 싶은지 기록하십시오.

OS X를 사용 중이고 Jekyll과 같은 작업에 Ruby를 사용하려는 경우 Apple이 Ruby에 사용하는 이유이므로 homebrew를 사용하지 마십시오. 자신이 무엇인지 확실하지 않은 경우 사용하는 것이 좋지 않을 수 있습니다. 하기. 대신 rbenv 또는 RVM을 사용하십시오.

덜 짧게 : Jekyll을 사용하려면 기본 버전에서 업데이트 된 버전 (2.0에서)으로 전환하려고했습니다. Ruby 버전 2.2.5 이상이 필요했기 때문입니다. 업데이트하고 버전 2.5가 설치되었지만 "ruby -v"를 확인했을 때 여전히 2.0이었습니다. 마침내 기본 버전을 변경하려고했지만 쓰기 권한이 없어서 필요한 패키지를 설치할 수 없었습니다. 예를 들어, 이와 같은 것을 발견하면 아마도 동일한 문제가있을 것입니다.

$ 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.

0

OSX에서는 다음을 사용하여 경로를 변경할 수 있습니다.

sudo nano / etc / paths

그런 다음 경로를 추가하거나 순서를 변경하십시오.


-2

이것에 대한 답을 찾는 다른 사람을위한 대안적인 접근 방식처럼-.bash_profile에 별칭을 설정할 수 있습니다.

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

이것이 내가 문제를 해결 한 방법입니다.


그래 그 (와 downvotes의 가능성이 가장 높은 이유)의 문제는 이것은 단지 당신이 시스템 사용을 특정 버전이 수동으로 루비 호출하지하려면 작동한다는 것입니다
다윗이 추구
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.