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.