我正在关注教程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
时,它通过了测试。有什么问题?
答案 0 :(得分:3)
如果您按照指示操作,则运行sudo gem install sinatra
。不要在您的环境中使用sudo
,因为您使用的是rbenv。
当你使用sudo
时,你有系统Ruby安装Sinatra,而不是你目前选择的rbenv设置的Ruby。
阅读rbenv的“Installing Ruby gems”文档。
要解决此问题,只需运行gem install sinatra
,它将在您的rbenv配置的Ruby中安装Sinatra及其依赖项。
这不会将Sinatra从系统Ruby中删除,但它的存在应该是安全和良性的。
“Using rbenv doesn't work with sudo?”也会有所帮助。