0

私は以下を提供するチュートリアルhttp://learnrubythehardway.org/book/ex50.htmlに従っています:

最も基本的な Sinatra アプリケーションを作成します。次のコードを に入れますbin/app.rb

require 'sinatra'

set :port, 8080
set :static, true
set :public_folder, "static"
set :views, "views"

get '/' do
    return 'Hello world'
end

問題なく gem と Sinatra をインストールしました。app.rbまた、チュートリアルからローカルbin/app.rbファイルにコピーしました。

私はそれを実行しました:ruby bin/app.rb

ターミナル出力:

/home/t/.rbenv/versions/2.2.0/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in 'require': cannot load such file -- sinatra (LoadError)
    from /home/t/.rbenv/versions/2.2.0/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in 'require'
    from bin/app.rb:1:in `<main>

実行するrake testと、テストに合格します。どうしたの?

4

1 に答える 1

4

あなたが彼らの指示に従っているなら、あなたは走っsudo gem install sinatraた. sudorbenvを使用しているため、あなたの環境では使用しないでください。

を使用したときsudo、rbenv によって設定された現在選択されている Ruby ではなく、システム Ruby に Sinatra をインストールさせました。

rbenv の「Ruby gems のインストール」ドキュメントを読んでください。

この問題を解決するには、単純に を実行gem install sinatraします。これにより、Sinatra とその依存関係が rbenv で構成された Ruby にインストールされます。

これでシステム Ruby から Sinatra が削除されるわけではありませんが、その存在は安全で無害でなければなりません。

rbenv を使用すると sudo が機能しませんか?」 も役に立ちます。

于 2016-06-27T20:26:24.600 に答える