2016-07-17 1 views
1

J'ai eu quelques problèmes avec les gemmes d'une source locale auparavant, alors configurez un projet de test simple. Je n'ai pas eu simple-rss installé avant. Ceci est mon Gemfile:Ruby ne reconnaissant pas les gemmes provenant de source locale, inclus dans Gemfile

source 'https://rubygems.org' 

gem 'simple-rss', :path => '~/code/simple-rss' 

Je puis exécutez bundle install, il me dit:

Using simple-rss 1.2.3 from source at `~/code/simple-rss` 
Using bundler 1.12.4 
Bundle complete! 1 Gemfile dependency, 2 gems now installed. 

Alors je fais test.rb dans le même dossier que le Gemfile. Le fichier test.rb n'a que le require en ce moment:

require 'simple-rss' 

Je cours ruby test.rb, et obtenir cette erreur:

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- simple-rss (LoadError) 
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
    from test.rb:1:in `<main>' 

C'est donc la première preuve d'un problème. Je fais alors:

sudo gem install simple-rss

qui installe avec succès. Je fais ruby test.rb encore, et n'obtiens aucun problème. Il est donc possible d'exécuter la gemme à partir de la source originale une fois qu'il a été installé avec l'installation gem, mais pas à partir de la source locale après avoir exécuté avec Bundler.

+0

Quelle est votre question? – sawa

+0

Pourquoi ne me permet-il pas d'utiliser la gemme du chemin local? – Andrew

Répondre

3

Si vous souhaitez utiliser les gemmes dictées dans votre Gemfile, je suggère de préfixer vos commandes avec bundle exec, par exemple. bundle exec ruby test.rb. Sinon, votre Ruby ne les connaîtra pas.