programing

권한 오류로 인해 실패할 경우 보석을 설치하거나 RubyGems를 업데이트하는 방법

testmans 2023. 7. 4. 21:46
반응형

권한 오류로 인해 실패할 경우 보석을 설치하거나 RubyGems를 업데이트하는 방법

다음을 사용하여 보석을 설치하려고 합니다.gem install mygem RubyGems를 사용하여 합니다.gem update --system다음 오류와 함께 실패합니다.

ERROR:  While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

이 문제를 해결할 방법을 아는 사람이 있습니까?

추가시를 추가해 .--user-install사하는대에를 사용하는 sudo:

gem install mygem --user-install

/Library/Ruby/Gems/1.8 디렉토리에 대한 쓰기 권한이 없습니다.

정확히 말하자면, 당신은 거기에 쓸 수 있는 권한이 없습니다.

그것은 애플이 자체적으로 사용하기 위해 설치한 루비 버전입니다.사용 권한 문제에 대해 잘 모르실 경우 사소한 수정을 하는 것은 괜찮지만, 해당 과정을 계속 진행하는 것은 좋지 않습니다.

대신, 홈 디렉토리의 샌드박스에 설치된 별도의 루비를 관리하기 위해 rbenv 또는 RVM을 사용하여 시스템 루비를 망칠 걱정 없이 수정/폴딩/스핀들/변경할 수 있는 방법을 검토할 것을 강력히 제안합니다.

과거에 RVM을 많이 사용했지만 둘 중에서 userbenv를 사용합니다. rbenv는 Ruby 설치를 관리하는 데 더 "핸즈 오프" 방식을 사용합니다.RVM에는 많은 기능이 있으며 매우 강력하지만, 결과적으로 더 침해적입니다.두 경우 모두 설치 설명서를 몇 번 읽은 후 선택한 설치를 시작합니다.

Ruby 버전 관리자를 사용해야 합니다.

사용하면 문제를 할 때 할 수 .gem update지휘권

는 rbenv를 추천합니다.

그러나 Ruby 버전 관리자를 사용하는 경우에도 동일한 오류 메시지가 표시될 수 있습니다.

만약 그렇다면, 그리고 당신이 rbenv를 사용하고 있다면, 단지 확인하세요.~/.rbenv/shims디렉터리가 시스템 Ruby의 경로 앞에 있습니다.

$ echo $PATH로드 경로의 순서가 표시됩니다.

디렉토리 , "Ruby bin" "Ruby bin" "shims" ""~/.bashrc을 작성하여 합니다.export PATH=$HOME/.rbenv/shims:$PATH

$ ruby -v됩니다.

현재 시스템 버전의 Ruby를 사용하고 있습니다(보통 좋지 않음).

$ ruby -v
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]

$ rbenv global 1.9.3-p448사전 설치된 최신 버전으로 전환합니다(아래 참조 참조).

이것은 제가 최신 버전의 Ruby를 사용하고 있다는 것을 보여줍니다(Gem:파일 권한 오류)

$ ruby -v
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin12.4.0]

일반적으로 gem 명령 앞에 sudo를 붙이지 않아도 됩니다.필요성을 느낀다면 잘못 구성된 것이 있을 수 있습니다.

rbenv에 대한 자세한 내용은 다음을 참조하십시오.

그렇게 하는 게 어때요?

sudo gem update --system

이렇게 하면 MacOS Mojave 및 Catalina의 문제가 깔끔하게 해결됩니다.

brew install ruby

다음 럼세트그를 합니다.GEM_HOME사용자 디렉토리로 이동합니다.터미널:

  • Bash:

    echo '# Install Ruby Gems to ~/gems' >> ~/.bashrc
    echo 'export GEM_HOME=$HOME/gems' >> ~/.bashrc
    echo 'export PATH=$HOME/gems/bin:$PATH' >> ~/.bashrc
    source ~/.bashrc
    
  • OR 정된경우설▁on경Zsh:

    echo '# Install Ruby Gems to ~/gems' >> ~/.zshrc
    echo 'export GEM_HOME=$HOME/gems' >> ~/.zshrc
    echo 'export PATH=$HOME/gems/bin:$PATH' >> ~/.zshrc
    source ~/.zshrc
    

