rvm и bundler - проблема с гемом и граблями RedCloth - PullRequest
1 голос
/ 08 апреля 2011

Я настроил локальный проект для использования rvm с набором gemset для конкретного проекта и сделал «пакетный пакет», чтобы поместить все мои гемы в vendor / cache.Затем я проверил все это в управлении исходным кодом.

Теперь на сервере я установил rvm (тот же ruby ​​- ruby-1.8.7-p302) и снова сделал gemset.Я проверил папку проекта, cd'd в нее (я нахожусь в правильном rvm и gemset в этой точке).Я думал, что смогу сделать "комплектную установку" для установки из гемов в vendor / cache.Но драгоценный камень RedCloth падает:

Using rake (0.8.7) 
Installing RedCloth (4.2.3) with native extensions 
/opt/ruby-enterprise-1.8.7-2011.01/lib/ruby/site_ruby/1.8/rubygems/installer.rb:529:in
`build_extensions': ERROR: Failed to build gem native extension. 
(Gem::Installer::ExtensionBuildError)

        /opt/ruby-enterprise-1.8.7-2011.01/bin/ruby extconf.rb 

Gem files will remain installed in 
/home/deploy/.rvm/gems/ruby-1.8.7-p302@akrotoski/gems/RedCloth-4.2.3 for inspection.

Вот что у меня есть для "списка драгоценных камней":

*** LOCAL GEMS ***

bundler (1.0.11)
rake (0.8.7)
RedCloth (4.2.7)

Это странно - даже если он падает при попытке построитьRedCloth считает, что он установлен.

Также странно, что сообщение об ошибке относится к "системной" версии ruby, а не к текущей версии rvm.Текущий rvm определенно активирован:

rvm list
>> rvm rubies
>> => ruby-1.8.7-p302 [ x86_64 ]

which ruby
>> /home/deploy/.rvm/rubies/ruby-1.8.7-p302/bin/ruby

which gem
>> /home/deploy/.rvm/rubies/ruby-1.8.7-p302/bin/gem

Я немного запутался в этом моменте ... Одна потенциальная проблема может заключаться в том, что на моей локальной машине (32-битной) у меня есть версия ruby ​​i386-1.8.7-p302, хотя на моем сервере установлена ​​версия x86_64 - может ли это быть причиной этой проблемы?

Благодарен за любой совет - макс.

1 Ответ

2 голосов
/ 26 августа 2011

шаг первый: продавайте все с помощью упаковщика

На всякий случай вот отличное сообщение в блоге о том, как продать все (и этоподразумевает исключение использования gemsets).Я указываю на это, потому что мне кажется, что в вашей среде существует опасная смесь комплектов и гемсетов.Если вы продаете все (самый безопасный), никакой набор гемов не требуется ....

шаг 2: включите .rvmrc в корень вашего проекта.

хорошо, это объясняется ввышеупомянутый пост в блоге: он будет следить за тем, чтобы вы были в той же версии ruby, когда вы вставляете компакт-диск в проект (но кажется, что это уже так ...)

шаг 3: запустите пакетную установку --deployment

опция развертывание означает, что кэшированные самоцветы будут использоваться автоматически.Это гарантирует, что ваша производственная среда идеально отражает вашу разработку.

надеюсь, что это решит проблему ...

...