2010-04-10 3 views
5

У меня есть следующие драгоценные камни, определенные в моем файле environment.rb:Распаковка драгоценных камней [Rails 2.3.5]

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 распакованы камень не обнаружен. Может ли кто-нибудь дать понять, почему это происходит и потенциальное решение?

Спасибо!


EDIT: Спасибо, но код положить в environment.rb не работает, и пакетирования не будет правильно установить на моем сервере. Любые другие предложения?

ответ

2

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

0

Try Following.put этот код в envoirment.rb

config.load_paths += Dir["#{RAILS_ROOT}/vendor/gems/**"].map do |dir| 
    File.directory?(lib = "#{dir}/lib") ? lib : dir 
    end 
+0

Спасибо, но это не похоже на работу ... –

0

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


Вы не установили (без упаковки) feedzirra гем, но pauldix-feedzirra. Наверное, вам тоже нужно скачать feedzirra.

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

config.gem feedzirra 

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

rake gems:install 
rake gems:unpack 

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

1

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

Если бы это были только первые, то грабли gems: unpack: зависимости сделали бы трюк.

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

Чтобы сделать это, вам нужно обновить .gemrc и быть уверенным, что она включает в себя строку: : user_install: истинный

Затем Rake драгоценные камни: установить

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

(И есть отдельный вопрос Libcurl развертывается ...)