如何避免输入新Rails应用程序的密码?

时间:2015-11-14 16:21:56

标签: ruby-on-rails macos

运行rails new myapp后,它会下载宝石,然后在run bundle install,我总是会提示输入我的系统密码。

有没有办法设置密码,所以我不必继续输入密码?

2 个答案:

答案 0 :(得分:1)

背景信息

为什么你必须首先输入密码?因为默认情况下,bundler会在系统范围的位置安装gem,例如/usr/local/lib/ruby/gems/2.2.0/gems/...。这些宝石可供您电脑上的每个用户使用。

由于它是共享位置,因此通常只能由root编写,因此您必须输入密码才能获得root权限。

您的宝石存储在哪里?使用bundle show <gem>查找特定的gem,例如rake,在我的情况下说:

bundle show rake
/usr/local/lib/ruby/gems/2.2.0/gems/rake-10.4.2

解决方案

a)更改目录

的所有者

让这个目录可写。但这不是一个好习惯,因为系统文件夹不应该对普通用户可写。如果您是唯一的用户,它仍然可以 - 那么您只需将此目录的所有者更改为:

sudo chown -R `whoami` /usr/local/lib/ruby/gems/

现在您是所有者,可以在不需要任何密码的情况下更改文件。

b)在项目目录

中本地安装gems

或者您可以使用bundler的--path选项在项目目录中本地安装所有gem。通常,这些宝石通常安装在vendor/bundle中,因此您可以使用此命令(您可以使用您想要的任何路径):

bundle install --path vendor/bundle

(下次执行bundle update时,您可以省略--path选项,因为它保存在项目的.bundle文件夹中。)

您应该将vendor/bundle文件夹添加到.gitignore(或您正在使用的任何vcs),以便不将其签入。

由于您在自己的目录中编写,因此无需输入密码。这样做的缺点是,如果您有多个项目使用相同的宝石,宝石将在每个项目文件夹中重复。对于多用户系统,这是正确的方法。但如果您是唯一使用该机器的人,那么变体a)肯定有助于节省空间和安装时间。

我在我自己的开发机器上使用变体a),在部署机器上使用变体b)。

答案 1 :(得分:0)

这似乎是权限问题。试试chmod a+w /path/to/bundler