2012-11-27 4 views
0

Я разрабатываю Rails на Mac OS X 10.8 и пытается использовать Capistrano для развертывания в Debian Squeeze.Bundler, ExecJS, Mac OS X и Debian

Установка дает мне эту ошибку:

Could not find libv8-3.3.10.4 in any of the sources 

Это, кажется, что у меня есть bundle package -da Mac OS X бинарной перл:

Updating files in vendor/cache 
... 
* libv8-3.3.10.4-x86_64-darwin-12.gem 

Gemfile имеет:

gem 'therubyracer' 

Я хочу использовать двоичные драгоценные камни, потому что Squeeze не предоставляет Node.js из пакета возраст менеджера, и я хотел бы сохранить исходный компиляцию с сервера производства.

Есть ли способ рассказать Bundler о пакете как Linux, так и Darwin?

BTW, как therubyracer выполнить это когда тоже uses Bundler?

+2

Кросс-компиляция из MacOS для Linux? Вы испытываете некоторую боль. – Reactormonk

+0

Я не имею в виду кросс-компиляцию. Драйвер 'libv8' имеет двоичные варианты для Linux и Mac. Я хочу упаковать их обоих. – Laas

+0

Собственные расширения скомпилированы при их установке. – Reactormonk

ответ

0

Одно решение было пропустить bundle package, который будет загружать все пакеты из исходников, но его сделал развернуть слишком медленно на мой вкус (возможно б/с по какой-то причине до сих пор не скачать бинарную камень и скомпилированный libv8 заново каждый время).

Итак, я закончил установку Node.js из исходного кода в поле Debian и документ, который является предварительным условием для проекта. Потом я заметил эту часть Gemfile:

group :assets do 
    ... 
    # gem 'therubyracer' 
    ... 
end 

Теперь я могу снова bundle package весь участок и развертывание быстро.

0

Установите libv8 на свою коробку Debian.

+0

Я пробовал, но Capistrano использует 'bundle --deployment', который не использует установленные системой драгоценные камни. – Laas