проблема установки пакета с libv8 и рельсами - PullRequest
5 голосов
/ 27 января 2012

У меня проблемы с гемом libv8 с ruby ​​1.9.3p0 (редакция 2011-10-30 33570) [x86_64-darwin10.8.0]. gem install libv8 работает нормально и у меня

gem 'therubyracer'

в моем Gemfile, и это зависит от libv8, который устанавливается, когда я делаю bundle install:

$ bundle exec gem list

*** LOCAL GEMS ***

actionmailer (3.1.3)
actionpack (3.1.3)
...
libv8 (3.3.10.4 x86_64-darwin-10)
...

но когда я бегу:

$ rails s
Could not find libv8-3.3.10.4 in any of the sources
Run `bundle install` to install missing gems.

он не может найти libv8 - это проблема 32/64 бита? Если да, то как мне это решить?

Ответы [ 6 ]

1 голос
/ 04 июня 2014

На самом деле вы можете установить эту версию на Mavericks:

gem install libv8 -v 3.11.8.17 - --with-system-v8

Вы можете предоставить любую версию гема libv8, какую пожелаетечтобы установить ..

После этого у вас может возникнуть проблема с установкой therubyracer, затем

Обновите версию Gemfile, чтобы она указала на последнюю версию следующим образом:

gem "therubyracer""~> 0.10.2"

и мне удалось успешно установить гем.

Если вы хотите установить гем вручную, вы можете использовать:

установка камняtherubyracer --version "~> 0.10.2"

1 голос
/ 03 ноября 2012

У меня была похожая проблема при развертывании с устройства разработки x86 на сервер x86_64 (с использованием capistrano)

Когда я сделал развертывание, я получил то же самое сообщение «Не удалось найти libv8-3.3.10.4 ни в одном из источников». Это связано с тем, что запуск «bundle pack» на компьютере с архитектурой x86 копирует только гем x86 в каталог / vendor / cache!

Я исправил это, явно добавив файл gem linux x86_64 в каталог / vendor / cache, чтобы он соответствовал архитектуре сервера развертывания. После этого развертывание прошло нормально.

1 голос
/ 25 октября 2012

Другое решение - использовать nodejs вместо therubyracer. Вы устанавливаете его на сервер, используя apt-get / yum, поэтому в вашем Gemfile нет необходимости включать execjs или therubyracer.

1 голос
/ 30 января 2012

Я подозреваю, что это из-за несоответствия 32/64 бит

Я решил это следующим образом:

$ irb
ruby-1.9.3-p0 :001 > `gem list`.each_line {|line| `sudo env ARCHFLAGS="-arch x86_64" gem install #{line.split.first}`
0 голосов
/ 13 июля 2014

Я решил эту проблему, установив nodejs (последняя версия). Что он делает, так это то, что он устанавливает библиотеку libv8 -dev вместе с ней. Таким образом, вместо установки гема вам нужна нативная библиотека.

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

0 голосов
/ 28 января 2012

Вы пробовали bundle exec rails s?Возможно, существует конфликт между камнями, которые вы установили в своей системе, и камнями, необходимыми для запуска проекта.

...