2012-01-27 22 views
5

Mam problemy z klejnotem libv8 z rubinem 1.9.3p0 (2011-10-30 wersja 33570) [x86_64-darwin10.8.0]. gem install libv8 działa dobrze i mamProblem z instalacją pakietu z libv8 i szynami

gem 'therubyracer' 

w moim Gemfile i to ma zależność libv8 którym jest zainstalowany, gdy robię 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) 
... 

ale gdy uruchomię:

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

nie można znaleźć libv8 - czy jest to problem 32/64 bitowy? Jeśli tak, jak mogę to rozwiązać?

Odpowiedz

1

Podejrzewałem, że to dlatego, że miałem niedopasowanie 32/64 bitowe.

I rozwiązać to z następujących powodów:

 
$ irb 
ruby-1.9.3-p0 :001 > `gem list`.each_line {|line| `sudo env ARCHFLAGS="-arch x86_64" gem install #{line.split.first}` 
+2

Jeśli zapakujesz klejnoty do dostawcy/pamięci podręcznej, wtedy po wdrożeniu będziesz mieć klejnoty spakowane do architektury środowiska programistycznego - np. 32-bitowy lub OSX. Jeśli następnie wdrożysz w środowisku produkcyjnym za pomocą zapakowanych klejnotów, możesz potrzebować dodatkowych wersji. –

0

Czy próbowałeś już bundle exec rails s? Możliwe, że istnieje konflikt między klejnotami zainstalowanymi w systemie a kamieniami, które są wymagane do uruchomienia projektu.

1

Innym rozwiązaniem jest użycie nodejs zamiast therubyracer. Instalujesz go na serwerze za pomocą apt-get/yum, więc nie ma potrzeby, aby twój Gemfile zawierał execjs lub therubyracer.

1

Miałem podobny problem z wdrożeniem z pudełka x86 dev do serwera przy użyciu Capistrano (x86_64)

Kiedy zrobiłem rozmieszczenie, mam takie same „Nie znaleziono libv8-3.3.10.4 którymś z wiadomości źródłowe. Dzieje się tak dlatego, że uruchomienie "pakietu pakietów" na maszynie x86 kopiuje tylko klejnot x86 do katalogu/vendor/cache!

Naprawiłem to, dodając jawnie plik gem linux x86_64 do katalogu/vendor/cache, aby był zgodny z architekturą serwera wdrażania. Wdrożenie przebiegło dobrze po tym.

1

Rzeczywiście można zainstalować tę wersję na Mavericks:

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

Możesz podać cokolwiek libv8 gem wersję chcesz zainstalować. .

po tym można w obliczu problemu z zainstalowaniem therubyracer następnie

Aktualizacja Wersja Gemfile pkt do ostatniej wersji tak:

gem "therubyracer", "~> 0.10.2"

i udało mi się z powodzeniem zainstalować klejnot.

Jeśli chcesz ręcznie zainstalować gem, można użyć:

gem install therubyracer --version "~> 0.10.2"

0

I rozwiązany ten problem instalując nodejs (najnowsza wersja). To, co robi, polega na tym, że instaluje bibliotekę libv8 -dev wraz z nią.Dlatego zamiast instalować klejnot, potrzebujesz biblioteki natywnej.

Możesz zainstalować bezpośrednio lub zainstalować nodejs w swoim systemie i powyższy błąd powinien zostać rozwiązany.