Ruby 如何修复意外的';sudo bundle安装目录名称';?

Ruby 如何修复意外的';sudo bundle安装目录名称';?,ruby,gem,bundler,Ruby,Gem,Bundler,我无意中运行了sudo bundle安装smtp_-mail,现在我所有的gem都在Rails应用程序中名为smtp_-mail的目录中 我不确定宝石的默认位置?而且,我的Rails应用程序在启动时会发出抱怨。有什么方法可以让我回头吗?在谷歌搜索了一下之后,我找到了答案 只需运行: sudo bundle安装--system,您的gems将回到相应的系统目录。请注意这一点 从bundle手册页: 默认情况下,bundler将gem安装到与gem安装相同的位置 您不应该使用sudo bundle安

我无意中运行了
sudo bundle安装smtp_-mail
,现在我所有的gem都在Rails应用程序中名为
smtp_-mail
的目录中


我不确定宝石的默认位置?而且,我的Rails应用程序在启动时会发出抱怨。有什么方法可以让我回头吗?

在谷歌搜索了一下之后,我找到了答案 只需运行:


sudo bundle安装--system
,您的gems将回到相应的系统目录。

请注意这一点

从bundle手册页:

默认情况下,bundler将gem安装到与gem安装相同的位置

您不应该使用sudo bundle安装。这是因为bundle安装中的其他几个步骤必须作为当前用户执行:

  • 更新您的Gemfile.lock
  • 如有必要,更新供应商/缓存
  • 使用用户的SSH密钥签出私有git存储库
在这三种方法中,理论上前两种方法可以通过将生成的文件发送给$SUDO_USER来执行。但是,第三种方法只能通过作为当前用户实际调用git命令来执行。因此,git gems被下载并安装到~/.bundle中,而不是$GEM_HOME或$bundle_PATH

因此,您应该以当前用户的身份运行bundle安装,如果需要将gems放入最终位置,bundler将询问您的密码


路径在位于中的文件中指定

.bundle/config  
如果删除.bundle目录,然后删除smtp_邮件目录,您将回到原点。如果你真的想在本地安装gems,我建议你运行

bundle install --path vendor/bundle

祝你好运

当我遇到类似的问题时,这对我很有帮助

我在.bundle中rm-rf所有文件,然后删除,然后按照本文档中的命令操作


是的,我知道。我本来应该执行“SudoGem安装smtp_mail”,但我没有执行gem I sonehow键入的捆绑包,而是在我这方面出错了。:)同样的问题: