OS X 10.9의 루비 확장 기능이 빌드되지 않았기 때문에 gem 무시


36

knifeOS X (Linux, FreeBSD 등의 다른 환경에서는 복제 할 수 없음) 에서 Ruby CLI (특히 Chef 용 유틸리티 사용)에서 다양한 작업을 수행 할 때 며칠마다 이러한 상황이 발생 합니다.

Ignoring bcrypt-3.1.7 because its extensions are not built.  Try: gem pristine bcrypt-3.1.7
Ignoring bigdecimal-1.2.5 because its extensions are not built.  Try: gem pristine bigdecimal-1.2.5
Ignoring ffi-yajl-1.1.0 because its extensions are not built.  Try: gem pristine ffi-yajl-1.1.0
Ignoring gem-wrappers-1.2.5 because its extensions are not built.  Try: gem pristine gem-wrappers-1.2.5
Ignoring gem-wrappers-1.2.4 because its extensions are not built.  Try: gem pristine gem-wrappers-1.2.4
Ignoring pg-0.17.1 because its extensions are not built.  Try: gem pristine pg-0.17.1
Ignoring psych-2.0.6 because its extensions are not built.  Try: gem pristine psych-2.0.6
Ignoring sqlite3-1.3.9 because its extensions are not built.  Try: gem pristine sqlite3-1.3.9

그리고 간단한 수정이지만 계속 발생합니다. 아무도 전에 이것을 본 적이 있습니까?

$ ruby -v
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-darwin11.2.0]

답변:


5

나는 최근의 전환 rvmchruby와 실행 된 gem update --system문제가 나에게 발생하기 시작하면 그게 전부. 그 후, 번들을 달릴 때마다 같은 경고로 학살되었습니다. 여전히 문제의 원인이 확실하지 않습니다.

Ignoring curb-0.8.6 because its extensions are not built. Try: gem pristine curb-0.8.6

무엇이 수정되었는지 확실하지 않지만 2 가지를했는데 경고가 사라졌습니다.

gem uninstall bundler
gem install bundler

gem install curb

이상하게도 OS X 번들 Ruby에서 RVM으로 전환했을 때 시작되었습니다. 일반적으로 며칠 후 또는 새 세션을 열면 자정에 정리됩니다 (정오에 번거로울 때 번거 롭습니다). 나는 일반적으로 주어진 시간에 내가 사용하는 모든 것을 다시 설치해야하며, 이는 일반적으로 나이프입니다.
tony_perkis666

내 컴퓨터에 수십 개의 보석이 생겼습니다. 방금 재건축해야했다고 생각합니다
lfender6445

나 자신을 위해, 나는 경고를주고 있던 각 보석을 제거했다가 다시 설치해야했다bundle install
Noah Passalacqua

"도살됐다"-와우
B 세븐

내가 무엇을 얻으려고 노력하든 You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory, 그 문제는 저절로 시작되었으므로 내가 아는 모든 것에 루비를 사용하지도 않습니다. 그러나 clocale-0.0.3새로운 쉘을 시작할 때마다 확장 기능에 대한 오류가 발생합니다
Vadorequest

62

내 경우에는 설치 후이 오류가 표시되기 시작합니다. rvm

나는 다음과 같은 문제를 해결한다. gem pristine --all


유용한 명령
lfender6445

2
이것은 효과가 있었다. 그러나 나는 왜 그런지 모른다
Hubro

1
번 들러를 설치 제거하고 설치하지 못했습니다. 그러나 이것은 효과가 있었다! 감사!
Srikanth Jeeva

3
이것은 받아 들여진 대답이어야합니다.
ILikeTurtles

19

gem이 현재 실행중인 다른 libruby에 대해 컴파일 된 경우이 문제가 발생합니다. 예를 들어, chruby와 함께 홈 디렉토리에있는 루비를 사용하고 gem을 ~ / .gem / ruby에 설치하지만 / usr / bin / ruby를 호출하는 스크립트를 실행하면 그곳에 설치된 gem을 재사용합니다. 이 경우 gem pristine --all보석은 하나의 루비 버전에 대해서만 연결할 수 있기 때문에 도움이되지 않습니다.


아 감사합니다! "rails s"를 실행할 때 오류가 발생했습니다. 나는 "번들 exec rails"로 바꾸었고 문제는 사라졌다.
Gerry

1
이 허용 대답해야한다
도미니크 슈라이버

1
이 대답은 옳습니다. gem이 저장되어있는 Rails 저장소에서 문제가 발생하면를 vendor/bundle삭제 rm -rf vendor/bundle하고 다시 설치하십시오 bundle install.
vmarquet 2016 년

고맙습니다. 나는 gem pristine --all얼굴이 파랗게 될 때까지 노력했지만 왜 그것이 효과가 없는지 알았습니다 ...
GDP2


2

이것은 MacOs Sierra에서 나를 위해 일했습니다.

xcode-select --install
gem install nokogiri

위의 명령을 실행하기 전에 전체 xcode를 이미 설치했지만 어쨌든 첫 번째 스크립트가 일부 내부 라이브러리 / 종속성을 업데이트하기 때문에이 작업을 수행해야했습니다.


이것이 내가 MacOS Sierra 솔루션을 찾고 있었던 것입니다. 감사합니다
Sakares

1

올바른 버전의 루비에 대해 "gem pristine --all"을 실행하고 있는지 확인하십시오. / usr / bin / ruby가 호출되면 ... "/ usr / bin / gem pristine --all"을 사용하십시오. rvm을 사용 중이고 10 버전의 루비가 설치되어있는 경우에는 명확하지 않습니다.

이것은 하루 동안 내 문제를 해결 한 다음 돌아 왔습니다.

보다 영구적 인 해결책은 기본 루비가 설치된 OSX 버전 / usr / bin / ruby ​​및 / usr / bin / gem이되도록 "rvm reset"을 수행하는 것입니다. 프로젝트에 최신 버전의 루비를 사용하려면 프로젝트 루트 디렉토리에서 .ruby-version 및 .ruby-gemset을 사용하여 사용하려는 루비 버전을 명시 적으로 설정하십시오. 이상적이지 않지만 ...이 오류를 해결해야합니다.



0

나는 레일을 처음 접했기 때문에 완전히 잘못된 조언이 될 수 있지만 다른 솔루션 중 어느 것도 나를 위해 일하지 않았기 때문에 내 것을 공유 할 것이라고 생각했습니다.

Mic92와 Gerry는 나를 올바른 길로 안내했습니다 rails s. 프로젝트 버전과 다른 레일 버전을 실행하기 때문에 오류가 발생할 수 있습니다.

에 연결을 시도했지만 bin/rails server다른 오류 (보석 누락)가 발생하여bundle install

이 시점에서 세 번째 오류 ( "호환되지 않는 라이브러리 버전")가 발생하여 spring stop치료되었습니다.

그런 다음 rails generate controller봄을 다시 시작하고 모든 것이 효과가있었습니다 (약간 울었습니다).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.