나에게 문제는 사용 때문이었습니다.rbenv적절한 버전을 전역적으로 설정하는 것을 잊어버립니다.

그래서 나는 그것을 설정해야 했습니다.rbenv global xxx

에는 제경에설니다습했치는을 했습니다.2.0.0-p247그래서 나는 명령을 내려야 했습니다.

rbenv global 2.0.0-p247
rbenv rehash

그 후 모든 것이 잘 작동했습니다.

경로를 수정해야 합니다.

이 수정 프로그램의 작동 여부를 확인하려면 다음을 실행합니다.

which gem

권한이 없는 디렉토리를 출력합니다.

/usr/bin/gem

이 문제를 해결하려면 다음 단계를 수행합니다.

  1. 프로필에 복사할 경로를 결정합니다.

    rbenv init -
    

    출력의 첫 번째 줄은 프로필에 복사해야 하는 줄입니다.

    export PATH="/Users/justin/.rbenv/shims:${PATH}" #path that needs to be copied
    source "/usr/local/Cellar/rbenv/0.4.0/libexec/../completions/rbenv.zsh"
    rbenv rehash 2>/dev/null
    rbenv() {
        typeset command
        command="$1"
        if [ "$#" -gt 0 ]; then
            shift
        fi
    
        case "$command" in
            rehash|shell)
                eval `rbenv "sh-$command" "$@"`;;
            *)
                command rbenv "$command" "$@";;
        esac
    }
    
  2. 경로를 프로필에 복사하고 저장합니다.

  3. source ~/.zshenv나를 위하여).

  4. 려달을 합니다.rbenv rehash.

이제당달때릴이신때▁you를 실행할 때.which gem다음에 대한 권한이 있는 로컬 경로를 얻어야 합니다.

/Users/justin/.rbenv/shims/gem

이것은 저에게 효과가 있었습니다.또한 이전에 gem을 루트로 설치한 경우 소유권을 다시 변경하여 문제를 해결할 수 있습니다(보안 측면에서).

sudo chown -R `whoami` /Library/Ruby/Gems

아래의 원래 답변을 사용하기 전에 nathan why's 답변을 시도해 보세요.그의 추천은--user-install당신과 함께 할 필요 없이 같은 목적을 달성해야 합니다..bash_profile또는 Ruby 버전을 결정합니다.


특정 Ruby 버전이 걱정되지 않는 경우, 헤비 리프트 Ruby 환경 관리자 옵션을 건너뛰고 다음에 이 행을 추가할 수 있습니다.~/.bash_profile:

export GEM_HOME="$HOME/.gem/ruby/2.0.0"
export GEM_PATH="$HOME/.gem/ruby/2.0.0"

이 는 경가의원출도용다니습었되서력의 원래 입니다.gem env:

RubyGems Environment:
  - RUBYGEMS VERSION: 2.0.14
  - RUBY VERSION: 2.0.0
  - INSTALLATION DIRECTORY: /Library/Ruby/Gems/2.0.0
  - RUBY EXECUTABLE: /System/Library/.../2.0/usr/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - universal-darwin-14
  - GEM PATHS:
     - /Library/Ruby/Gems/2.0.0
     - /Users/mylogin/.gem/ruby/2.0.0  #  <---- This line, right here. -----
     - /System/Library/.../usr/lib/ruby/gems/2.0.0
  ...

아니요.sudoing을 통해 된 Ruby를수.

sudo gem update --system
sudo gem install (gemfile)

두 가지 경로가 있습니다.rbenv 또는 RVM을 사용합니다.아래에 두 가지 요리법이 있습니다.이 작업을 수행하기 전에 보석에 대한 로컬 문서 설치를 해제할 수 있습니다.

