[ruby] 확장 기능이 빌드되지 않았기 때문에 GEM 무시

직장 컴퓨터와 가정용 컴퓨터에서 최근에을 사용하여 Ruby를 2.3.1로 업그레이드했습니다 ruby-install. 내가 사용하는 chruby내 루비 스위처로.

터미널에서이 경고가 표시되기 시작했습니다.

Ignoring bcrypt-3.1.11 because its extensions are not built.  Try: gem pristine bcrypt --version 3.1.11
Ignoring bcrypt-3.1.10 because its extensions are not built.  Try: gem pristine bcrypt --version 3.1.10
Ignoring binding_of_caller-0.7.2 because its extensions are not built.  Try: gem pristine binding_of_caller --version 0.7.2
Ignoring byebug-9.0.5 because its extensions are not built.  Try: gem pristine byebug --version 9.0.5
Ignoring byebug-5.0.0 because its extensions are not built.  Try: gem pristine byebug --version 5.0.0
Ignoring concurrent-ruby-ext-1.0.2 because its extensions are not built.  Try: gem pristine concurrent-ruby-ext --version 1.0.2
Ignoring debug_inspector-0.0.2 because its extensions are not built.  Try: gem pristine debug_inspector --version 0.0.2

내 작업, 컴퓨터에서 목록이 훨씬 길었지만 쉽게 해결할 수있었습니다. 내가 제안을 시도했을 때 gem pristine GEM보석을 찾을 수 없다고 말 했으므로을 실행 gem install GEM하여 해결했습니다.

집에서는 아무것도 작동하지 않습니다.

상식 및 기타 다양한 스택 질문에서 시도한 것 :

  • gem pristine GEM
  • gem pristine --all
  • gem 제거 및 재설치
  • gem update
  • gem update --system
  • bundle update
  • 제거 및 재설치 bundler
  • 제거 및 재설치 rails(단, Rails 관련 문제는 아닙니다.)
  • 삭제 ~/.bundle/
  • 개방 XCode하고 일부 확장을 설치셔서는 (그것을 할 필요가 않았다,하지만 수정 아무것도하지 않았다.)
  • 실행 brew doctor후, 모든 사소한 문제를 해결 brew update하고brew upgrade
  • gem install curb (이 보석 이이 문제와 어떤 관련이 있는지 상상할 수 없지만 두 명의 다른 사람들 이이 문제를 동일한 경고에 대한 수정의 마지막 단계로 나열했습니다.)


답변

나는 오늘이 정확한 문제를 발견했습니다-심지어 설치되지 않은 보석에 대해 이와 같은 경고가 나타납니다!

… 보석 설치되어 있는 것으로 나타났습니다. chruby로 활성화 한 것과 다른 루비 (2.2.3 대 2.3.1).

모든 다른 루비로 전환하고 모든 루비로 실행 gem pristine --all하면 문제가 해결되었습니다.


답변

나는이 문제에 부딪 쳤고 이전에 설치된 Ruby 버전을 모두 제거하기까지 위와 동일한 명령을 모두 따랐습니다. 그러나 오류가 지속되었습니다.

에서 (이전에 제거 된) 다양한 버전에 대한 남은 보석이 있음이 밝혀졌습니다 ~/.gem/ruby/. 더 이상 사용하지 않은 폴더를 제거한 후 오류가 사라졌습니다.


답변

오늘도이 문제가 있었고 전체 편집기가 오류 메시지와 함께 빨간색으로 깜박이기 때문에 입력 할 수 없기 때문에 좌절했습니다.

나는 그것이 정확히 무엇이 원인인지 완전히 확신하지 못하지만 여러 루비 버전이나 여러 루비 버전 관리자가 설치되어 있고 서로 겹쳐 쓰기 때문에 보석을 향한 길을 엉망으로 만들기 때문 이라고 생각합니다 .

gem당신이 rbenv와 RVM이있을 때 명령은 덮어 쓰기 가져옵니다.

입력하여 설치 한 것을 확인하십시오.

which rvm
which rbenv
which chruby

그중 하나가 설치되면 경로를 반환합니다. 그런 다음 삭제하고 모든 디렉토리를 완전히 정리하고 새로 설치로 시작하십시오.


없애다

