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。不要sudo在您的环境中使用,因为您使用的是 rbenv。

当你使用 时sudo,你有 System Ruby 安装 Sinatra,而不是你当前选择的由 rbenv 设置的 Ruby。

阅读 rbenv 的“安装 Ruby gems ”文档。

要解决此问题,只需运行gem install sinatra,它将在您的 rbenv 配置的 Ruby 中安装 Sinatra 及其依赖项。

这不会从 System Ruby 中删除 Sinatra,但它的存在应该是安全和良性的。

使用 rbenv 对 sudo 不起作用? ” 也会有所帮助。

于 2016-06-27T20:26:24.600 回答