echo "gem: --no-ri --no-rdoc" >> ~/.gemrc

그러면:

install rbenv

install ruby-build

실행:

rbenv install 2.1.2 (or whatever version you prefer)
rbenv global 2.1.2
gem update --system

이렇게 하면 로컬 디렉터리에 최신 버전의 보석 시스템이 설치됩니다.즉, 시스템 구성을 방해하지 않습니다.이 질문을 하는 경우 시스템 보안을 방해해서는 안 되며, 처음 시작한 문제를 쉽게 피할 수 있는 방법을 사용하는 것보다 어떤 문제에 직면할 수 있는지 이해하는 데 더 오랜 시간이 걸립니다.나중에 운영 체제와 프로그래밍에 대해 자세히 알게 되면 정보 보안에 대해 알아보십시오.

대신 'RVM'을 사용합니다.rvm을 설치하려면 다음을 실행합니다.

rvm install 2.1.2
rvm use 2.1.2
gem update --system

이는 동일한 결과를 초래하며, 시스템 버전을 방해하지 않는 로컬 Ruby 및 Gem 시스템으로 이어집니다.홈브루나 오버라이드 시스템 립 등은 필요 없습니다.

sudo chown -R $USER /Library/Ruby/Gems/

저는 보석을 적게 사용하는 방법을 찾았습니다.

  1. brew install rbenv ruby-build
  2. sudo gem update --system
  3. 에 수출품을 합니다..bashrc:

    export RBENV_ROOT="$(brew --prefix rbenv)"
    export GEM_HOME="$(brew --prefix)/opt/gems"
    export GEM_PATH="$(brew --prefix)/opt/gems"
    
  4. 그리고 마지막으로 이것을 당신의 것에 추가합니다.~/.gemrc:

    gem: -n/usr/local/bin
    
  5. gem update --system

나는 할 필요가 있었습니다.rbenv rehash그래서 그것은 나의 지역 Gem 도서관을 가리킬 것입니다.

보석 관리자가 시스템 라이브러리를 가리키고 있는 것처럼 보이므로 권한을 조작하는 대신 관리자가 로컬로 가리키도록 하려면 "재 해시"와 동등한 작업을 수행하십시오.

Mac을 포맷했는데 많은 제안된 솔루션이 제대로 작동하지 않았습니다.제게 효과가 있었던 것은 다음 명령어들이 올바른 순서대로 나열되어 있다는 것입니다.

  1. 홈브루 설치:

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    
  2. Ruby 설치:

    brew install ruby
    
  3. 나침반 설치:

    sudo gem install compass
    

나이가 많고 현명한

여기서 내가 말하는 대로 하지 말고, 사용할 때마다 경계해야 합니다.sudo당신은 아마도 다음과 같은 것을 사용하고 싶을 것입니다.rbenv당신이 하는 일이 무엇이든 격리시킬 수 있습니다.


떨어져

▁about에 대해 배우세요.chown

명령줄이 마음에 드시는지는 모르겠지만, 이렇게 하면 시스템에 패키지를 설치하는 도구를 사용하여 프로젝트를 쉽게 작업할 수 있습니다.

chown제가 아는 한, 변화의 소유권을 의미합니다.

가 이 온 는 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠgem install오늘 나에게 이 오류를 던졌습니다.

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /var/lib/gems/1.9.1 directory.

은 이은사기완기다회니입벽한에것을 사용할 수 있는 완벽한 기회입니다.chown루비가 우리에게 접근할 수 있는 디렉토리를 제공했습니다. 그리고 그것은 그것이 꽤 자주 사용할 디렉토리인 것처럼 보입니다.

세, 이경우문해위결해알기할아것만세지가이지뿐은야제하를,▁in▁things만▁but지▁one이▁there가▁to뿐지세,▁the▁problem▁needs,,chown지금 보여드릴 것보다 훨씬 더 강력하고 유연성이 높아집니다.자세한 내용은 하단의 출처를 참조하시기 바랍니다.

