0 ruby sinatra learn-ruby-the-hard-way
我正在关注教程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
Run Code Online (Sandbox Code Playgroud)
我安装了 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>
Run Code Online (Sandbox Code Playgroud)
当我运行时rake test它通过了测试。有什么问题?
如果你按照他们的指示你就跑了sudo gem install sinatra。不要sudo在您的环境中使用,因为您正在使用 rbenv。
当您使用 时sudo,您的系统 Ruby 安装了 Sinatra,而不是 rbenv 设置的当前选择的 Ruby。
阅读 rbenv 的“安装 Ruby gems ”文档。
要解决该问题,只需运行gem install sinatra,这将在您的 rbenv 配置的 Ruby 中安装 Sinatra 及其依赖项。
这不会将 Sinatra 从 System Ruby 中删除,但它的存在应该是安全且良性的。
“使用 rbenv 不能与 sudo 一起使用吗? ”也会有帮助。