使用Bundler安装Gems ==大问题

Tri*_*rip 9 rubygems ruby-on-rails passenger nginx bundler

如果我跑bundle install,一切都过去了.我重新启动nginx,当我访问该网站时,我看到乘客错误:

git://github.com/spree/spree.git (at master) is not checked out. Please run `bundle install` (Bundler::GitError)
Run Code Online (Sandbox Code Playgroud)

我的gemfile:

source 'http://rubygems.org'

gem 'rails', '3.0.3'
gem 'spree', :git => 'git://github.com/spree/spree.git' 
gem 'haml'
gem 'ruby-debug'
gem 'sqlite3', :require => 'sqlite3'
gem 'ckeditor', '3.4.2.pre'
gem "aged_revolt", :require => "aged_revolt", :path => "aged_revolt"
gem "spree_easy_contact", '1.0.2', :path => "#{File.expand_path(__FILE__)}/../vendor/gems/spree_easy_contact-1.0.2"
gem "honeypot-captcha"
Run Code Online (Sandbox Code Playgroud)

当我跑bundle show spree:

/home/shadyfront/.rvm/gems/ruby-1.8.7-p330@revolting_gems/bundler/gems/spree-44e4771f3a2a
Run Code Online (Sandbox Code Playgroud)

知道如何/为什么会发生这种情况以及我如何能够解决这个问题?

这是我的nginx.conf:

env               GEM_HOME=/home/shadyfront/.rvm/gems/ruby-1.8.7-p330@revolting_gems;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    access_log  /home/shadyfront/logs/user/access_revolting_age.log  combined;
    error_log   /home/shadyfront/logs/user/error_revolting_age.log   crit;

    include         mime.types;
    passenger_root  /home/shadyfront/webapps/revolting_age/gems/gems/passenger-2.2.15;
    passenger_ruby  /home/shadyfront/webapps/revolting_age/bin/ruby;
    sendfile        on;

    passenger_max_instances_per_app  1;
    rails_spawn_method               conservative;
    passenger_max_pool_size 2;

    server {
        listen             56943;
        passenger_enabled  on;
        root               /home/shadyfront/webapps/revolting_age/releases/20110215175319/public;
        server_name        localhost;
    }
}
Run Code Online (Sandbox Code Playgroud)

use*_*529 24

在处理基于git的宝石时,这个问题似乎是乘客或捆绑者中的一个错误.这个 "解决方案"(我正在写供应商而不是供应商......)让我的乘客现在正在运行:

  1. 捆绑包
  2. bundle install --path vendor/cache

我认为http://www.ruby-forum.com/topic/213962是同一个问题,据我所知它还没有解决.可能很快就会修复这个bug ...

  • 我只是偶然发现了这件事.定义问题是由git导入引起的,好像很多人都遇到了这个问题.想知道是否有人确实在修理这个...... (2认同)

Tri*_*rip 1

这是因为您还必须在 nginx 启动脚本中确定 gem 位置(特别是捆绑器的安装位置)。

垃圾箱/开始

#!/bin/bash

TMPDIR=/home/shadyfront/webapps/truejersey/tmp GEM_HOME=/home/shadyfront/.rvm/gems/ruby-1.8.7-p330@true /home/shadyfront/webapps/truejersey/nginx/sbin/nginx -p /home/shadyfront/webapps/truejersey/nginx/
Run Code Online (Sandbox Code Playgroud)