Ich habe mehrere Edelsteine, einschließlich Ruby-Debug in einer Bundler-Gruppe namens: development. Beim Ausführen des Bundle-Befehls werden diese Edelsteine ignoriert und es werden nur die Edelsteine installiert, die sich in keiner Gruppe befinden. Wie kann ich sicherstellen, dass Bundler die Edelsteine in der: Entwicklungsgruppe nicht ignoriert?
Edit: So sieht mein Gemfile aus.
source 'http://rubygems.org'
gem 'Rails', '3.0.1'
# Auth gems
gem "devise", "1.1.3"
gem "omniauth"
# Bundle Mongoid gems
gem "mongoid", "2.0.0.beta.19"
gem "bson_ext"
# Asset gems
gem 'jquery-Rails'
gem "jammit"
# Controller gems
gem 'inherited_resources', '1.1.2'
# View gems
gem 'haml'
gem 'formtastic', '~> 1.1.0'
# Nokogiri
gem "mechanize"
gem "json"
group :development do
gem "Ruby-debug"
gem 'compass'
gem 'compass-colors'
gem 'pickler'
gem 'haml-Rails'
gem 'Rails3-generators'
gem "hpricot"
gem "Ruby_parser"
gem 'fog'
end
Innerhalb einer Termensitzung speichert es die Option without
. Wenn du zuerst gelaufen bist
bundle install --without development
er merkt sich, dass Sie dies getan haben, und wiederholt dies automatisch für die nächste
bundle install #remembers and includes --without development
wenn Sie etwas anderes ausführen, wie bundle install --without nothing
, sollte der Cache gelöscht werden. Habe ich recht?
update 20150214: Dieses Problem wurde in Bundler 2.0 behoben. Dieses Problem wurde in einem Kommentar von @Stan Bondi ( https://github.com/bundler/bundler/issues/2862 ) angegeben. Danke, Stan.
Wenn Sie Rails verwenden, wird eine Datei config
in ein verstecktes Verzeichnis namens .bundle
in Ihrem Rails-Stammverzeichnis geschrieben:
.bundle/config
Diese Datei enthielt in meinem Fall genau die without
-Einstellungen.
Also habe ich gerade das .bundle
Verzeichnis gelöscht:
rm .bundle -r
Nachdem:
bundle install
hat wieder wie erwartet funktioniert.
Using: bundler (1.5.2)
Ich hatte das gleiche Problem und --with
flag arbeitete für mich. Sie müssen den Gruppennamen übergeben, den Sie einschließen möchten. So wie das:
bundle install --with development
gem 'aws-s3'
gem 'Paperclip'
group :test do
gem 'rspec'
gem 'waitr'
gem 'faker'
end
gem 'rest-client', :group => :development
gem 'cucuber-Rails', :groups => [:development,:test] (cucuber-Rails gems comes under both group)
bundle install --without development #(ignore development group gems)
bundle install #(still bundle remembers --without development so result is still ignore development groups it will not install all gems)
bundle install --without nothing #(just clearing cache, now all the gems to be loaded into the Ruby loadpath)
Tatsächlich lädt Rails die :development
Gruppe in der Entwicklungsumgebung automatisch. Überprüfen Sie, ob Rails.env
in Ihrer App wirklich "development"
zurückgibt.
Weitere Informationen zu Gruppen in Bundler: http://gembundler.com/groups.html
Ich hatte ein ähnliches Problem - dünn in der Inszenierung ignoriert - und die Lösung bestand darin, das Problem zu lösen, wenn ich in den "globalen" Raum gehe:
gem 'thin'
group :production do
gem 'puma'
end