Распаковка драгоценных камней [направляющие 2.3.5]

Мне определили следующие драгоценные камни в моем environment.rb файле:

  config.gem "authlogic"
  config.gem "paperclip"
  config.gem "pauldix-feedzirra", :lib => "feedzirra", :source => "http://gems.github.com"
  config.gem 'whenever', :lib => false, :source => 'http://gemcutter.org/'

Мне установили их на моем локальном компьютере, и все работает хорошо. Так как я работаю над общим сервером (DreamHost), я должен распаковать те драгоценные камни, чтобы заставить их работать (не может установить их, как я сделал на своем собственном компьютере, чтобы заставить их работать).

Перед загрузкой я выполнил следование моей локальной машины:

rake gems:unpack

Это создало следующие папки в /vender/gems:

authlogic-2.1.3, paperclip-2.3.1.1, pauldix-feedzirra-0.0.18, whenever-0.4.1

Таким образом, похоже, что они - все там.

Когда я работаю rake db:migrate на сервере, тем не менее, я получаю их после ошибки:

Missing these required gems:
  pauldix-feedzirra

По некоторым причинам распакованный драгоценный камень feedzirra не обнаруживается. Кто-либо мог предложить подсказку относительно того, почему это происходит и потенциальное решение?

Спасибо!


Править: Спасибо, но код, чтобы вставить environment.rb не работает, и bundler не установит правильно на моем сервере. Какие-либо другие предложения?

5
задан Yuval Karmi 13 April 2010 в 18:14
поделиться

4 ответа

Это не точный ответ, но поскольку мне никогда не удавалось заставить config.gem работать должным образом, я рекомендую использовать Bundler , когда это возможно. Он просто работает и хорошо обрабатывает взаимозависимости между драгоценными камнями. Он также заменяет config.gem в Rails 3, насколько я понимаю.

2
ответ дан 15 December 2019 в 06:21
поделиться

Попробуйте следующее. Поместите этот код в envoirment.rb

  config.load_paths += Dir["#{RAILS_ROOT}/vendor/gems/**"].map do |dir| 
    File.directory?(lib = "#{dir}/lib") ? lib : dir
  end
0
ответ дан 15 December 2019 в 06:21
поделиться

Не знаю, полезны ли мои подсказки, потому что feedzirra - это скомпилированное расширение (я думаю, против CURL). Лучшим решением будет обычная установка гема feedzirra (он сам скомпилируется) на вашем сервере.


Вы не установили (распаковали) гем feedzirra, но pauldix-feedzirra. Фидзирра, наверное, тоже нужна распакованная.

Попробуйте добавить

config.gem feedzirra

в environment.rb и запустить локально.

rake gems:install
rake gems:unpack

Похоже, распакованный гем feedzirra отсутствует в / vendor / plugins . Посмотрите, будет ли там после этих команд скопирована feedzirra ...

0
ответ дан 15 December 2019 в 06:21
поделиться

Я заметил две особенности feedzirra: во-первых, он зависит от трех других гемов, и по крайней мере один из них создает собственные расширения. И я собираюсь называть это "feedzirra" - я не фанат необдуманного фиаско с автоматической упаковкой на github.

Если бы это было только первое, то rake gems: unpack: dependencies помогли бы.

Однако, по крайней мере, curb (от которого зависит feedzirra) создает расширения, которые нельзя просто распаковать. Вы можете либо заставить Dreamhost установить их (удачи), либо установить их в локальный каталог драгоценных камней вашего пользователя.

Для этого вам нужно обновить ваш .gemrc и убедиться, что он содержит такую ​​строку: : user_install: true

Затем rake gems: install

Если только ваша среда развертывания не позволяет вам создавать исполняемые файлы, в этом случае вам придется раскошелиться на менее ограниченный пакет - я точно знаю, что Dreamhost действительно предоставляет пакеты, которые позволят использовать extension-gems.

(И есть отдельная проблема с развертыванием libcurl ...)

1
ответ дан 15 December 2019 в 06:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: