首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Gem列表“成功安装bundler”后未显示bundler

Gem列表“成功安装bundler”后未显示bundler
EN

Stack Overflow用户
提问于 2021-04-18 06:50:30
回答 2查看 45关注 0票数 0

我正在尝试安装bundler的第二个版本。安装将输出成功消息,但新的bundler安装似乎根本不存在。如何更正此安装?

代码语言:javascript
运行
复制
# Use sudo because of *system* rbenv installation
sudo gem install bundler:2.1.4
# => Successfully installed bundler-2.1.4

# Check for existence of new installation, but only the old version is available
gem list bundler
# => bundler (default: 1.17.2)
bundle _2.1.4_ -v
# => can't find gem bundler (= 2.1.4) with executable bundle (Gem::GemNotFoundException)
ls /usr/local/rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/
# => [shows bundler-1.17.2 but not any other bundler directories]

我使用的是rbenv (不是rvm)的系统安装。我不是在包中工作(也不是在gemset中,因为我没有使用rvm)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-18 09:19:37

根用户的PATH可能与当前用户的PATH不同。因此,根用户加载的gem命令与您以普通用户身份加载的gem命令不同。这使得sudo gem install将gem保存到一个不同的位置(在根用户的PATH中找到的Ruby安装位置)。

要解决此问题,最直接的解决方案是通过提供完整路径来强制root使用相同的gem命令:

代码语言:javascript
运行
复制
sudo `which gem` install ...

注意反引号的用法。以这种方式使用反引号,该命令实质上将扩展为类似以下内容:

代码语言:javascript
运行
复制
sudo /some/path/to/the/user/ruby/installation/bin/gem install ...

要确定根目录的gem命令是否与默认的gem命令不同,您可以这样做:

代码语言:javascript
运行
复制
# As normal user check output of this command
which gem

# ..and compare it to the output of this command
sudo which gem
票数 0
EN

Stack Overflow用户

发布于 2021-04-25 14:46:38

问题出在sudo上。它没有运行/etc/profile.d/rbenv.sh,这是包含以下内容的文件:

代码语言:javascript
运行
复制
export RBENV_ROOT=/usr/local/rbenv
export PATH="$RBENV_ROOT/bin:$PATH"
eval "$(rbenv init -)"

要解决此问题,请运行sudo -i,然后在新的shell中运行gem install ...命令。

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

https://stackoverflow.com/questions/67143680

复制
相关文章

相似问题

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