我是sinatra的新蜜蜂,我不是像rvm和rbenv这样的ruby管理工具的专家,我有以下问题:当我在我的应用程序中运行捆绑安装时,安装了宝石,我有以下响应"捆绑的宝石安装在./vendor/bundle."但是当我尝试运行我的sinatra应用程序时,显示我没有安装sinatra,当我尝试这个命令行" gem list"时,我也没发现它。
我正在使用rbenv,我不知道如何解决这个问题。当我通过宝石安装宝石像#34;宝石安装sinatra"它运作正常,但它真的很痛苦,所以我的问题是如何解决这个问题?
PS:我试图用rvm来管理我的ruby管理器但是我遇到了问题所以我搬到了rbenv,也许这就是安装宝石的路径这是我的宝石环境的印刷品:
RubyGems Environment:
- RUBYGEMS VERSION: 2.5.1
- RUBY VERSION: 2.3.1 (2016-04-26 patchlevel 112) [x86_64-darwin15]
- INSTALLATION DIRECTORY: /Users/laadhari/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0
- USER INSTALLATION DIRECTORY: /Users/laadhari/.gem/ruby/2.3.0
- RUBY EXECUTABLE: /Users/laadhari/.rbenv/versions/2.3.1/bin/ruby
- EXECUTABLE DIRECTORY: /Users/laadhari/.rbenv/versions/2.3.1/bin
- SPEC CACHE DIRECTORY: /Users/laadhari/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /Users/laadhari/.rbenv/versions/2.3.1/etc
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-15
- GEM PATHS:
- /Users/laadhari/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0
- /Users/laadhari/.gem/ruby/2.3.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /Users/laadhari/.rbenv/versions/2.3.1/bin
- /usr/local/Cellar/rbenv/1.0.0/libexec
- /Users/laadhari/.rbenv/shims
- /usr/local/bin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
我的Gemfile的打印
source 'https://rubygems.org'
gem 'sinatra', '~> 1.4.7'
gem "sinatra-activerecord"
gem 'mysql2'
gem 'rest-client'
gem 'thin'
gem 'rake'
我跑的时候:
gem list
*** LOCAL GEMS ***
...
成功运行bundle install之后,我在本地gems中找不到来自Gemfile的宝石......
答案 0 :(得分:2)
Bundler
的目标之一是不污染全球宝石列表。这是通过不将捆绑的宝石安装到默认位置来实现的。
因此,为了确保您的应用找到捆绑的宝石,您有以下几种选择:
bundle exec
启动应用程序时(即使用rackup
或ruby ./app.rb
),在命令前加上bundle exec
bundle exec rackup
#=> Thin web server (v1.7.0 codename Dunder Mifflin)
#=> Maximum connections set to 1024
#=> Listening on localhost:9292, CTRL+C to stop
#=> ...
更多信息:https://bundler.io/v1.12/man/bundle-exec.1.html
Bundler.setup
在加载依赖项之前(使用require
),加载Bunder:
require 'rubygems'
require 'bundler/setup'
# require your gems as usual
require 'sinatra'
更多信息:https://bundler.io/v1.12/bundler_setup.html
我强烈建议您阅读https://bundler.io/v1.12/#getting-started上的优秀文档。
还有一件事,要找出实际安装了捆绑宝石的位置,请运行以下命令:
bundle config path
#=> Settings for `path` in order of priority. The top value will be used
#=> Set for your local app (/path/to/project/.bundle/config): ".bundle"