두 가지 일

  1. 사용자 이름
  2. 디렉터리

만약 당신이 셸 안에 있다면 사용자 이름을 찾는 것은 쉽습니다.프롬프트를 보세요.내 것은 다음과 같습니다.

breadly@breadly-desktop:~\Desktop

는 현사용다이이름다니입전 앞의 입니다.@오류 메시지를 통해 디렉터리를 알 수 있지만 두 가지 선택이 있습니다.다음을 사용하여 권한을 현재 버전으로 제한할 수 있습니다.../gems/1.9.1 모든 합니다.../gems.

소유권을 실제로 변경하는 명령은 다음과 같습니다.

chown -R $(whoami) /absolute/path/to/directory

-R과 깃발알있습다니져려로▁a▁and로 알려져 .-R플래그는 일반적으로 어떤 것을 재귀적으로 수행하도록 명령하거나, 다시 말해 디렉터리에 포함된 모든 항목과 디렉터리에 포함된 모든 항목에 대해 명령을 수행하도록 지시합니다.

나를 위한 일:

sudo gem uninstall cocoapods

sudo gem install cocoapods

by rbenv brew install rbenv;

그럼 넣어주세요.eval "$(rbenv init -)" MacOS의 의에; ~/.bash_profile("MacOS" ~/.zshrc") 파일이 됩니다.

새터널열실행을 합니다.gem install ***될 것입니다!

Ruby 버전이 올바른지 확인합니다.그렇지 않으면 변경합니다.

이것은 나에게 도움이 됩니다.

$ rbenv global 1.9.3-p547
$ gem update --system

2021년 솔루션(rvm 사용):

는 경우력을 하면.which ruby말기에, 그리고 그것은 보여줍니다./usr/bin/ruby당신은 이 해결책을 시도할 수 있습니다.

  1. rvm 설치

    curl -L https://get.rvm.io | bash -s stable
    
  2. rvm을 사용하여 루비 설치

    rvm install "ruby-3.0.0"
    
  3. 설치된 루비 버전을 사용합니다.

    rvm use ruby-3.0.0
    
  4. 형자which ruby다시, 그것은 보여줄 것입니다./Users/mac_user_name/.rvm/rubies/ruby-3.0.0/bin/ruby.

    루비를 사용하는 새로운 길입니다.

문제 해결 단계:

1단계: 홈브루를 사용하여 코코팟 확인 및 설치

brew install cocoapods

2단계: 모든 문제를 해결하기 위해 가장 중요한 것은 안정적인 루비 버전의 rvm 패키지를 설치하는 것입니다. 이것 없이는 권한이 없는 시스템 폴더 내부의 루비 버전에 액세스하게 됩니다.

\curl -sSL https://get.rvm.io | bash -s stable --ruby

3단계: rvm 명령 경로를 .zshrc 파일에 추가하여 전체적으로 액세스합니다.

export PATH="$PATH:$HOME/.rvm/scripts/rvm"

4단계: rvm이 전체적으로 명령줄에서 제대로 실행되고 있는지 확인

rvm --version 

5단계: 이제 사용자 bin 안에 cocoapods 패키지를 설치할 수 있습니다. 그러면 권한 없이 rvm 폴더에서 루비 파일에 액세스할 수 있습니다.

sudo gem install -n /usr/local/bin cocoapods

6단계: 이제 아래 명령을 사용하여 포드를 확인할 수 있습니다.

pod install

MacOS Mojave에서 SUCCESS로 테스트됨:

  1. 이전 버전의 루비를 모두 제거합니다(예: 2.00 및 2.3.0 버전).

    $ rvm uninstall 2.0.0

    $ rvm uninstall 2.3.0

  2. 새 루비 버전 설치:

    $ brew install ruby

  3. 버전에 기본 별칭을 설정합니다.

    $ rvm alias create default ruby

  4. 이 방법이 최근에 설치된 새 루비 버전을 컴퓨터에서 가장 안전하게 로드하는 방법이므로 시스템을 재부팅합니다.

절차를 한 후에는 것이나 할 수 .gem지휘권

밥델솔이 지적했듯이, 리해시는 나에게 효과가 있었습니다.

==> which ruby
/usr/bin/ruby

==> rbenv install 1.9.3-p551
Downloading ruby-1.9.3-p551.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p551.tar.bz2
Installing ruby-1.9.3-p551...
Installed ruby-1.9.3-p551 to /Users/username/.rbenv/versions/1.9.3-p551


==> which ruby
/Users/username/.rbenv/shims/ruby

==> which gem
/Users/username/.rbenv/shims/gem

==> gem install compass
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.


==> ruby -v
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]


