2010-04-10 3 views
5

내 environment.rb에 파일에 정의 된 다음과 같은 보석이 : 내가 그들을 내 로컬 컴퓨터에 설치 한포장 풀기 보석 [레일 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에 넣을 코드가 작동하지 않아 bundler가 제 서버에 제대로 설치되지 않습니다. 다른 제안? envoirment.rb

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

답변

2

이 코드 Following.put

0

봅니다이 정확히 답변하지 않습니다,하지만 난 config.gem 제대로 작동하려면 결코 수 있기 때문에, 나는 때마다 내가 할 수있는 Bundler를 사용하는 것이 좋습니다. 그냥 작동하고 그것은 보석 사이의 상호 의존성을 잘 처리합니다. 또한 레일즈 3의 config.gem을 내가 이해 한 것으로 바꿉니다.

+0

고마워요,하지만 이것은 작동하지 않습니다 ... –

0

내 힌트가 유용할지 모르겠다. feedzirra가 컴파일 된 확장 프로그램이기 때문에 (CURL에 대해 생각하기에). 더 나은 해결책은 보통 서버에 feedzirra gem을 설치하는 것입니다.


feedzirra gem이 (가) 설치되어 있지 않지만 pauldix-feedzirra는 설치되지 않았습니다. 아마 당신은 또한 압축을 푼 feedzirra를 필요로합니다.

은 environment.rb에로

config.gem feedzirra 

을 추가하고

rake gems:install 
rake gems:unpack 

feedzirra 압축을 푼 보석 /vendor/plugins에서 누락되어 마치 로컬에서 실행 해보십시오. 이 명령 뒤에 feedzirra가 복사되는지 확인하십시오.

1

나는 feedzirra에 대해 두 가지 사실을 알았습니다. 먼저 다른 3 개의 보석에 의존하고, 그 중 하나 이상이 기본 확장을 만듭니다. 그리고 저는 그것을 "피드 쥐라"라고 부를 것입니다 - 나는 github의 잘 모르는 자동 포장 실패의 팬이 아닙니다.

이전의 경우 rake gems : unpack : dependencies가 트릭을 수행합니다.

그러나 적어도 curb (feedzirra가 의존하는)는 건물 확장이며 간단히 압축 해제 할 수 없습니다. Dreamhost를 설치 (행운을 빈다)하거나 사용자의 로컬 보석 디렉토리에 설치할 수 있습니다.

그렇게하려면, 당신은 당신의 .gemrc를 업데이트하고 같은 라인이 포함되어 있는지 확인해야합니다 : 배포 환경이 승리하지 않는 한

를 설치 : user_install : 사실

그런 레이크 보석을 실행 파일을 빌드하게 만들지 마십시오. 제한이 적은 패키지를 위해 쉘을 사용해야합니다. Dreamhost가 확장 프로그램을 허용하는 패키지를 제공한다는 사실을 알고 있습니다.

(그리고 배포 할 libcurl의 별도 문제가 있습니다 ...)