如何强制执行捆绑安装位置

时间:2017-10-11 13:14:38

标签: ruby bundler

我来自Python和JavaScript背景。

在开发JavaScript项目时,依赖项安装在项目根目录的node_modules目录中。

在开发Python项目时,通常使用virtualenvwrapper。在这种情况下,依赖项安装在虚拟环境中,默认情况下位于~/.virtualenvs/<project_name>

现在我需要为项目使用ruby工具。对于如上所述的类似设置而言似乎最有希望的工具是bundler。

但是,bundler的默认安装位置是系统范围的。我认为这是有害的。

对于我的一个系统,它会提示输入密码,此时我仍然可以中止。

但是,对于我的其他系统,我可以写入全局ruby安装。我在这里使用自制软件安装ruby。 Bundle只会在全球范围内安装依赖项。

我知道我可以通过添加--path来指定安装位置,但这很容易忘记。

强制执行安装路径的一种方法是提交.bundle/config。它只需要包含这个:

---
BUNDLE_PATH: "."

然而,一些谷歌搜索显示,它不建议提交此文件。

使用bundler阻止意外全局安装的推荐方法是什么?

1 个答案:

答案 0 :(得分:0)

谁说这是偶然的?这真的取决于你在这里谈论的背景。我设置了Ruby,以便bundle install无需sudo即可运行,所有这些都是通过rbenv自动完成的。如果以用户级安装完成,rvm也是如此。

在部署应用程序时,如果要确保它已正确部署,那么Capistrano等工具就会发挥作用:创建将应用正确程序的部署脚本每一次。

从开发角度检查.bundle/config是非常粗鲁的,就像检查您可能拥有的任何其他用户特定的偏好一样。它不会与其他团队成员发生冲突。