[ruby-on-rails] ‘sudo gem install’또는 ‘gem install’및 gem 위치

sudo gem list --local‘와 ‘ gem list --local‘를 실행 하면 다른 결과가 나타납니다. 보석 경로가 홈 폴더로 설정되어 있고 ‘ gem list --local‘ 의 보석 만 포함합니다 .

gem을 컴퓨터의 다른 디렉토리에 설치하는 것은 좋지 않을 수 있으므로 gem 경로를 다르게 설정해야하며 sudo무언가를 설치할 때 항상 사용해야 합니까?

my ~/.profile
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"

~ / .bash_profile이 비어 있습니다.



답변

다른 모든 게시물과 달리 sudogem을 설치할 때 사용하지 않는 것이 좋습니다 .

대신 RVM 을 설치 하고 휴대용 보석 집과 다른 버전의 루비를 모두 한 지붕 아래에서 사는 것이 좋습니다 .

시작하지 않은 경우 문서에서 :

RVM은 여러 루비 환경과 gem 세트를 쉽게 설치, 관리 및 사용할 수있는 명령 줄 도구입니다.

로 보석을 설치하는 이유는 sudo단지 것보다 더 나쁘다는 gem install그것의 보석 설치하기 때문에입니다 ALL의 USERS 등을 root. 기계를 사용하는 유일한 사람이라면 괜찮을지 모르지만 그렇지 않은 경우 기이함을 유발할 수 있습니다.

모든 보석을 날려 버리고 다시 시작하기로 결정했다면 루트가 아닌 사용자로하는 것이 훨씬 쉽고 안전합니다.

사용하기로 결정했다면 사용 하는 루비 버전마다 자체 GEM_HOME이 있기 때문에 RVM사용 sudo하면 모든 종류의 이상이 발생합니다 RVM.

또한 개발 환경을 가능한 한 프로덕션 환경에 가깝게 만들 수 있다면 프로덕션 환경에서 루트가 아닌 사용자로 gem을 설치할 가능성이 높습니다.


답변

또한 해당 지역의 환경 (없는에서 보석을 설치할 수 있습니다 sudo)와

gem install --user-install <gemname>

단일 사용자 컴퓨터 인 경우에도 시스템 수준 구성을 혼동하지 않는 것이 좋습니다.

로 gempath를 보면 보석이 어디로 가는지 확인할 수 있습니다 gem environment. 제 경우에는 “~ / .gem / ruby ​​/ 1.8″입니다.

경로에 추가 된 로컬 설치의 바이너리가 필요한 경우 다음과 같이 bashrc에 무언가를 추가 할 수 있습니다.

if which ruby >/dev/null && which gem >/dev/null; then
    PATH="$(ruby -r rubygems -e 'puts Gem.user_dir')/bin:$PATH"
fi

( http://guides.rubygems.org/faqs/#user-install에서 )


답변

더 좋은 --user-install방법은 ~ / .gemrc 파일을 넣어 매번 입력 할 필요가 없다는 것입니다.

gem: --user-install


답변

당신이 경우에

  • sudo로 설치된 루비 보석
  • sudo없이 gem을 설치하고 싶다
  • rvm / rbenv를 설치하고 싶지 않습니다

에 다음을 추가하십시오 .bash_profile.

export GEM_HOME=/Users/your_user›/.gem
export PATH="$GEM_HOME/bin:$PATH"

터미널 OR에서 새 탭을 열면 source ~/.bash_profile좋습니다.


답변

관련 (번들 사용자의 경우) RVM에 대한 더 가벼운 대안을 원한다면 모든 것을 사용자 고유의 잘 알려진 디렉토리에 넣을 것입니다.

bundle install --path $HOME/.gem

같은 장소에 보석을 설치하려면

gem install --user-install GEMNAME

.gem/ruby/RUBYVERSIONhomedir에 설치합니다 . 에 대한이 질문에 대한 다른 의견을 참조하십시오 --user-install.

이렇게하면 액세스 할 필요없이을 gem list통해 보석을 볼 수 있고 제거 gem uninstallsudo수 있습니다. gem 또는 bundler에 의해 설치된 실행 가능한 스크립트는 다음을 추가하여 경로에 넣을 수 있습니다

$HOME/.gem/ruby/RUBYVERSION/bin

당신에게 $PATH. gem할 때 설정되지 않은 경우 자체에서 알려줍니다 gem install --user-install.


답변

sudo gem install --no-user-install <gem-name>

gem을 전역 적으로 설치합니다 . 즉, 모든 사용자의 컨텍스트에서 사용할 수 있습니다.


답변

다음을 사용하여 Rails 앱의 특정 폴더 (예 : vendor /)에 gem을 설치할 수 있습니다.

bundle install --path vendor