1

私の Heroku/Sinatra アプリでは、gemfile を Ruby 1.8.7 でセットアップし、その後 RVM を使用してデフォルトを 2.0.0 に設定しました。Sinatra-flash や Pony などの新しい gem をインストールしようとすると、main.rb ファイルで必要なときに gem が認識されないか、見つからない。

gemfile に gem "pony" を追加すると、次のようなポップアップ メッセージが表示されます。

Gem 'pony' is not available in SDK 'ruby-1.8.7-p385' 

インストールしたのに。ターミナルに入力gem listすると、プログラムにインストールされていると認識されていない、インストールしたすべての gem が返されます。

require 'sinatra/flash'orrequire 'pony'を main.rbに追加すると、次のメッセージが表示されます。

no such file to load

これについて何か助けていただければ幸いです。これは私を夢中にさせています。

編集:

コマンドの使用sudo gem install 'gemname'

入っrvm infoたら戻る

ruby :
    interpreter:  "ruby"
    version:      "2.0.0p195"
    date:         "2013-05-14"
    platform:     "x86_64-darwin12.3.0"
    patchlevel:   "2013-05-14 revision 40734"
    full_version: "ruby 2.0.0p195 (2013-05-14 revision 40734) [x86_64-darwin12.3.0]"

  homes:
    gem:          "/Users/adam419/.rvm/gems/ruby-2.0.0-p195"
    ruby:         "/Users/adam419/.rvm/rubies/ruby-2.0.0-p195"

  binaries:
    ruby:         "/Users/adam419/.rvm/rubies/ruby-2.0.0-p195/bin/ruby"
    irb:          "/Users/adam419/.rvm/rubies/ruby-2.0.0-p195/bin/irb"
    gem:          "/Users/adam419/.rvm/rubies/ruby-2.0.0-p195/bin/gem"
    rake:         "/Users/adam419/.rvm/gems/ruby-2.0.0-p195@global/bin/rake"

  environment:
    PATH:         "/Users/adam419/.rvm/gems/ruby-2.0.0-p195/bin:/Users/adam419/.rvm/gems/ruby-2.0.0-p195@global/bin:/Users/adam419/.rvm/rubies/ruby-2.0.0-p195/bin:/Users/adam419/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/local/git/bin/[["
    GEM_HOME:     "/Users/adam419/.rvm/gems/ruby-2.0.0-p195"
    GEM_PATH:     "/Users/adam419/.rvm/gems/ruby-2.0.0-p195:/Users/adam419/.rvm/gems/ruby-2.0.0-p195@global"
    MY_RUBY_HOME: "/Users/adam419/.rvm/rubies/ruby-2.0.0-p195"
    IRBRC:        "/Users/adam419/.rvm/rubies/ruby-2.0.0-p195/.irbrc"
    RUBYOPT:      ""
    gemset:       ""

編集:「rvm use ruby​​-2.0.0」と入力してから「bundle install」と入力した後

わかります。

Adams-MacBook-Pro:songs adam419$ rvm use ruby-2.0.0
Using /Users/adam419/.rvm/gems/ruby-2.0.0-p195
Adams-MacBook-Pro:songs adam419$ bundle install
Fetching gem metadata from https://rubygems.org/.........
Fetching gem metadata from https://rubygems.org/..
Resolving dependencies...
Could not find gem 'sinatra/flash (>= 0) ruby' in the gems available on this machine.

gem "sinatra/flash" から gem "sinatra-flash" に変更し、bundle install を実行した後

Fetching gem metadata from https://rubygems.org/.........
Fetching gem metadata from https://rubygems.org/..
Resolving dependencies...
Enter your password to install the bundled RubyGems to your system: 
Using addressable (2.2.8) 
Installing daemons (1.1.9) 
Using data_objects (0.10.12) 
Using dm-core (1.2.0) 
Using dm-do-adapter (1.2.0) 
Installing dm-migrations (1.2.0) 
Using do_sqlite3 (0.10.12) 
Using dm-sqlite-adapter (1.2.0) 
Installing eventmachine (1.0.3) 
Using rack (1.5.2) 
Using rack-protection (1.5.0) 
Using sass (3.2.9) 
Using tilt (1.4.1) 
Using sinatra (1.4.2) 
Using sinatra-flash (0.3.0) 
Installing temple (0.6.5) 
Installing slim (1.3.9) 
Installing thin (1.5.1) 
Using bundler (1.3.5) 
Your bundle is complete!
Gems in the group production were not installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.

現在の Gemfile

source 'https://rubygems.org'
gem "sinatra"
gem "slim"
gem "sass"
gem "dm-core"
gem "sinatra-flash"
gem "dm-migrations"
gem "thin"
gem "pg", :group => :production
gem "dm-postgres-adapter", :group => :production
gem "dm-sqlite-adapter", :group => :development

Gemlock ファイルの依存関係

DEPENDENCIES
  dm-core
  dm-migrations
  dm-postgres-adapter
  dm-sqlite-adapter
  pg
  sass
  sinatra
  sinatra-flash
  slim
  thin
4

2 に答える 2

1

を使用sudo gem install ponyすると、RVM のバージョンとは異なるシステム Ruby のインストールがトリガーされます。使用しないでくださいsudo。RVM がロードされていることを確認してから、適切なバージョンの Ruby を使用してください。

rvm use ruby-2.0.0

次に、バンドラーを実行します。

bundle install

これにより、完全な環境が提供されます。

于 2013-05-24T06:38:02.630 に答える
0

私は同じ問題を抱えていて、rubymine .idea ファイルを削除しましたが、今では正常に動作しています。

于 2014-03-07T10:33:37.347 に答える