UFO ET IT

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

ufoet 2023. 6. 2. 21:39
반응형

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

컴퓨터 를 2했습니다.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 GEMgem install GEM그리고 그것이 해결되었습니다.

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

상식과 기타 다양한 스택 질문에서 제가 시도한 것들:

  • gem pristine GEM
  • gem pristine --all
  • 보석 제거 및 재설치
  • gem update
  • gem update --system
  • bundle update
  • bundler
  • rails(그러나 레일즈 고유의 문제는 아닙니다.)
  • ~/.bundle/
  • XCode확장 기능을 설치하도록 허용합니다(필요한 작업이었지만 아무것도 수정하지 못했습니다).
  • 달리는 brew doctor문제들을 , 고모사문해것제을결는하들소한든그리▁and것,는▁all▁then해결하▁solving▁the.brew update그리고.brew upgrade
  • gem install curb(저는 이 보석이 이 문제와 무슨 관련이 있는지 상상할 수 없지만, 두 명의 다른 사람이 같은 경고에 대한 수정의 마지막 단계로 나열했습니다.)

저는 오늘 이 정확한 문제를 접했습니다 - 설치되지도 않은 보석에 대해 이와 같은 경고를 받았습니다!

음, 보석들이 설치된 것으로 밝혀졌습니다 - 제가 루비로 활성화한 루비와는 다른 루비를 위해 (2.2.3 대 2.3.1).

하고 실행하기gem pristine --all그들 모두가 문제를 해결했습니다.

저는 이 문제에 부딪혀 위와 같은 모든 명령을 따랐고, 심지어 이전에 설치된 모든 Ruby 버전을 제거하기까지 했습니다.그러나 오류는 계속되었습니다.

알고 보니 의 다양한 버전(이전에 설치되지 않은 버전)의 보석이 몇 개 남아 있었습니다.~/.gem/ruby/더 이상 사용하지 않는 폴더를 제거한 후 오류가 사라졌습니다.

오늘도 이런 문제가 있었는데, 편집자 전체가 오류 메시지로 빨간색으로 깜박거려서 타자를 칠 수 없어서 답답했습니다.

정확히 무엇이 원인인지는 모르겠지만 여러 개의 루비 버전 또는 여러 개의 루비 버전 관리자설치되어 있고 서로 덮어쓰며 그렇지 않으면 보석으로 향하는 길을 엉망으로 만들기 때문이라고 생각합니다.

gemrvm.rbenv가 있을 때 .

설치한 항목을 입력하여 확인합니다.

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

다시 설치

그러면 작업할 깨끗한 홈 디렉토리가 있습니다.Ubuntu 14.04에 Ruby 2.1.4를 설치하는 방법으로 rbenv를 다시 설치했습니다.그리고 마지막으로;

rbenv rehash

저는 위에 언급된 모든 것을 했습니다.

  • xcode-select --install
  • 루비를 다시 설치합니다.
  • 모든 보석 재설치
  • 보석처럼 깨끗한 --모두.

하지만 그 문제는 저에게도 마찬가지였습니다.마지막 희망으로 맥을 재부팅했더니 경고 메시지가 사라졌습니다.

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

저의 경우 경고 자체가 해결책을 제시했기 때문에 하나씩 실행합니다.

Ignoring bigdecimal-2.0.0 because its extensions are not built. Try: gem pristine bigdecimal --version 2.0.0
Ignoring date-3.0.1 because its extensions are not built. Try: gem pristine date --version 3.0.1
Ignoring dbm-1.1.0 because its extensions are not built. Try: gem pristine dbm --version 1.1.0
Ignoring etc-1.1.0 because its extensions are not built. Try: gem pristine etc --version 1.1.0

다음은 예입니다.

gem pristine bigdecimal --version 2.0.0

그래서 각 라인의 명령을 실행하는 것이 제 문제를 해결했습니다.

중입니다.gem pristine --all처음에는 도움이 되지 않았지만, 나중에 깨달았습니다. 제가 실행하고 있던 스크립트는 다음과 같이 시작했습니다.

#!/usr/bin/ruby

I s mattery)에서은 RVM에 설치된 . 제 macOS 시 (Catalina, 하가에고다생니각합다상템스를없가서지는만에리킵다니관된한제공닌치함서설께아과템스시cat가vm에▁on▁macosal,를▁points) 중입니다.gem pristine --allRVM 설치를 수정하는 중이었지만 내 스크립트는 다른 버전의 Ruby를 호출했습니다.

