Подтвердить что ты не робот

Почему пакет не будет устанавливать JSON?

При попытке запустить 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, чтобы отразить это обновление Ruby.

Команда 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

Итак, кажется, что камень установлен, правильно? Почему это происходит? Как я могу это решить? Любая помощь будет принята с благодарностью.

4b9b3361

Ответ 1

Итак, после половины дня на этом и почти сразу после публикации моего вопроса я нашел ответ. Bundler 1.5.0 имеет ошибку, в которой он не распознает самолеты по умолчанию, как указанные здесь

Решением было обновление до пакета 1.5.1 с помощью gem install bundler -v '= 1.5.1'

Ответ 2

Запустите эту команду, тогда все будет нормально

sudo apt-get install libgmp-dev

Ответ 3

если вы находитесь в MacOS Sierra, а ваша рубиновая версия - 2.4.0. Рубиновая версия не совместима с json 1.8.3.

Вы можете попробовать добавить эту строку в свой Gemfile:

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

Это работает для меня!

Ответ 4

$ bundle update json
$ bundle install

Ответ 5

Я нашел решение здесь. Существует проблема с json версии 1.8.1 и ruby ​​2.2.3, поэтому установите версию json 1.8.3.

gem install json -v1.8.3

Ответ 6

Вы должны попробовать

$ sudo gem install json -v '1.8.2'

в моем случае (Ubuntu 14.04), который не работал напрямую, и я должен был сделать это:

$ sudo apt-get install ruby-dev

а затем я смогу установить драгоценный камень и продолжить. Была еще одна проблема, которая была исправлена:

$ sudo apt-get install libsqlite3-dev

Надежная помощь.

Ответ 7

Чтобы решить эту проблему, просто запустите:

bundle update

Он обновит версию вашего поставщика. Затем запустите:

bundle install

Ваша проблема будет решена. Решение хорошо объяснено здесь.

Ответ 8

Я столкнулся с этой ошибкой, пытаясь запустить проект в своем локальном блоке dev (OSX 10.6), используя Sinatra и Postgresql (через activerecord), работая на rvm'd ruby ​​2.1. Я нашел здесь свой ответ: https://github.com/wayneeseguin/rvm/issues/2511

Моя точная проблема (после первого блока записей журнала):

Я также получаю сообщение об ошибке при попытке создания собственных расширений для драгоценных камней

Ответ :

rvm переустановить 2.1.0 --disable-binary

:

OSX не имеет диспетчера пакетов, поэтому все библиотеки должны быть установлены вручную пользователем, что делает невозможным связывание двоичного файла в виртуальном режиме, и, как вы видите, есть проблемы с (псевдо) статически связанным двоичным кодом.

Для полноты я сначала забыл обновить rvm (rvm get head), что дало некоторые другие ошибки, но по-прежнему понадобилось флаг --disable-binary, когда я это сделал.

Ответ 9

Если рекомендуемый ответ не помог, потому что вы уже используете более новую версию bundler. Попробуйте решение, которое сработало для меня.

Удалите все содержимое папки поставщика. Добавьте строку в свой gemfile

gem 'json', '1.8.0'

Затем запустите - bundle update json.

Кажется, проблема с 1.8.1, поэтому возвращение к 1.8.0 сделало трюк для меня.

Ответ 10

bundle update json. Помогли пройти.

Ответ 11

Для OS X убедитесь, что у вас есть coreutils

$ brew install coreutils
$ bundle

Ответ 12

Это, как представляется, ошибка в Bundler, не признающая стандартные камни, установленные вместе с ruby ​​2.x. Я все еще сталкивался с проблемой даже с последней версией пакета (1.5.3).

Одним из решений является просто удалить json-1.8.1.gemspec из каталога gemspec по умолчанию.

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

После этого у комплектатора не должно быть проблем с поиском драгоценного камня. Обратите внимание, что я использую chruby. Если вы используете какой-либо другой менеджер рубинов, вам придется соответствующим образом обновлять свой путь.

Ответ 13

Мне не хватало решение заголовков C, чтобы загрузить его для Xcode, это лучший способ.

xcode-select --install

Надеюсь, что это поможет.

Ответ 14

Я установил последнюю версию json:

gem install json

Затем удалили строку json (1.8.1) из Gemfile.lock и выполнили

bundle install

И тогда файл Gemfile.lock использует json (1.8.3) без erros

Ответ 15

Bundle не смог установить json -v '1.8.1', и удаление моего Gemfile.lock и запущенного пакета снова решило эту проблему для меня.

Ответ 16

Переключить рубиновую версию с 1.9 на 2.2 с помощью rvm выполнила эту работу для меня

Ответ 17

Для меня некоторые из ответов, упомянутых ранее, были полезны с точки зрения понимания, но это не помогло решить мою проблему.

Итак, это то, что я сделал для решения проблемы.

  • Измененный файл gemfile.lock для обновления json (2.0.2) (раньше это был 1.8.3)
  • Проверьте установленную версию Bundler (команда Bundler -v). У меня установлена ​​версия 1.12.5.
  • Установить пакетный пакет версии 1.11.2 (с помощью gem install bundler -v '1.11.2')
  • Затем выполните установку пакета

Ответ 18

Для macOS Sierra:

Я столкнулся с этой ошибкой. Когда я использовал компоновщик (v1.15.3) в проекте Rails (v4.2). Решение для меня - gem uninstall bundler -v '1.15.3' и gem install bundler -v '1.14.6'.