2012-09-28 29 views
3
安裝寶石

我鍵入以下命令:捆綁安裝犯規中的Gemfile

rake -RAILS_ENV=production db:schema:load 

在我的軌道我的生產服務器上的應用程序的主目錄,我得到了以下錯誤消息:

rake aborted! 
Please install the postgresql adapter: `gem install activerecord-postgresql-adapter` (pg is not part of the bundle. Add it to Gemfile.) 

這很奇怪,因爲我知道,皮克在我的Gemfile:

source 'https://rubygems.org' 

gem 'rails', '3.2.8' 

# Bundle edge Rails instead: 
# gem 'rails', :git => 'git://github.com/rails/rails.git' 

group :development, :production do 
    gem 'pg' 
    gem 'devise' 
    gem 'haml-rails' 
    gem 'paperclip' 
    gem 'will_paginate' 
end 

group :development do 
    gem 'capistrano' 
end 


# Gems used only for assets and not required 
# in production environments by default. 
group :assets do 
    gem 'sass-rails', '~> 3.2.3' 
    gem 'coffee-rails', '~> 3.2.1' 

    # See https://github.com/sstephenson/execjs#readme for more supported runtimes 
    # gem 'therubyracer', :platforms => :ruby 

    gem 'uglifier', '>= 1.0.3' 
end 

gem 'jquery-rails' 

當我運行bundle install從目錄中我得到以下輸出(PG不就行了。):

Fetching gem metadata from https://rubygems.org/....... 
Using rake (0.9.2.2) 
Using i18n (0.6.1) 
Using multi_json (1.3.6) 
Using activesupport (3.2.8) 
Using builder (3.0.0) 
Using activemodel (3.2.8) 
Using erubis (2.7.0) 
Using journey (1.0.4) 
Using rack (1.4.1) 
Using rack-cache (1.2) 
Using rack-test (0.6.1) 
Using hike (1.2.1) 
Using tilt (1.3.3) 
Using sprockets (2.1.3) 
Using actionpack (3.2.8) 
Using mime-types (1.19) 
Using polyglot (0.3.3) 
Using treetop (1.4.10) 
Using mail (2.4.4) 
Using actionmailer (3.2.8) 
Using arel (3.0.2) 
Using tzinfo (0.3.33) 
Using activerecord (3.2.8) 
Using activeresource (3.2.8) 
Using cocaine (0.2.1) 
Using coffee-script-source (1.3.3) 
Using execjs (1.4.0) 
Using coffee-script (2.2.0) 
Using rack-ssl (1.3.2) 
Using json (1.7.5) 
Using rdoc (3.12) 
Using thor (0.16.0) 
Using railties (3.2.8) 
Using coffee-rails (3.2.2) 
Using orm_adapter (0.4.0) 
Using warden (1.2.1) 
Using devise (2.1.2) 
Using haml (3.1.7) 
Using haml-rails (0.3.4) 
Using jquery-rails (2.1.1) 
Using paperclip (3.1.2) 
Using bundler (1.2.1) 
Using rails (3.2.8) 
Using sass (3.2.1) 
Using sass-rails (3.2.5) 
Using uglifier (1.2.7) 
Using will_paginate (3.0.3) 
Your bundle is complete! It was installed into /usr/local/lib 

而且我Gemfile.lock的,如果是相關的(PG被列爲唯一的依賴):

