2015-11-20 11 views
2

当我尝试将我的应用程序部署到Bluemix时,出现以下错误。我的manifest.yml文件如下。IBM_DB Gem问题

applications: 
- path: . 
    memory: 512M 
    instances: 1 
    domain: mybluemix.net 
    name: KnowYourBrand 
    host: kyb 
    command: bundle exec rake db:setup && bundle exec rails s -p $PORT 
    disk_quota: 1024M 
    services: 
    - Personality Insights-n2 
    - Tone Analyzer-uu 
    - Insights for Twitter-bt 
    - kybSQLDB 
    - AlchemyAPI-tw 
    buildpack: https://github.com/ibmdb/db2rubybuildpack 

2015-11-17T13:04:51.55-0600 [App/0] ERR LoadError: libdb2.so.1: cannot open shared object file: No such file or directory - /home/vcap/app/vendor/bundle/ru by/2.2.0/extensions/x86_64-linux/ 2.2.0-static/ibm_db-2.6.1/ibm_db.so

我的Gemfile如下:

source 'http://rubygems.org' 

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' 
gem 'rails', '4.1.8' 
gem 'backbone-on-rails' 

gem 'whenever', :require => false 

group :production do 
    gem 'ibm_db' 
    gem 'rails_12factor' 
end 

# Use SCSS for stylesheets 
gem 'sass-rails', '~> 4.0.3' 
# Use Uglifier as compressor for JavaScript assets 
gem 'uglifier', '>= 1.3.0' 
# Use CoffeeScript for .js.coffee assets and views 
gem 'coffee-script-source', '1.8.0' 
gem 'coffee-rails', '~> 4.0.0' 
# See https://github.com/sstephenson/execjs#readme for more supported runtimes 
# gem 'therubyracer', platforms: :ruby 

# Use jquery as the JavaScript library 
gem 'jquery-rails' 
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks 
gem 'turbolinks' 
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder 
gem 'jbuilder', '~> 2.0' 
# bundle exec rake doc:rails generates the API under doc/api. 
gem 'sdoc', '~> 0.4.0',   group: :doc 

# Use ActiveModel has_secure_password 
gem 'bcrypt-ruby', '>= 3.1.2', :platform => :ruby 

gem 'httparty' 

gem 'figaro' 
gem "cf-autoconfig", "~> 0.2.1" 

# Use unicorn as the app server 
# gem 'unicorn' 

# Use Capistrano for deployment 
# gem 'capistrano-rails', group: :development 

group :development do 
    gem 'byebug' 
    gem 'annotate' 
    gem 'better_errors' 
    gem 'binding_of_caller' 
    gem 'pry-rails' 
    # Use sqlite3 as the database for Active Record 
    gem 'sqlite3' 
end 

# Use debugger 
# gem 'debugger', group: [:development, :test] 

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem 
gem 'tzinfo-data', platforms: [:mingw, :mswin] 

还有什么问题呢?我试着将ibm_db版本设置为较旧的版本,但这也未能解决问题。

Environment variable IBM_DB_HOME is not set. Set it to your DB2/IBM_Data_Server_ Driver installation directory and retry gem install.

无需在我的本地计算机上安装驱动程序即可处理此问题的最佳方法是什么?我只是试图将其部署到Bluemix。

+0

?你的问题说mySQLDB,但你有其他地方列出的IBM DB2 ... –

+0

也可以请你的manifest.yml文件和gemfiles添加到你的问题? –

+0

嗨亚历克斯 - 我已附上上述。我试图摆脱ibm_db宝石和红宝石buildpack,并会看到如何摆脱。 –

回答

0

您可以跟踪IBM_DB混帐问题库here

0

的IBM_DB宝石自动下载所需的文件在安装宝石这个问题。但是,在Bluemix中安装了ibm_db gem后,它无法链接下载的库。

要解决此问题,请按照以下步骤操作。

步骤-1。在通过迁移推送应用程序的同时,传递一个命令来设置LD_LIBRARY_PATH环境变量,如下所示。

cf push BlogApp2 -c "export LD_LIBRARY_PATH=/home/vcap/app/vendor/bundle/ruby/2.2.0/gems/ibm_db-3.0.0/lib/clidriver/lib:$LD_LIBRARY_PATH; bundle exec rake db:migrate"

注意:运行上面commad虽然,请注明的Ruby版本和您在Gemfile中指定的ibm_db版本。您还可以引用您在Bluemix上的服务器日志中看到的LoadError:libdb2.so错误消息中的路径。 推送应用程序后,您将看到迁移已经运行,您也将看到预期的数据库连接错误。

步骤-2。在您的应用程序中添加以下环境变量登录到bluemix - >选择你的Ruby应用程序 - >点击Environment Variables manu - > Select User defined。 - >添加下面的变量 - >保存。

名称 - LD_LIBRARY_PATH

价值 - /home/vcap/app/vendor/bundle/ruby/2.2.0/gems/ibm_db-3.0.0/lib/clidriver/lib:$LD_LIBRARY_PATH [请参阅步骤1的值]

在Bluemix中将LD_LIBRARY_PATH添加到应用程序后,可以按如下方式将应用程序从cf命令中推送出去。 cf push BlogApp2 -c“null”

现在您的应用程序将连接到SQLDB。

谢谢,您使用的是SQLDB服务或MySQL服务 阿文德