Мне определили следующие драгоценные камни в моем 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 не установит правильно на моем сервере. Какие-либо другие предложения?
Это не точный ответ, но поскольку мне никогда не удавалось заставить config.gem работать должным образом, я рекомендую использовать Bundler , когда это возможно. Он просто работает и хорошо обрабатывает взаимозависимости между драгоценными камнями. Он также заменяет config.gem в Rails 3, насколько я понимаю.
Попробуйте следующее. Поместите этот код в envoirment.rb
config.load_paths += Dir["#{RAILS_ROOT}/vendor/gems/**"].map do |dir|
File.directory?(lib = "#{dir}/lib") ? lib : dir
end
Не знаю, полезны ли мои подсказки, потому что feedzirra - это скомпилированное расширение (я думаю, против CURL). Лучшим решением будет обычная установка гема feedzirra (он сам скомпилируется) на вашем сервере.
Вы не установили (распаковали) гем feedzirra, но pauldix-feedzirra. Фидзирра, наверное, тоже нужна распакованная.
Попробуйте добавить
config.gem feedzirra
в environment.rb и запустить локально.
rake gems:install
rake gems:unpack
Похоже, распакованный гем feedzirra
отсутствует в / vendor / plugins
. Посмотрите, будет ли там после этих команд скопирована feedzirra ...
Я заметил две особенности feedzirra: во-первых, он зависит от трех других гемов, и по крайней мере один из них создает собственные расширения. И я собираюсь называть это "feedzirra" - я не фанат необдуманного фиаско с автоматической упаковкой на github.
Если бы это было только первое, то rake gems: unpack: dependencies помогли бы.
Однако, по крайней мере, curb (от которого зависит feedzirra) создает расширения, которые нельзя просто распаковать. Вы можете либо заставить Dreamhost установить их (удачи), либо установить их в локальный каталог драгоценных камней вашего пользователя.
Для этого вам нужно обновить ваш .gemrc и убедиться, что он содержит такую строку: : user_install: true
Затем rake gems: install
Если только ваша среда развертывания не позволяет вам создавать исполняемые файлы, в этом случае вам придется раскошелиться на менее ограниченный пакет - я точно знаю, что Dreamhost действительно предоставляет пакеты, которые позволят использовать extension-gems.
(И есть отдельная проблема с развертыванием libcurl ...)