다음은 rvm에서 수행 한 작업입니다 .

rvm implode
gem uninstall rvm
rm -rf ~/.rvm
rm -rf ~/.rvmrc

여기 rbenv에 대해 한 일이 있습니다.

먼저 https://github.com/meowsus/rbenv-clean을 설치 한 다음

rbenv clean
sudo apt-get remove rbenv
rm -rf ~/.rbenv

다시 설치

그런 다음 깨끗한 홈 디렉토리가 있습니다. 우분투 14.04에 루비 2.1.4를 설치하는 방법으로 rbenv를 언급했습니다 . 그리고 마지막으로;

rbenv rehash


답변

나는 위에서 언급 한 모든 것을 포함하여

  • xcode-select –install
  • 루비를 다시 설치
  • 모든 보석을 다시 설치
  • 보석 깨끗한-모두

그러나 문제는 나에게 동일했습니다. 마지막 희망으로 Mac을 재부팅했는데 경고 메시지가 사라졌습니다.

이상하지만 StackOverflow에서 모든 것을 시도한 후에이 문제로 어려움을 겪고 있다면 컴퓨터를 재부팅하십시오.


답변

RVM을 설치 한 경우 다른 버전을 설치했기 때문에 오류가 발생했을 수 있습니다.

쓸모없는 버전을 확인하고 제거하지만 이것이 좋은 접근 방법 이 아니라고 생각합니다 . 어쨌든 오류가 사라졌습니다.

rvm list
rvm use ruby-version
rvm remove ruby-useless-version

Cocoapod를 새로 고친 후 .rvm GEM_HOME에 주입해야합니다.

gem uninstall cocoapods
gem install cocoapods

아마도 보석에 pod COMMAND대한 오류를 던질 것 입니다.minitestgem install minitest


답변

TL; DR-루비 젬은 루비 보석이 심볼릭 링크에서 실행되거나 빌드 된 위치에서 이동하는 루비를 좋아하지 않습니다 (내장 된 셰방 때문에)

Ruby 디렉토리가 호출되거나 환경 변수가 심볼릭 링크 된 디렉토리를 가리 키거나 복사되거나 이름이 바뀌면이 메시지가 나타납니다. 나는 chruby를 사용하고 있으며 symlinking- /opt/rubies/> /usr/local/ruby/이지만 Ruby의 동적 라이브러리 찾기 논리는 이것과 잘 어울리지 않습니다.

필자의 경우 해결책은 심볼릭 링크를 실제 루비로 바꾸고 각 루비에서 /opt/rubies/실행 하는 것이 었습니다 gem pristine --all. RVM 또는 Rbenv를 사용하는 다른 사람들에게는 처음부터 다시 시작하지 않고 행운을 빕니다.

이것은 당신의 정확한 문제는 아니지만 희망적으로 도움이 될 것입니다.


답변

내 취향을 여기에 추가하십시오. 내가 사용 rbenv브루을 통해 설치 메시지를 이러한 “지어지지 무시 … 확장”네 얻고 있었다. 구체적으로 특별히:

Ignoring bcrypt-3.1.12 because its extensions are not built.  Try: gem pristine bcrypt --version 3.1.12
Ignoring bindex-0.5.0 because its extensions are not built.  Try: gem pristine bindex --version 0.5.0
Ignoring bootsnap-1.3.2 because its extensions are not built.  Try: gem pristine bootsnap --version 1.3.2
Ignoring byebug-10.0.2 because its extensions are not built.  Try: gem pristine byebug --version 10.0.2

나는이 스레드에서 많은 일을 운없이 시도했습니다. 마침내 내 경우에는

  • brew uninstall rbenv
  • rm -rf ~/.rbenv
  • brew install rbenv

이 시점에서 여전히 오류가 발생했지만 이제는 단일 Ruby 버전 만 사용했습니다.

$ rbenv versions
* system (set by /Users/will/.rbenv/version)

이 시점 sudo gem pristine --all에서 시스템 Gems 디렉토리에 대한 권한이 시도 되었지만 거부되었습니다.

그래서 나는 각 보석에 대해 깨끗하게 달렸습니다.

sudo gem pristine bcrypt --version 3.1.12 (기타)

그리고 마침내 오류가 사라졌습니다.