我不小心运行了sudo bundle install smtp_mail
,现在我的所有gems都在一个叫做smtp_mail
的目录里面,位于我的Rails应用程序内。
我不确定gems的默认位置是什么?而且,当我启动Rails应用程序时,它也在抱怨。有没有办法可以恢复到之前的状态?
在谷歌上搜索一番后,我找到了答案。只需运行以下命令:
sudo bundle install --system
,您就可以将宝石恢复到其适当的系统目录中。
路径在一个文件中指定,该文件位于
.bundle/config
bundle install --path vendor/bundle
Good luck!
注意以下内容...
来自捆绑程序页面:
默认情况下,bundler将gem安装到与gem install相同的位置。
您不应该使用sudo bundle install。这是因为bundle install中的几个其他步骤必须作为当前用户执行:
- 更新您的Gemfile.lock
- 如有必要,更新您的vendor/cache
- 使用您的用户SSH密钥检出私有git存储库
其中前两个理论上可以通过chowning将结果文件更改为$SUDO_USER而执行。然而,第三个只能通过实际调用当前用户的git命令来执行。因此,git gems被下载并安装到~/.bundle而不是$GEM_HOME或$BUNDLE_PATH。
由此,您应该以当前用户身份运行bundle install,如果需要将gems放入其最终位置,则bundler会要求您输入密码。
这对我在遇到类似问题时很有帮助。
我在 .bundle 中使用 rm -rf 命令删除了所有文件,然后删除了 .bundle 文件夹,接着按照此文档中的命令操作。