当我使用
运行rails控制台时rails console
一切都很好。
当我使用
运行rails控制台时bundle exec rails console
我收到以下警告
Bundler is using a binstub that was created for a different gem.
This is deprecated, in future versions you may need to `bundle binstub my_gem` to work around a system/bundle conflict.
my_gem
碰巧是我创建的一个宝石,它完全不相关,在当前项目目录中没有使用。
我已经尝试过这个问题的每个解决方案而没有运气: Bundler is using a binstub that was created for a different gem
我将非常感谢有关删除此警告或帮助了解binstub如何工作的任何指导,以便我可以弄清楚发生了什么。
答案 0 :(得分:5)
现在,对于拥有"专业化的项目来说,这是很常见的。工具版本。例如。在某些项目中," rails"命令可能会使用" spring" (开始更快)。
因此,在您的项目中生成文件的情况并不少见[&b;目录,然后在运行命令时使用这些版本,例如而不是
bundle exec rails console
或
bundle exec spring rails console
您可以简单地期望以下内容正常工作
bin/rails console
并不关心项目是否需要春天或捆绑或宙斯或其他什么。
所以,如果你没有“bin / rails'在您的项目中,您应该生成一个适合项目的项目,例如:使用
bin/rake rails:update:bin
如果您还没有bin / rake,则可能需要使用
bundle exec rake rails:update:bin
(所以你的bin / rake命令也会因使用spring而加速)
有些人甚至将./bin
放在他们的路径中,因此每当他们运行rake
(或其他)时,如果它们存在,则./bin/rake
实际运行。{/ p>
针对项目特定任务,使用bin/*
文件,根据需要创建它们(例如使用Rails中的特殊rake任务或使用bundle binstub <gemname>
) - 通常那些具有Bundler特定行的Bundler很高兴。
对于非项目宝石(例如您的宝石),找出它的位置(例如which mygem
)并查看它的内容 - 它可能正在使用,例如&#34;捆绑/设置&#34;这让Bundler感到困惑(因为bundler需要一个本地的Gemfile文件)。也许你的宝石正在使用捆绑器(如果它不是&#34;全球&#34;那种工具而不是&#34;项目&#34;工具)。
此外,如果您正在使用它们,请检查RVM和.rbenv等工具是否正确地将他们的内容添加到您的bin文件中(他们通常需要设置特定路径)
如果您仍然有疑问,最好发布bin文件的内容导致问题 - 它本来就是一个普通的Ruby文件,所以如果有的话错误,通常是因为文件内容(而不是其他任何内容)。
更多信息:https://github.com/sstephenson/rbenv/wiki/Understanding-binstubs
答案 1 :(得分:-1)
这发生在我的一个项目中。因为我用另一个ruby版本运行bundle install
。
确保您的rvm
是正确的红宝石版本。