`vagarnt gem` cannot be called within a bundler env
This commit is contained in:
parent
d19f7a44e5
commit
4444e7150c
|
@ -5,6 +5,16 @@ module Vagrant
|
||||||
module Command
|
module Command
|
||||||
class Gem < Base
|
class Gem < Base
|
||||||
def execute
|
def execute
|
||||||
|
# Bundler sets up its own custom gem load paths such that our
|
||||||
|
# own gems are never loaded. Therefore, give an error if a user
|
||||||
|
# tries to install gems while within a Bundler-managed environment.
|
||||||
|
if defined?(Bundler)
|
||||||
|
require 'bundler/shared_helpers'
|
||||||
|
if Bundler::SharedHelpers.in_bundle?
|
||||||
|
raise Errors::GemCommandInBundler
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# We just proxy the arguments onto a real RubyGems command
|
# We just proxy the arguments onto a real RubyGems command
|
||||||
# but change `GEM_HOME` so that the gems are installed into
|
# but change `GEM_HOME` so that the gems are installed into
|
||||||
# our own private gem folder.
|
# our own private gem folder.
|
||||||
|
|
|
@ -173,6 +173,11 @@ module Vagrant
|
||||||
error_key(:environment_locked)
|
error_key(:environment_locked)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
class GemCommandInBundler < VagrantError
|
||||||
|
status_code(71)
|
||||||
|
error_key(:gem_command_in_bundler)
|
||||||
|
end
|
||||||
|
|
||||||
class HomeDirectoryMigrationFailed < VagrantError
|
class HomeDirectoryMigrationFailed < VagrantError
|
||||||
status_code(53)
|
status_code(53)
|
||||||
error_key(:home_dir_migration_failed)
|
error_key(:home_dir_migration_failed)
|
||||||
|
|
|
@ -47,6 +47,12 @@ en:
|
||||||
may run at any given time to avoid problems with VirtualBox inconsistencies
|
may run at any given time to avoid problems with VirtualBox inconsistencies
|
||||||
occurring. Please wait for the other instance of Vagrant to end and then
|
occurring. Please wait for the other instance of Vagrant to end and then
|
||||||
try again.
|
try again.
|
||||||
|
gem_command_in_bundler: |-
|
||||||
|
You cannot run the `vagrant gem` command while in a bundler environment.
|
||||||
|
Bundler messes around quite a bit with the RubyGem load paths and gems
|
||||||
|
installed via `vagrant gem` are excluded by Bundler.
|
||||||
|
|
||||||
|
Instead, please include your Vagrant plugins in your Gemfile itself.
|
||||||
guest:
|
guest:
|
||||||
invalid_class: |-
|
invalid_class: |-
|
||||||
The specified guest class does not inherit from `Vagrant::Guest::Base`.
|
The specified guest class does not inherit from `Vagrant::Guest::Base`.
|
||||||
|
|
Loading…
Reference in New Issue