fakes3
El Capitan Beta 5 에서 gem 을 설치하고 실행할 수 없습니다 .
나는 시도했다 :
sudo gem install fakes3
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/fakes3
그런 다음 cocoapods 방식으로 시도했습니다. 그것은 cocoapods에는 효과가 있지만 fakes3에는 효과가 없습니다.
mkdir -p $HOME/Software/ruby
export GEM_HOME=$HOME/Software/ruby
gem install cocoapods
[...]
1 gem installed
gem install fakes3
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
답변
면책 조항 : @theTinMan 및 기타 Ruby 개발자는 sudo
보석을 설치할 때 사용하지 말고 RVM 과 같은 것을 지적합니다 . 루비 개발을 할 때 그것은 사실입니다. 계속해서 사용하십시오.
그러나 우리 중 많은 사람들이 그냥 일어나는 일부 바이너리가 보석으로 배포 할 (예를 들어 fakes3
, cocoapods
, xcpretty
…). 나는 별도의 루비를 관리하는 것을 귀찮게하고 싶지 않습니다. 더 빠른 옵션은 다음과 같습니다.
옵션 1 : sudo를 계속 사용
사용은 sudo
이러한 도구는 전 세계적으로 설치하려면 아마 괜찮습니다.
문제는 이러한 바이너리로 설치되어 있는지입니다 /usr/bin
인 – 출입 금지 엘 카피 탄 이후가. 그러나 /usr/local/bin
대신 설치할 수 있습니다 . 그것은 Homebrew 가 물건을 설치하는 곳 이므로 이미 존재할 것입니다 .
sudo gem install fakes3 -n/usr/local/bin
보석이 설치되며 /usr/local/bin
시스템의 모든 사용자가 PATH 에 있으면 사용할 수 있습니다 .
옵션 2 : 홈 디렉토리에 설치 (sudo없이)
다음은 gem을 설치 ~/.gem
하고 바이너리를 넣을 것입니다 ~/bin
(다음에 추가해야합니다 PATH
).
gem install fakes3 --user-install -n~/bin
기본값으로 설정
어느 쪽이든, 당신은 ~/.gemrc
당신이 그들을 기억하지 않아도 이러한 매개 변수를 추가 할 수 있습니다 :
gem: -n/usr/local/bin
즉 echo "gem: -n/usr/local/bin" >> ~/.gemrc
또는
gem: --user-install -n~/bin
즉 echo "gem: --user-install -n~/bin" >> ~/.gemrc
( 팁 : 당신은 또한에 던질 수있는 --no-document
루비 개발자 문서를 생성 건너 뛸 수 있습니다.)
답변
필자의 경우 Brew를 사용하여 Ruby를 다시 설치해야했습니다 . 보석을 다시 설치할 수 있기 때문에 문제가 해결 된 것 같습니다.
brew install ruby
그런 다음 그래픽으로 또는 터미널을 다시 시작하여 로그 아웃했다가 다시 로그인해야합니다.
답변
OS X “El Capitan”의 새로운 보안 기능 때문입니다. --user-install
sudo를 사용 하는 대신 추가하십시오 :
$ gem install *** --user-install
예를 들어, fake3을 설치하려면 다음을 사용하십시오.
$ gem install fake3 --user-install
답변
sudo gem install -n /usr/local/bin cocoapods
이 시도. 확실히 작동합니다.
답변
Xcode를 최신 버전 (v7.0.1)으로 업데이트해야하며 모든 것이 정상적으로 작동합니다.
최신 Xcode를 설치 한 후에도 여전히 작동하지 않으면 다음과 같이 gem을 설치하십시오.
sudo gem install -n /usr/local/bin GEM_NAME_HERE
예를 들면 다음과 같습니다.
sudo gem install -n /usr/local/bin fakes3
sudo gem install -n /usr/local/bin compass
sudo gem install -n /usr/local/bin susy
답변
OS X El Capitain으로 업그레이드 할 때 / usr / local 디렉토리는 여러 가지 방법으로 수정됩니다.
- 사용자 권한이 재설정됩니다 (Homebrew를 사용하는 사람들에게도 문제가 됨)
- 이진 및 심볼릭 링크가 삭제되었거나 변경되었을 수 있습니다
[편집] 할 일도 있습니다 : Xcode 업그레이드 …
# 1 솔루션 :
$ sudo chown -R $(whoami):admin /usr/local
그러면 /usr/local
디렉토리 에 대한 권한이 수정 gem install
되어 brew install|link|...
명령 과 명령이 제대로 작동하는 데 도움이 됩니다.
# 2에 대한 해결책 :
루비 기반 문제
/usr/local
디렉토리 의 권한을 수정했는지 확인하십시오 (위의 # 1 참조).
먼저 다음을 사용하여 gem을 다시 설치하십시오.
sudo gem install <gemname>
지정된 gem의 최신 버전을 설치합니다.
이전 버전과의 호환성 문제에 직면하지 않으려면 먼저 원하는 gem의 버전을 확인한 다음로 다시 설치하는 것이 -v version
좋습니다. 시스템이 새로운 버전의 카피 스트라 노를 얻지 못하게하려면 아래 예를 참조하십시오.
$ gem list | grep capistrano
capistrano (3.4.0, 3.2.1, 2.14.2)
$ sudo gem install capistrano -v 3.4.0
양조 기반 문제
추출 업데이트 및 공식 업그레이드
$ brew update
$ brew upgrade
또한 수동으로 다시 연결해야 할 수도 있습니다
$ brew link <formula>
답변
말했듯이,이 문제는 “El Capitan”이후 Mac OSX의 보안 기능에서 비롯됩니다.
기본 시스템 Ruby를 사용하면 설치 프로세스가 /Library/Ruby/Gems/2.0.0
사용자가 사용할 수없는 디렉토리 에서 발생 하고 오류가 발생합니다.
다음 명령을 사용하여 Ruby 환경 매개 변수를 살펴볼 수 있습니다
$ gem env
INSTALLATION DIRECTORY와 USER INSTALLATION DIRECTORY가 있습니다. 기본 설치 디렉토리 대신 사용자 설치 디렉토리를 사용하려면 절대로 권장되는 방법을 --user-install
사용하지 않고 대신 매개 변수를 사용할 수 있습니다 sudo
.
$ gem install myGemName --user-install
이 과정에서 더 이상 권리 문제가 없어야합니다. 그런 다음 gem은 사용자 디렉토리에 설치됩니다.~/.gem/Ruby/2.0.0/bin
그러나 설치된 gem을 사용 가능하게하려면 경로에서이 디렉토리를 사용할 수 있어야합니다. Ruby의 faq 에 따르면 다음 행을 ~/.bash_profile
또는~/.bashrc
if which ruby >/dev/null && which gem >/dev/null; then
PATH="$(ruby -rubygems -e 'puts Gem.user_dir')/bin:$PATH"
fi
그런 다음 터미널을 닫았다가 다시로드하거나 .bash_profile
또는 .bashrc
( . ~/.bash_profile
)