首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$GEM_HOME被“`gem安装”忽略

$GEM_HOME被“`gem安装”忽略
EN

Stack Overflow用户
提问于 2019-03-09 05:50:55
回答 2查看 1.7K关注 0票数 3

我已经设置了$GEM_HOME,但是gem install仍然在安装到默认的~/.gem目录中。

这个红宝石问题说要删除.gemrc中的--user-install选项,但是我没有.gemrc文件。

如何让gem install尊重$GEM_HOME的价值?

这里我首先删除~/.gem,然后显示它是自动创建的:

代码语言:javascript
复制
% rm -rf ~/.gem
% find ~ -name '*gemrc*'    
% # No output, so .gemrc doesn't exist
% echo $GEM_HOME
/home/ravi/.local/share/gem
% gem install neovim
Building native extensions. This could take a while...
Successfully installed msgpack-1.2.7
Successfully installed multi_json-1.13.1
Successfully installed neovim-0.8.0
Parsing documentation for msgpack-1.2.7
Installing ri documentation for msgpack-1.2.7
Parsing documentation for multi_json-1.13.1
Installing ri documentation for multi_json-1.13.1
Parsing documentation for neovim-0.8.0
Installing ri documentation for neovim-0.8.0
Done installing documentation for msgpack, multi_json, neovim after 0 seconds
3 gems installed
% ls -ld ~/.gem
drwxr-xr-x 1 ravi ravi 8 Mar  9 12:34 /home/ravi/.gem/

环境信息:

代码语言:javascript
复制
% gem --version
3.0.2
% gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 3.0.2
  - RUBY VERSION: 2.6.1 (2019-01-30 patchlevel 33) [x86_64-linux]
  - INSTALLATION DIRECTORY: /home/ravi/.local/share/gem
  - USER INSTALLATION DIRECTORY: /home/ravi/.gem/ruby/2.6.0
  - RUBY EXECUTABLE: /usr/bin/ruby
  - GIT EXECUTABLE: /usr/bin/git
  - EXECUTABLE DIRECTORY: /home/ravi/.local/share/gem/bin
  - SPEC CACHE DIRECTORY: /home/ravi/.cache/gem
  - SYSTEM CONFIGURATION DIRECTORY: /etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /home/ravi/.local/share/gem
     - /usr/lib/ruby/gems/2.6.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
     - "gem" => "--user-install"
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /home/ravi/.gem/ruby/2.6.0/bin
     - /home/ravi/bin
     - /home/ravi/.local/share/npm/bin
     - /home/ravi/.local/share/go/bin
     - /usr/local/bin
     - /usr/bin
     - /bin
     - /usr/local/sbin
     - /usr/lib/jvm/default/bin
     - /usr/bin/site_perl
     - /usr/bin/vendor_perl
     - /usr/bin/core_perl
     - /usr/lib/systemd
     - /home/ravi/.local/share/miniconda3/bin
     - /home/ravi/.cabal/bin
     - /usr/lib/jvm/default/bin
     - /usr/bin/site_perl
     - /usr/bin/vendor_perl
     - /usr/bin/core_perl
%
EN

回答 2

Stack Overflow用户

发布于 2021-11-24 19:23:52

我在安装rubygems (Ubuntu )时遇到了同样的问题,snap默认安装到~/.gem上。我能够使用--install-dir开关更改安装目录。

代码语言:javascript
复制
$ gem install --install-dir /path/to/custom/directory foo

但是,我后来在使用安装在非默认目录中的gems时遇到了问题。

apt 卸载并使用进行安装解决了所有问题。

代码语言:javascript
复制
$ sudo snap remove ruby
$ sudo apt-get install rubygems

现在,gems总是安装到$GEM_HOME中。为了仍然将~/.gem作为默认安装位置,将其添加到init脚本(例如~/.bashrc):

代码语言:javascript
复制
export GEM_HOME=$HOME/.gem
export PATH=$PATH:$GEM_HOME/bin

要覆盖安装位置,只需在调用GEM_HOME之前覆盖gem install

票数 3
EN

Stack Overflow用户

发布于 2019-03-09 10:55:17

正如Casper在评论中指出的那样,我的配置仍然是从某个地方获得--user-install

虽然我的~/.gemrc不存在,但我签入了/etc/gemrc并发现了以下内容:

为了覆盖这一点,我在我的~/.gemrc中添加了

安装:--无用户-安装

现在$GEM_HOME受到了尊重。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55074420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档