创业板指定安装目录(Specify gem installation directory)

2019-08-31 13:31发布

我这里有一些麻烦。 我有一个Rails 2.3项目中工作(通过ssh在生产服务器上的工作 - 不要问为什么)。 这里是Gemfile中 。 当delayed_jobs正在试图启动,输出说我需要安装捆绑宝石。 问题是,gemdir是/var/lib/gems/1.8/,我没有该目录的写特权时。 然而,有在〜/项目/共享/宝石/红宝石/ 1.8 /宝石在那里我可以写一个目录。

我如何定义创业板的安装路径?

Answer 1:

您可以添加以下到您的config.ru文件:

ENV['GEM_HOME']="#{ENV['HOME']}/projects/shared/gems/ruby/1.8/gems"
ENV['GEM_PATH']="#{ENV['GEM_HOME']}:/var/lib/ruby/gems/1.8"
require 'rubygems'
Gem.clear_paths

这会告诉您的机架应用到哪里寻找宝石。

同时配置您的服务器的.bashrc:

export GEM_HOME="$HOME/projects/shared/gems/ruby/1.8/gems"
export GEM_PATH="$GEM_HOME:/var/lib/ruby/gems/1.8"


Answer 2:

要安装FOO宝石到指定文件夹,只要使用--install-dir选择,即:

$ gem install --install-dir /path/to/gems/folder foo

它有助于在:

  • 一个不能使用bundle install -例如,如果一个人想安装宝石本身,或者想要宝石(未在列的Gemfile)安装到文件夹
  • sudo gem install命令失败,由于缺乏写入权限默认安装路径

希望帮助。



Answer 3:

环境变量GEM_HOME定义创业板的安装位置。 您需要将其设置为所需的位置。 该命令是操作系统特定的。

在Windows中,它被set

set GEM_HOME=[path]/projects/shared/gems/ruby/1.8/gems

Linux的将是export

export GEM_HOME=~/projects/shared/gems/ruby/1.8/gems


Answer 4:

捆绑接受--path选项。

bundle install --path vendor/bundle


文章来源: Specify gem installation directory