제가 해결할 수 있는 방법을 사용하는 것이었습니다.env의 재현 에 입니다.PATH스크립트의 맨 위 줄을 이렇게 변경하면 다음과 같이 수정됩니다.

#!/usr/bin/env ruby

여기에 나만의 맛을 더합니다.사용합니다rbenv홈브루를 통해 설치되었고 4개의 "무시..." 않음"입니다.확장이 빌드되지 않음" 메시지입니다.구체적으로:

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계속)

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

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

불필요한 버전을 확인하고 제거하지만, 이것은 좋은 방법이 아니라고 생각합니다.어쨌든 오류는 사라졌습니다.

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

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

gem uninstall cocoapods
gem install cocoapods

아마pod COMMAND에 대한 오류를 던집니다.minitest보석, 그래서 –gem install minitest

Mac OS Catalina, brew 및 rbenv 실행 중...

오늘 이 정확한 문제를 발견하고 여기 있는 모든 답을 검토한 후, 저는 결국 이 오류에 대한 또 다른 이유를 발견했습니다.

Ignoring nokogiri 1.10.7 because its extensions are not built. Try: gem pristine nokogiri --version 1.10.7

그리고 물론 보석 같은 자연 그대로는 아무런 효과가 없었습니다.

제 문제는 하드 코딩된 GEM_HOME 및 GEM_PATH 환경 변수로 rbenv를 재정의하는 것이었습니다.

~/.zshrc에서 GEM_PATH 및 GEM_HOME을 설정하지 않았는지 확인합니다.

TL;DR - 루비 보석은 심볼릭 링크에서 실행되는 루비를 싫어하거나 (내장된 셰뱅 때문에) 원래 있던 곳에서 이동하는 것을 좋아하지 않습니다.

Ruby 디렉토리가 호출되거나 환경 변수가 심볼릭으로 연결된 디렉토리를 가리키거나 복사 또는 이름이 변경된 경우 이 메시지가 표시될 수 있습니다.저는 크루비를 사용하고 있고 심볼릭 링크를 하고 있었습니다./opt/rubies/->/usr/local/ruby/하지만 루비의 동적 도서관 찾기 논리는 이것과 잘 맞지 않습니다.

은 심볼릭 이었습니다./opt/rubies/그리고 실행gem pristine --all부터 다시 .RVM 또는 Rbenv를 사용하는 다른 사용자의 경우 처음부터 다시 시작하지 않고 행운을 빕니다.

이것은 당신의 정확한 문제가 아닐 수도 있지만, 도움이 되기를 바랍니다.

이것은 오래된 방식이지만, 저는 방금 이 문제를 접했습니다.

시스템을 다시 시작할 필요 없이 환경을 새로 고치기만 하면 됩니다. rehash 명령을 사용하여 이 작업을 수행할 수 있습니다.

rehash

페이지에서: 맨페지서에:rehash command re-computes the internal hash table of the contents of directories listed in the path environmental variable to account for new commands added.

여기에 있는 대부분의 댓글들은 올바른 방향으로 가고 있습니다.이 문제는 종종 Ruby 버전 업그레이드 후에 발생합니다.는 gem 명령어 코드를 검토했고 그 요점은 다음과 같습니다.

확장은 gems 홈 디렉토리의 gems/gem/ext 하위 디렉토리로 컴파일됩니다.예를 들어 Cygwin 설치(및 유사하게 Raspbian 설치)에서 BigDecimal 확장은 /usr/share/share/syslog/bigdecimal-1.3.5/ext/bigdecimal/bigdecimal.so 로 컴파일됩니다.

그러나 실행 시 확장이 참조되는 위치는 아닙니다. 즉, /usr/lib/gems/ruby/ver/gem입니다.다시 BigDecimal을 사용하면 실행 시 확장 파일이 /usr/lib/gems/ruby/2.3.0/bigDecimal-1.3.5/bigDecimal에서 로드됩니다.그렇게

여기 키가 있습니다. 이 동일한 디렉토리에 빈 태그 파일 /usr/lib/gems/ruby/2.3.0/bigdecimal-1.3.5/gem.build_complete가 있습니다.

gem 명령이 시작되면 gem/specifications 디렉토리를 참조하여 설치된 gem 목록과 확장이 있는지 여부에 대한 정보를 가져옵니다.보석에 확장자가 있는 경우 보석(다른 건전성 검사 중에서도)은 태그 파일 보석을 찾습니다.build_complete.해당 확장이 발견되지 않으면 "확장이 빌드되지 않았기 때문에 gem을 무시합니다."라는 오류 메시지가 표시됩니다.

