Обновление пакета mini_racer обновляет рельсы, хотя это и не предполагается? - PullRequest
0 голосов
/ 06 января 2019

У меня была та же проблема обновления mini_racer, что и у других, но общие рекомендации не работают для меня.

Получение следующих ошибок при запуске bundle install с mini_racer 0.2.0 в моем gemfile ...

2 warnings generated.
linking shared-object mini_racer_extension.bundle
clang: warning: libstdc++ is deprecated; move to libc++ [- 
Wdeprecated]
ld: library not found for -lstdc++
clang: error: linker command failed with exit code 1 (use -v to see 
invocation)
make: *** [mini_racer_extension.bundle] Error 1

make failed, exit code 2

An error occurred while installing mini_racer (0.2.0), and Bundler
cannot continue.
Make sure that `gem install mini_racer -v '0.2.0' --source
'https://rubygems.org/'` succeeds before bundling.

In Gemfile:
mini_racer

Я пытаюсь просто обновить mini_racer с

bundle update mini_racer

но когда я запускаю пакетную установку, я получаю новую (и более тревожную) ошибку ...

Bundler could not find compatible versions for gem "bundler":
In Gemfile:
rails (~> 5.1.4) was resolved to 5.1.6, which depends on
  bundler (>= 1.3.0)

render_async was resolved to 2.0.0, which depends on
  bundler (~> 1.8)

Current Bundler version:
bundler (2.0.1)
This Gemfile requires a different version of Bundler.
Perhaps you need to update Bundler by running `gem install bundler`?

Could not find gem 'bundler (~> 1.8)', which is required by gem 
'rails (~>
5.1.4)', in any of the sources.

Что мне делать, чтобы обновить mini_racer без обновления зависимостей? (по крайней мере, я думаю, что это то, что происходит)

Ответы [ 2 ]

0 голосов
/ 21 января 2019

разобрался с обходным путем.

Проблема заключалась в том, что heroku не поддерживает bundler 2.0 и выше, и если мы обновили mini_racer, он обновлял bundler, поэтому, чтобы сделать mini_racer и heroku счастливыми, мы обновили mini_racer в gemfile и указали самую последнюю версию, и тогда мы всегда используем

gem install bundler --version 1.16.4

, пока heroku не поддерживает более новую версию пакета.

0 голосов
/ 08 января 2019

Ваша первая ошибка связана с отсутствием зависимости от мини-гонщика. Ключ в этом сообщении об ошибке:

library not found for -lstdc++

Вам необходимо установить gcc. Если вы используете Homebrew, вы можете запустить brew install gcc

Причина, по которой рельсы были испорчены, заключается в том, что когда вы запускали команду обновления пакета, похоже, она обновляла все, включая зависимости. Я считаю, что есть флаг упаковщика, который заставляет его обновлять только выбранные вами драгоценные камни, но это все равно не поможет, потому что вы пропустили зависимости, необходимые для mini racer.

После установки gcc просто запустите bundle install. Это должно установить мини гонщик без ошибок.

Ошибка упаковщика, как я уже отмечал, произошла из-за недавнего обновления связки. Я на данный момент заблокировал 1.17.3, потому что мне не повезло, работая с этим сообщением об ошибке.

...