我可以在rbenv环境之外执行gems吗?

时间:2018-08-16 10:25:19

标签: ruby rubygems rbenv

我能够按照以下步骤安装和执行gem:

rbenv install 2.4.1
rbenv local 2.4.1 # enter the environment
gem install fpm
fpm --version

我还希望能够从环境外部执行gem,例如:

rbenv local --unset # leave the environment
rbenv rehash # update shims
fpm --version

但是我得到了:

rbenv: fpm: command not found

The `fpm' command exists in these Ruby versions:
  2.4.1

我是否误解了rbenv垫片的工作原理?我可以在rbenv环境之外执行宝石吗?

1 个答案:

答案 0 :(得分:1)

从Github问题中的评论看来,您现在已经掌握了基本思想; rbenv垫片只是美化的shell脚本,它将命令与当前特定的活动Ruby版本相关联。

但是没有什么可以阻止您创建自己的硬编码垫片。例如,假设您希望此全局fpm命令在任何特定的rbenv环境之外都可用。

这是一种简单的方法:

> rbenv local 2.4.1
> ln -s `rbenv which fpm` ~/.rbenv/bin/fpm24
> rbenv local --unset
> fpm24 --version
1.10.2

这将在~/.rbenv/bin/fpm24中安装一个“垫片”,它是指向rbenv先前已安装的2.4.1 gem的硬编码指针。现在,只要您在PATH中有fpm24,此~/.rbenv/bin命令就可以在任何地方使用。