在本地文件夹中安装gem

mch*_*.ja 30 ruby linux gem

我在我正在使用的共享机器上拥有有限的权限,所以我不能像以前那样安装宝石.例如:

$ gem install request-log-analyzer
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /usr/lib/ruby/gems/1.8 directory. 
Run Code Online (Sandbox Code Playgroud)

是否可以在本地安装宝石?(如果重要的话,我正在尝试安装这个宝石.)

我在Stack Overflow上看到了很多关于使用Bundler或gemfiles的帖子,但我没有为Ruby on Rails项目安装这个gem - 我只是想单独使用它.

我正在运行Linux,但不确定它的味道.

小智 59

你可以试试:

gem install --user-install gem_name
Run Code Online (Sandbox Code Playgroud)

  • 这是正确的答案,至少在红宝石1.9.3中.接受的答案令人困惑,因为它提到使用--local标志和本地目录从本地文件安装gem. (8认同)
  • 我还必须添加 `-n~/bin` 选项,因为它仍在尝试将可执行文件链接到 `/usr/local/bin`。完整的:`gem install --user-install -n~/bin gem_name`。 (4认同)

jke*_*len 28

--local标志添加到您的安装:

gem install --local request-log-analyzer
Run Code Online (Sandbox Code Playgroud)

如果这会导致任何问题,请尝试手动下载gem并gem使用以下命令直接指向它:

gem install --local path/to/gem/filename.gem
Run Code Online (Sandbox Code Playgroud)

如果你想根据rubygems将它安装到你的用户家中:

当您使用--user-install选项时,RubyGems会将gem安装到主目录中的目录,例如〜/ .gem/ruby​​/1.9.1.您安装的gem提供的命令最终将在〜/ .gem/ruby​​/1.9.1/bin中.对于安装在那里的程序,您需要将〜/ .gem/ruby​​/1.9.1/bin添加到PATH环境变量中.

这个命令就是这样

gem install --user-install request-log-analyzer
Run Code Online (Sandbox Code Playgroud)

  • @information_interchange,这不是我回答的后半部分所说的吗?如果您对措词有更好的想法,很高兴改进答案,以使答案更加清楚。 (2认同)