program story

번 들러가 JSON gem을 설치하지 않는 이유는 무엇입니까?

inputbox 2020. 10. 6. 08:11
반응형

번 들러가 JSON gem을 설치하지 않는 이유는 무엇입니까?


실행하려고 할 때 다음 오류가 발생합니다 cap production deploy.

DEBUG [dc362284]    Bundler::GemNotFound: Could not find json-1.8.1.gem for installation
DEBUG [dc362284]    An error occurred while installing json (1.8.1), and Bundler cannot continue.
DEBUG [dc362284]    Make sure that `gem install json -v '1.8.1'` succeeds before bundling.

인코딩 오류를 제거하기 위해 Ruby 2.1.0으로 업그레이드 한 것보다이 배포가 작동했다는 점에 유의하는 것이 중요 할 수 있습니다. 나는 잘 작동하는 로컬로 업그레이드했습니다. 나는 실행 rvm install 2.1.0하고 rvm use 2.1.0다음 내 변경 .ruby-version이 루비 업그레이드를 반영하기 위해 파일을.

bundle install명령은 로컬로 작동하지만 대상 서버에 ssh하고이 명령을 실행할 때 위와 동일한 오류가 발생합니다.

실행하면 gem list보석 목록에서 볼 수 있습니다.

...
jquery-rails (3.0.4)
json (1.8.1)
less (2.3.2)
...

권장 솔루션을 gem install json -v '1.8.1'로컬 및 대상 서버에서 시도 하면 다음과 같은 출력이 표시됩니다.

Building native extensions.  This could take a while...
Successfully installed json-1.8.1
Parsing documentation for json-1.8.1
Done installing documentation for json after 0 seconds
1 gem installed

그래서 gem이 설치된 것 같죠? 왜 이런 일이 발생합니까? 어떻게 해결할 수 있습니까? 어떤 도움이라도 대단히 감사하겠습니다.


그래서 반나절 후에 내 질문을 게시 한 직후에 답을 찾았습니다. Bundler 1.5.0에는 여기에 언급 된 기본 gem을 인식하지 못하는 버그가 있습니다.

해결책은 다음을 사용하여 번 들러 1.5.1로 업데이트하는 것이 었습니다. gem install bundler -v '= 1.5.1'


$ bundle update json
$ bundle install

이 명령을 실행하면 모든 것이 정상입니다

sudo apt-get install libgmp-dev

MacOS Sierra에 있고 루비 버전이 2.4.0 인 경우 루비 버전은 json 1.8.3과 호환되지 않습니다.

Gemfile에 다음 줄을 추가 할 수 있습니다.

gem 'json', github: 'flori/json', branch: 'v1.8'

이것은 나를 위해 작동합니다!


이 문제를 해결하려면 다음을 실행하십시오.

bundle update

번 들러의 버전을 업데이트합니다. 그런 다음 다음을 실행하십시오.

bundle install

문제가 해결 될 것입니다. 해결책은 여기에 잘 설명되어 있습니다 .


여기서 해결책을 찾았습니다 . json 버전 1.8.1 및 ruby ​​2.2.3에 문제가 있으므로 json 1.8.3 버전을 설치하십시오.

gem install json -v1.8.3

당신은 시도해야

$ sudo gem install json -v '1.8.2'

제 경우에는 (Ubuntu 14.04) 직접 작동하지 않았고 이렇게해야했습니다.

$ sudo apt-get install ruby-dev

그런 다음 gem을 설치하고 계속할 수 있습니다. 해결 된 문제가 하나 더 있습니다.

$ sudo apt-get install libsqlite3-dev

희망이 도움이됩니다.


rvm'd ruby ​​2.1에서 실행되는 Sinatra 및 Postgresql (activerecord를 통해)을 사용하여 내 로컬 개발 상자 (OSX 10.6)에서 프로젝트를 실행하는 동안이 오류가 발생했습니다. 내 대답은 https://github.com/wayneeseguin/rvm/issues/2511 에서 찾았습니다.

정확한 문제 (로그 항목의 첫 번째 블록 이후) :

또한 gem의 네이티브 확장을 빌드하려고 할 때 오류가 발생합니다.

대답 :

rvm 재설치 2.1.0 --disable-binary

설명 :

OSX does not have a package manager so all libraries have to be installed manually by user, this makes it virtually impossible to link the binary dynamically, and as you can see there are problems with the (pseudo)statically linked binary.

For the sake of completeness, I had first forgotten to update rvm (rvm get head), which yielded some other errors, but still needed the --disable-binary flag once I had done so.


If the recommended answer didn't help because you are already using a newer version of bundler. Try the solution that worked for me.

Delete everything inside your vendor folder. Add a line to your gemfile

gem 'json', '1.8.0'

Then run - bundle update json.

It seems to be an issue with 1.8.1 so going back to 1.8.0 did the trick for me.


bundle update json. Helped to get through.


When I tried to install the json gem using gem install json separate from just using bundle install I got ERROR: Failed to build gem native extension., looking that up I found using

    apt-get install ruby-dev

did the trick


For OS X make sure you have coreutils

$ brew install coreutils
$ bundle

This appears to be a bug in Bundler not recognizing the default gems installed along with ruby 2.x. I still experienced the problem even with the latest version of bundler (1.5.3).

One solution is to simply delete json-1.8.1.gemspec from the default gemspec directory.

rm ~/.rubies/ruby-2.1.0/lib/ruby/gems/2.1.0/specifications/default/json-1.8.1.gemspec

After doing this, bundler should have no problem locating the gem. Note that I am using chruby. If you're using some other ruby manager, you'll have to update your path accordingly.


I was missing C headers solution was to download it for Xcode, this is the best way.

xcode-select --install

Hope it helps.


Bundle was failing to install json -v '1.8.1' and deleting my Gemfile.lock and running bundle again solved this issue for me.


I installed the latest version of json:

gem install json

Then deleted the line json(1.8.1) from the Gemfile.lock and did a

bundle install

And then the Gemfile.lock file uses json(1.8.3) without erros


Switch ruby version from 1.9 to 2.2 with rvm did the job for me


For me, some of the answers mentioned earlier were helpful from understanding point of view, but those didn't solve my problem.

So this is what I did to solve issue.

  • Modified gemfile.lock to update json (2.0.2) (Earlier, it was 1.8.3)
  • Check the Bundler version installed (Bundler -v command). I had version 1.12.5 installed
  • Install bundler version 1.11.2 (using gem install bundler -v '1.11.2')
  • Then run bundle install

For macOS Sierra:

I ran into this error When i used bundler(v1.15.3) in Rails(v4.2) project. The solution for me is gem uninstall bundler -v '1.15.3' and gem install bundler -v '1.14.6'.

참고URL : https://stackoverflow.com/questions/21095098/why-wont-bundler-install-json-gem

반응형