Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use gems installed in vendor/bundle directory

Tags:

ruby

rubygems

I have installed gems inside my project directory in the vendor/bundle using

bundle install --path vendor/bundle

All the gems are getting properly installed.

.bundle/config file

BUNDLE_PATH: vendor/bundle
BUNDLE_DISABLE_SHARED_GEMS: '1'

bundle env

Environment

Bundler   1.10.6
Rubygems  2.4.8
Ruby      2.0.0p643 (2015-02-25 revision 49749) [x86_64-linux]
GEM_HOME  /home/xyz/.rvm/gems/ruby-2.0.0-p643
GEM_PATH  /home/xyz/.rvm/gems/ruby-2.0.0-p643:/home/xyz/.rvm/gems/ruby-2.0.0-p643@global
RVM       1.26.11 (1.26.11)
Git       1.9.1
rubygems-bundler (1.4.4)

Bundler settings

path
  Set for your local app (/home/xyz/code/project/.bundle/config): "vendor/bundle"
  Set for the current user (/home/xyz/.bundle/config): "vendor/bundle"
disable_shared_gems
  Set for your local app (/home/xyz/code/project/.bundle/config): "1"
  Set for the current user (/home/xyz/.bundle/config): "1"

Gemfile

source 'https://rubygems.org'

gem 'creek'
gem 'faraday'
gem 'faraday_middleware'
gem 'json'
gem 'logger'
gem 'mechanize'
gem 'nokogiri'
gem 'trollop'
gem 'yajl-ruby'
gem 'simplecov', :require => false, :group => :test
gem 'test-unit'

Gemfile.lock

GEM
  remote: https://rubygems.org/
  specs:
    creek (1.0.8)
      nokogiri (~> 1.6.0)
      rubyzip (>= 1.0.0)
    docile (1.1.5)
    domain_name (0.5.24)
      unf (>= 0.0.5, < 1.0.0)
    faraday (0.9.1)
      multipart-post (>= 1.2, < 3)
    faraday_middleware (0.10.0)
      faraday (>= 0.7.4, < 0.10)
    http-cookie (1.0.2)
      domain_name (~> 0.5)
    json (1.8.3)
    logger (1.2.8)
    mechanize (2.7.3)
      domain_name (~> 0.5, >= 0.5.1)
      http-cookie (~> 1.0)
      mime-types (~> 2.0)
      net-http-digest_auth (~> 1.1, >= 1.1.1)
      net-http-persistent (~> 2.5, >= 2.5.2)
      nokogiri (~> 1.4)
      ntlm-http (~> 0.1, >= 0.1.1)
      webrobots (>= 0.0.9, < 0.2)
    mime-types (2.6.1)
    mini_portile (0.6.2)
    multipart-post (2.0.0)
    net-http-digest_auth (1.4)
    net-http-persistent (2.9.4)
    nokogiri (1.6.6.2)
      mini_portile (~> 0.6.0)
    ntlm-http (0.1.1)
    power_assert (0.2.4)
    rubyzip (1.1.7)
    simplecov (0.10.0)
      docile (~> 1.1.0)
      json (~> 1.8)
      simplecov-html (~> 0.10.0)
    simplecov-html (0.10.0)
    test-unit (3.1.3)
      power_assert
    trollop (2.1.2)
    unf (0.1.4)
      unf_ext
    unf_ext (0.0.7.1)
    webrobots (0.1.1)
    yajl-ruby (1.2.1)

PLATFORMS
  ruby

DEPENDENCIES
  creek
  faraday
  faraday_middleware
  json
  logger
  mechanize
  nokogiri
  simplecov
  test-unit
  trollop
  yajl-ruby

BUNDLED WITH
   1.10.6

bundle show --paths