==> rbenv global 1.9.3-p551


==> ruby -v
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]


==> rbenv global 1.9.3-p551


==> rbenv rehash


==> ruby -v
ruby 1.9.3p551 (2014-11-13 revision 48407) [x86_64-darwin15.4.0]


==> gem install compass
Fetching: sass-3.4.22.gem (100%)
Fetching: multi_json-1.11.3.gem (100%)
Fetching: compass-core-1.0.3.gem (100%)
Fetching: compass-import-once-1.0.5.gem (100%)
Fetching: chunky_png-1.3.5.gem (100%)
Fetching: rb-fsevent-0.9.7.gem (100%)
Fetching: ffi-1.9.10.gem (100%)
Building native extensions.  This could take a while...
Fetching: rb-inotify-0.9.7.gem (100%)
Fetching: compass-1.0.3.gem (100%)
    Compass is charityware. If you love it, please donate on our behalf at http://umdf.org/compass Thanks!
Successfully installed sass-3.4.22
Successfully installed multi_json-1.11.3
Successfully installed compass-core-1.0.3
Successfully installed compass-import-once-1.0.5
Successfully installed chunky_png-1.3.5
Successfully installed rb-fsevent-0.9.7
Successfully installed ffi-1.9.10
Successfully installed rb-inotify-0.9.7
Successfully installed compass-1.0.3
9 gems installed
Installing ri documentation for sass-3.4.22...
Installing ri documentation for multi_json-1.11.3...
Installing ri documentation for compass-core-1.0.3...
Installing ri documentation for compass-import-once-1.0.5...
Installing ri documentation for chunky_png-1.3.5...
Installing ri documentation for rb-fsevent-0.9.7...
Installing ri documentation for ffi-1.9.10...
Installing ri documentation for rb-inotify-0.9.7...
Installing ri documentation for compass-1.0.3...
Installing RDoc documentation for sass-3.4.22...
Installing RDoc documentation for multi_json-1.11.3...
Installing RDoc documentation for compass-core-1.0.3...
Installing RDoc documentation for compass-import-once-1.0.5...
Installing RDoc documentation for chunky_png-1.3.5...
Installing RDoc documentation for rb-fsevent-0.9.7...
Installing RDoc documentation for ffi-1.9.10...
Installing RDoc documentation for rb-inotify-0.9.7...
Installing RDoc documentation for compass-1.0.3...

을 변경할 수 .GEM_HOME홈 디렉토리 젬 한또홈디리아사래용있다보습니폴더를 사용하여 할 수 .

$ gem env

결과는 다음과 같습니다.관련이 없는 부품은 생략합니다.

...
  - GEM PATHS:
     - /Users/xxx/.gem/ruby/2.6.0
     - /Library/Ruby/Gems/2.6.0
     - /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0
...
 

은 당신의 사할수다를 할 수 ./Users/xxx/.gem/ruby/2.6.0폴더를 누릅니다.

vim ~/.bash_profile

다음 행을 추가합니다.

export GEM_HOME=~/.gem/ruby/2.6.0/

그런 다음 사용할 수 있습니다.

source ~/.bash_profile 

