如何设置捆绑安装的目标路径?

gro*_*ter 4 gem bundler

在我的家庭包装盒上,bundle install命令确实要求输入密码并在其中安装宝石

/var/lib/gems/1.8/gems / ...

但在办公室中,它们安装在我的〜/ .bundler / cache / git中,或至少缓存在这里,而未安装在主文件系统中

我不知道如何设置它们的安装路径。请帮助!

小智 9

正如Mohamed Hakki指出的那样,另一个答案现已被弃用

\n
\n

您现在可以使用以下命令设置 Bundler 的目标路径:

\n
bundle config set --local path vendor/bundle\n
Run Code Online (Sandbox Code Playgroud)\n

这里我们指定路径vendor/bundle(根据我的经验,这似乎是最常见的 \xe2\x80\x9cstandard\xe2\x80\x9d 路径),但您可以指定您想要的任何路径(包括~/.bundler)。

\n

该命令实际上在您的工作目录中创建一个文件,.bundle/config其内容为:

\n
---\nBUNDLE_PATH: "vendor/bundle"\n
Run Code Online (Sandbox Code Playgroud)\n

当然,我们使用vendor/bundle作为示例,但BUNDLE_PATH将是您在命令调用中指定为路径的任何内容。

\n

一旦此文件位于您的工作目录中,来自同一工作目录的所有 Bundler 调用都将使用您指定的路径。

\n


Hen*_*dge 5

您可以通过使用指定gem的安装位置

bundle install --path [directory]
Run Code Online (Sandbox Code Playgroud)

通常这不是必需的。您通常可以进行“捆绑安装”,您就可以开始了。

当您要包括要部署的gem时,您将需要使用

bundle package
Run Code Online (Sandbox Code Playgroud)

默认情况下,它将把您的宝石放在./vendor/cache中。如果您随后部署项目并执行

bundle install --deployment
Run Code Online (Sandbox Code Playgroud)

Bundler将从该目录中获取文件并将其安装到./vendor/bundle中。通过执行以下操作可获得更多信息

bundle help install
Run Code Online (Sandbox Code Playgroud)

希望这是有用的。

  • `--path` 标志已被弃用,因为它依赖于在捆绑器调用中被记住,而捆绑器在未来版本中将不再这样做。相反,您可以使用:`bundle config set --local path 'your_path'` (5认同)
  • 我认为应该是--path,而不是-path。 (2认同)