/home/xyz/.rvm/gems/ruby-2.0.0-p643/gems/bundler-1.10.6/lib/gems/bundler-1.10.6
/home/xyz/code/project/vendor/bundle/ruby/2.0.0/gems/creek-1.0.8
/home/xyz/code/project/vendor/bundle/ruby/2.0.0/gems/docile-1.1.5
/home/xyz/code/project/vendor/bundle/ruby/2.0.0/gems/domain_name-0.5.24
/home/xyz/code/project/vendor/bundle/ruby/2.0.0/gems/faraday-0.9.1
/home/xyz/code/project/vendor/bundle/ruby/2.0.0/gems/faraday_middleware-0.10.0
/home/xyz/code/project/vendor/bundle/ruby/2.0.0/gems/http-cookie-1.0.2
/home/xyz/code/project/vendor/bundle/ruby/2.0.0/gems/json-1.8.3
/home/xyz/code/project/vendor/bundle/ruby/2.0.0/gems/logger-1.2.8
/home/xyz/code/project/vendor/bundle/ruby/2.0.0/gems/mechanize-2.7.3
/home/xyz/code/project/vendor/bundle/ruby/2.0.0/gems/mime-types-2.6.1
/home/xyz/code/project/vendor/bundle/ruby/2.0.0/gems/mini_portile-0.6.2
/home/xyz/code/project/vendor/bundle/ruby/2.0.0/gems/multipart-post-2.0.0
/home/xyz/code/project/vendor/bundle/ruby/2.0.0/gems/net-http-digest_auth-1.4
/home/xyz/code/project/vendor/bundle/ruby/2.0.0/gems/net-http-persistent-2.9.4
/home/xyz/code/project/vendor/bundle/ruby/2.0.0/gems/nokogiri-1.6.6.2
/home/xyz/code/project/vendor/bundle/ruby/2.0.0/gems/ntlm-http-0.1.1
/home/xyz/code/project/vendor/bundle/ruby/2.0.0/gems/power_assert-0.2.4
/home/xyz/code/project/vendor/bundle/ruby/2.0.0/gems/rubyzip-1.1.7
/home/xyz/code/project/vendor/bundle/ruby/2.0.0/gems/simplecov-0.10.0
/home/xyz/code/project/vendor/bundle/ruby/2.0.0/gems/simplecov-html-0.10.0
/home/xyz/code/project/vendor/bundle/ruby/2.0.0/gems/test-unit-3.1.3
/home/xyz/code/project/vendor/bundle/ruby/2.0.0/gems/trollop-2.1.2
/home/xyz/code/project/vendor/bundle/ruby/2.0.0/gems/unf-0.1.4
/home/xyz/code/project/vendor/bundle/ruby/2.0.0/gems/unf_ext-0.0.7.1
/home/xyz/code/project/vendor/bundle/ruby/2.0.0/gems/webrobots-0.1.1
/home/xyz/code/project/vendor/bundle/ruby/2.0.0/gems/yajl-ruby-1.2.1

The problem is in my files when i try to use any gem say simplecov its throwing error.

My Ruby file TestExample.rb

require 'rubygems'
require 'simplecov'
....
rest of the code
.....
enter code here

When i try to run this file it gives me this error

/home/xyz/.rvm/rubies/ruby-2.0.0-p643/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- simplecov (LoadError)

Am i missing something here?? Maybe how i am requiring the file is wrong?

like image 448
nemoblob Avatar asked Jul 30 '15 08:07

nemoblob


People also ask

Where are bundle gems installed?

The location to install the gems in the bundle to. This defaults to Rubygems' gem home, which is also the default location where gem install installs gems. This means that, by default, gems installed without a --path setting will show up in gem list . This setting is a remembered option.

What is the difference between gem install and bundle install?

Almost seems like running 'gem install' adds it to the global available gems (and hence terminal can run the package's commands), whereas adding it to the gemfile and running bundle install only adds it to the application. Similar to npm install --global. that's basically it.


1 Answers

Could you try adding this line in your rb?

require 'bundler/setup'

and then run it doing

bundle exec ruby TestExample.rb

I think that should work for you.

like image 97
Horacio Avatar answered Oct 12 '22 13:10

Horacio