모든 확장을 재구성하는 작업은 이 문제를 해결합니다.또는 토탈해킹으로 급하고 용감하다면 /usr/lib/gems/ruby/oldver의 모든 콘텐츠를 /usr/lib/gems/ruby/newvere.

cd /usr/lib/gems/ruby
cp -nv 2.3.0/* 2.6 

Mac에서 개발한 다음 Docker 이미지를 구축하는 경우에도 문제가 됩니다. https://forums.aws.amazon.com/thread.jspa?messageID=879802&tstart=0

"bundle install --deployment"를 수행하면 번들러는 보석이 들어 있는 공급업체 디렉토리를 만듭니다.여기에는 로컬 폴더의 보석이 포함되지만 플랫폼의 기본 확장만 포함됩니다.당신이 macOS를 사용하고 있다면 이것은 다윈이 될 것입니다.64비트 x86 Linux 환경에서 이 프로세스를 반복해야 합니다.

새로운 터미널 세션을 시작하자는 리비의 제안(세바스티안 킴의 답변에 대해 그녀가 언급함)이 저에게 효과가 있었습니다.다른 어떤 것보다 훨씬 빨라서 더 잘 보이도록 답을 만들고 싶었습니다.

는 이 제가 만 이 문제를 겪었습니다.tmux에서 세사용을 합니다.tmuxinator.

알고 보니 제가 사용하고 있기 때문입니다.tmuxinatorbrew 설대는신치하여를 사용하여 gem install 사할수있음을 사용할 입니다.chruby동시에 그 문제에도 기여했습니다.

하지 않은 도 p/s에서 했습니다: 않사지루제거습했니다비도는.~/.gem/ruby하지만 그것이 제가 이 문제를 해결한 이유인지 의심스럽습니다.

Vagrant 제거 및 재설치도 작동합니다.있다니라는 게 unistall.toolVagrant를 제거할 설치 관리자 .dmg 이미지에 bash 스크립트가 포함되어 있습니다.

여기에서 이 솔루션 발견: 기본 제공되지 않는 부랑보석 익스텐트 업데이트

저도 같은 문제가 있었고 rbenv를 사용하고 있습니다.어떤 이유에서인지 내 글로벌 rbenv 설정이 누락되었습니다.이 문제를 해결하기 위해 글로벌 버전을 제 rbenv 버전 중 하나로 설정했습니다.예를 들어:

rbenv 글로벌 2.5.1

내 경우엔 도망가려고 했어요pristine --all하지만 저는 다음과 같은 것을 얻었습니다.

Ignoring ffi-1.11.1 because its extensions are not built.  Try: gem pristine ffi --version 1.11.1
Ignoring jaro_winkler-1.5.3 because its extensions are not built.  Try: gem pristine jaro_winkler --version 1.5.3
Ignoring psych-3.1.0 because its extensions are not built.  Try: gem pristine psych --version 3.1.0
/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': incompatible library version - /.gem/gems/psych-3.1.0/lib/psych.bundle (fatal) 

그리고 나서, 저는 콘텐츠를 삭제했습니다.Users/{{user.name}}⁩/⁨.gem⁩내가 도망쳐야 했기 때문에bundle install --force것을 을 실행합니다.pristine --all대로 .

이 솔루션은 RubyMine IntelliJ를 위해 작동했습니다.

는 두 단말기를 했고, 나두는개다터사을용고했널미른의,▁being고,RVM그리고.ruby<Version>.

솔루션:

RVM에서 으로 전환해야 .Preferences>Languages&Frameworks>Ruby SDK

오류:

Ignoring executable-hooks-1.6.0 because its extensions are not built. Try: gem pristine executable-hooks --version 1.6.0 rubymine

Ignoring gem-wrappers-1.4.0 because its extensions are not built. Try: gem pristine gem-wrappers --version 1.4.0

여기에 이미지 설명 입력

사중인경우를 .rvm나처럼 해결책은 간단할있습니다.

rvm get stable
rvm reload

이 답변에 명시된 바와 같이 https://apple.stackexchange.com/a/192513 .https://apple.stackexchange.com/a/192513

터미널에서 다음 명령을 실행하고 대신 작업했습니다.

  1. /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  2. brew install rubysudo(sudo brew install ruby)는 sudo입니다.
  3. echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.bash_profile
  4. source ~/.bash_profile
  5. sudo gem pristine --all

Ubuntu에서 이것은 저에게 효과가 있었습니다.

  1. source ~/.bash_profile
  2. sudo gem pristine --all

언급URL : https://stackoverflow.com/questions/38797458/ignoring-gem-because-its-extensions-are-not-built

반응형