문제는 이전에 zshell에서 bash로 전환했는데 로그인하지 않았다는 것입니다.

/bin/bash --login

제가 rvm을 설치했지만, 새로 설치한 rvm 루비 버전으로 전환할 수 없었고, Mac에 설치된 기본 루비 바이너리를 계속 사용하려고 했습니다.따라서 나의 혼란(사용자 오류!!)과 지속적인 권한 문제...

오류: gem을 실행하는 동안... (Gem::FilePermissionError) /Library/Ruby/Gems/2.6.0에 대한 쓰기 권한이 없습니다.

[2022 솔루션]문제에 대한 자세한 이유가 여기에 추가되었습니다.

이슈 요약 -> 루비 액세스와 관련된 이슈였는데, M1 MAC은 자체 루비와 함께 제공됩니다.우리는 그것을 우리의 목적으로 사용할 수 있는 권한이 없습니다.대신, 우리는 루비 인스턴스를 별도로 설치하여 우리의 목적에 맞게 사용합니다.

아래 단계는 문제를 해결하는 데 도움이 되었습니다. 이것이 도움이 되기를 바랍니다.

우리는 rvn이나 크루비와 함께 루비를 설치할 필요가 없습니다.나의 솔루션은 루비를 설치하기 위해 홈브루를 사용합니다.

  1. 터미널 열기

  2. 홈브루를 사용하여 루비 설치

하는 경우] [새로 설치하는 경우]brew install ruby

] [재설치용]brew reinstall ruby

  1. 아래 명령을 사용하여 루비의 경로를 확인합니다.

    which ruby

  2. 아래 경로에 설치해야 합니다.

    /usr/bin/ruby

  3. 루비 경로를 사용자 경로로 변경하려면 다음과 같이 하십시오.

시스템에서 사용하는 셸을 확인하려면 다음과 같이 하십시오.

echo $0

-zsh

zshrc의 경우

echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >>~/.zshrc

바시용

echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >>~/~/.bashrc

  1. 터미널을 종료하고 다시 시작합니다.

  2. 5단계로 경로를 변경한 후

  3. 루비의 경로를 다시 확인합니다(3단계 실행 - 아래와 같이 경로가 표시되는지 확인하십시오).

/usr/local/opt/ruby/bin/ruby

[단말기를 종료하고 실행하지 않으면 4단계 경로가 표시됩니다.]

  1. 올바른 Cocoapods 버전이 설치되어 있는 경우 모든 사용자가 10단계와 11단계를 건너뛸 수 있는 경우 이 단계는 해당되지 않을 수 있습니다.

설치된 포드의 버전을 확인합니다.

pod --version

  1. 아래 명령을 사용하여 특정 버전의 Cocoapod를 제거합니다.

설치된 버전이 1.11.0인 경우

gem uninstall cocoapods -v 1.11.0

  1. 특정 버전의 Cocoapod 설치

    gem 설치 cocoapods - v 1.11.0

  2. 프로젝트 디렉토리 cd {path of project directory}의 경로 변경

  3. 프로젝트 디렉토리에 번들러 설치

bundle install

  1. 포드 설치 실행

pod install

cd /라이브러리/루비/젬스/2.0.0

열다.

마우스 오른쪽 버튼을 클릭하여 정보 가져오기

클릭 잠금

비밀번호 배치

모든 것을 읽고 쓰게 합니다.

gem 설치 또는 RubyGems 업데이트가 사용 권한 오류로 실패한 다음 이 명령을 입력합니다.

sudo gem install cocoapods

사용할 수 있습니다: gem install cocoapods --pre --user

사용자에게 해당 폴더에 무언가를 만들 수 있는 $whami를 제공합니다.

sudo chown -R user /Library/Ruby/Gems/2.0.0

언급URL : https://stackoverflow.com/questions/14607193/how-to-install-a-gem-or-update-rubygems-if-it-fails-with-a-permissions-error

반응형