GEM 
    remote: https://rubygems.org/ 
    specs: 
    actionmailer (3.2.8) 
     actionpack (= 3.2.8) 
     mail (~> 2.4.4) 
    actionpack (3.2.8) 
     activemodel (= 3.2.8) 
     activesupport (= 3.2.8) 
     builder (~> 3.0.0) 
     erubis (~> 2.7.0) 
     journey (~> 1.0.4) 
     rack (~> 1.4.0) 
     rack-cache (~> 1.2) 
     rack-test (~> 0.6.1) 
     sprockets (~> 2.1.3) 
    activemodel (3.2.8) 
     activesupport (= 3.2.8) 
     builder (~> 3.0.0) 
    activerecord (3.2.8) 
     activemodel (= 3.2.8) 
     activesupport (= 3.2.8) 
     arel (~> 3.0.2) 
     tzinfo (~> 0.3.29) 
    activeresource (3.2.8) 
     activemodel (= 3.2.8) 
     activesupport (= 3.2.8) 
    activesupport (3.2.8) 
     i18n (~> 0.6) 
     multi_json (~> 1.0) 
    arel (3.0.2) 
    bcrypt-ruby (3.0.1-x86-mingw32) 
    builder (3.0.0) 
    capistrano (2.12.0) 
     highline 
     net-scp (>= 1.0.0) 
     net-sftp (>= 2.0.0) 
     net-ssh (>= 2.0.14) 
     net-ssh-gateway (>= 1.1.0) 
    cocaine (0.2.1) 
    coffee-rails (3.2.2) 
     coffee-script (>= 2.2.0) 
     railties (~> 3.2.0) 
    coffee-script (2.2.0) 
     coffee-script-source 
     execjs 
    coffee-script-source (1.3.3) 
    devise (2.1.2) 
     bcrypt-ruby (~> 3.0) 
     orm_adapter (~> 0.1) 
     railties (~> 3.1) 
     warden (~> 1.2.1) 
    erubis (2.7.0) 
    execjs (1.4.0) 
     multi_json (~> 1.0) 
    haml (3.1.7) 
    haml-rails (0.3.4) 
     actionpack (~> 3.0) 
     activesupport (~> 3.0) 
     haml (~> 3.0) 
     railties (~> 3.0) 
    highline (1.6.13) 
    hike (1.2.1) 
    i18n (0.6.1) 
    journey (1.0.4) 
    jquery-rails (2.1.1) 
     railties (>= 3.1.0, < 5.0) 
     thor (~> 0.14) 
    json (1.7.5) 
    mail (2.4.4) 
     i18n (>= 0.4.0) 
     mime-types (~> 1.16) 
     treetop (~> 1.4.8) 
    mime-types (1.19) 
    multi_json (1.3.6) 
    net-scp (1.0.4) 
     net-ssh (>= 1.99.1) 
    net-sftp (2.0.5) 
     net-ssh (>= 2.0.9) 
    net-ssh (2.5.2) 
    net-ssh-gateway (1.1.0) 
     net-ssh (>= 1.99.1) 
    orm_adapter (0.4.0) 
    paperclip (3.1.2) 
     activemodel (>= 3.0.0) 
     activerecord (>= 3.0.0) 
     activesupport (>= 3.0.0) 
     cocaine (>= 0.0.2) 
     mime-types 
    pg (0.14.0-x86-mingw32) 
    polyglot (0.3.3) 
    rack (1.4.1) 
    rack-cache (1.2) 
     rack (>= 0.4) 
    rack-ssl (1.3.2) 
     rack 
    rack-test (0.6.1) 
     rack (>= 1.0) 
    rails (3.2.8) 
     actionmailer (= 3.2.8) 
     actionpack (= 3.2.8) 
     activerecord (= 3.2.8) 
     activeresource (= 3.2.8) 
     activesupport (= 3.2.8) 
     bundler (~> 1.0) 
     railties (= 3.2.8) 
    railties (3.2.8) 
     actionpack (= 3.2.8) 
     activesupport (= 3.2.8) 
     rack-ssl (~> 1.3.2) 
     rake (>= 0.8.7) 
     rdoc (~> 3.4) 
     thor (>= 0.14.6, < 2.0) 
    rake (0.9.2.2) 
    rdoc (3.12) 
     json (~> 1.4) 
    sass (3.2.1) 
    sass-rails (3.2.5) 
     railties (~> 3.2.0) 
     sass (>= 3.1.10) 
     tilt (~> 1.3) 
    sprockets (2.1.3) 
     hike (~> 1.2) 
     rack (~> 1.0) 
     tilt (~> 1.1, != 1.3.0) 
    thor (0.16.0) 
    tilt (1.3.3) 
    treetop (1.4.10) 
     polyglot 
     polyglot (>= 0.3.1) 
    tzinfo (0.3.33) 
    uglifier (1.2.7) 
     execjs (>= 0.3.0) 
     multi_json (~> 1.3) 
    warden (1.2.1) 
     rack (>= 1.0) 
    will_paginate (3.0.3) 

PLATFORMS 
    x86-mingw32 

DEPENDENCIES 
    capistrano 
    coffee-rails (~> 3.2.1) 
    devise 
    haml-rails 
    jquery-rails 
    paperclip 
    pg 
    rails (= 3.2.8) 
    sass-rails (~> 3.2.3) 
    uglifier (>= 1.0.3) 
    will_paginate 

.bundle/config中的內容:

BUNDLE_FROZEN: '1' 
BUNDLE_PATH: /usr/local/lib/ 
BUNDLE_DISABLE_SHARED_GEMS: '1' 
BUNDLE_WITHOUT: development:test 

我使用 - 軌道3.2.8 - 紅寶石1.9.3 - RVM 1.16.5

任何人都可以提供一個解釋,爲什麼軟件包安裝不安裝我的Gemfile中列出的所有寶石?

+0

你需要單獨安裝postgresql ...你的操作系統是什麼?看看這裏:http://www.youtube.com/watch?v=pf5jPUJAeU4 – gabrielhilal

+0

你的'.bundle/config'文件的內容是什麼? –

+0

謝謝,但我已經有postgresql安裝'psql'給''/ usr/bin/psql'和'psql --version'給出'psql(PostgreSQL)9.1.6'。有沒有什麼特別的我必須做的,讓它工作的軌道(在Debian安裝)? –

回答

3

通過一些偵探工作,我發現了以下幾個因素促成了我的問題存在EED塊gem pg:(0.14.0-x86-mingw32)。

2)然後添加到我的Gemfile.lock,因此我的回購卡皮斯特拉諾然後用於安裝我的應用程序在Debian框中; pg僅被列爲依賴項。

3)capistrano運行帶有「--deployment」標誌的bundler,這要求你的Gemfile.lock是最新的和準確的。

我如何解決這個問題的deploy.rb去除「--deployment」標誌從Capistrano的有以下變量定義:

set :bundle_flags, "--quiet" 

require 'bundler/capistrano' 

並再次運行cap deploy:update

仍在研究如何獲得Gemfile。鎖反映應該在生產環境中安裝pg,而pg應該安裝在開發機器上,以便我可以將--deployment選項包括回部署任務中。

1

你必須使用打捆執行耙:

bundle exec rake db:schema:load RAILS_ENV=production 
+0

謝謝,但是這會產生相同的錯誤信息。你能解釋一下使用和不使用捆綁命令運行rake任務的區別嗎?我從來沒有清楚這一點。它是否只是運行包中定義的gemset的rake任務? –

+0

它確保加載的gem是在gemfile中聲明的。你可以發佈'bundle show pg'的輸出嗎? – rewritten

+0

'在當前包中找不到'寶石'pg'.' –

1

對於database.yml中

應該

development: 
    adapter: postgresql 
    encoding: utf8 
    database: xxx 
    host: localhost 
    username: username 
    password: pw 

PostgreSQL的適配器是PostgreSQL的

而且對於寶石文件,請確保pg有 ,並且您沒有n

1)我是在Windows機器上開發安裝了特定的Windows版本:如果它在開發和生產

+0

database.yml已經看起來像這樣,Gemfile已經包含'pg'。 –