[ruby-on-rails] 번 들러가 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으로 업그레이드 한 것보다이 배포가 작동했다는 점에 유의하는 것이 중요 할 수 있습니다. 나는 잘 작동하는 로컬로 업그레이드했습니다. 이 Ruby 업그레이드를 반영하기 위해 파일을 실행 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이 설치된 것 같죠? 왜 이런 일이 발생합니까? 어떻게 해결할 수 있습니까? 어떤 도움이라도 대단히 감사하겠습니다.



답변

$ bundle update json
$ bundle install


답변

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

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


답변

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

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

희망이 도움이됩니다.