默认情况下,未将捆绑包文件夹下安装的宝石加载到终端中有什么办法可以自动加载吗?

问题描述

我正在使用捆绑程序从github来源安装gem,并尝试在Terminal中执行其可执行文件,对于该文件说Gem未找到异常。有什么方法可以自动加载捆绑程序文件夹下安装的gem,而不是将它们加到PATH变量中?

解决方法

如果您通过捆绑程序管理所有rubygems依赖项,请使用bundler exec运行rubygems二进制文件。

例如,如果您使用捆绑器安装cowsay,则Gemfile看起来像

# frozen_string_literal: true

source "https://rubygems.org"

gem "cowsay"

然后使用捆绑程序安装依赖项,例如

$ bundle install
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies...
Using bundler 2.1.4
Fetching cowsay 0.3.0
Installing cowsay 0.3.0
Bundle complete! 1 Gemfile dependency,2 gems now installed.
Bundled gems are installed into `./gems`

现在您可以使用捆绑器执行cowsay,例如

$ bundle exec cowsay stackoverflow.com
 ___________________
| stackoverflow.com |
 -------------------
      \   ^__^
       \  (oo)\_______
          (__)\       )\/\
              ||----w |
              ||     ||