‘ 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이 비어 있습니다.
답변
다른 모든 게시물과 달리 sudo
gem을 설치할 때 사용하지 않는 것이 좋습니다 .
대신 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
답변
더 좋은 --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/RUBYVERSION
homedir에 설치합니다 . 에 대한이 질문에 대한 다른 의견을 참조하십시오 --user-install
.
이렇게하면 액세스 할 필요없이을 gem list
통해 보석을 볼 수 있고 제거 gem uninstall
할 sudo
수 있습니다. 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