我snap
以前安装的是最新版的ruby
Ubuntu 16.04下
$ sudo snap install ruby --classic
$ which ruby
/snap/bin/ruby
$ ruby -v
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux]
然后我安装了一个 ruby gem pdfbeads
(一个 PDF 创建实用程序)
sudo gem install pdfbeads
此命令将该实用程序安装在我的主目录中,为
~/.gem/gems/pdfbeads-1.1.1/bin/pdfbeads
. 但是,当我尝试在将 DJVU 文件转换为 PDF 格式的 shell 脚本中使用此程序时,我收到以下错误消息
djvu2pdf.sh: line 43: pdfbeads: command not found
虽然ruby
链接在/snap/bin/
我$PATH
的默认情况下,~/.gem/
但不是。这是gem environment
安装后的pdfbeads
:
$ gem environment
RubyGems Environment:
- RUBYGEMS VERSION: 3.1.2
- RUBY VERSION: 2.7.0 (2019-12-25 patchlevel 0) [x86_64-linux]
- INSTALLATION DIRECTORY: ~/.gem
- USER INSTALLATION DIRECTORY: ~/.gem/ruby/2.7.0
- RUBY EXECUTABLE: /snap/bin/ruby
- GIT EXECUTABLE: /usr/bin/git
- EXECUTABLE DIRECTORY: ~/.gem/bin
- SPEC CACHE DIRECTORY: ~/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: //etc
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- ~/.gem
- /snap/ruby/172/lib/ruby/gems/2.7.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /usr/local/sbin
- /usr/local/bin
- /usr/sbin
- /usr/bin
- /sbin
- /bin
- /usr/games
- /usr/local/games
- /snap/bin
我原以为 gem 包安装应该已经解决了路径问题,但显然情况并非如此 -pdfbeads
不在执行目录路径中。
显然,我可以将这个特定目录添加~/.gem/gems/pdfbeads-1.1.1/bin/
到我的目录中$PATH
来解决这个特定问题。但是,由于这是我第一次使用ruby
,所以我正在寻找一种更通用的解决方案,每次安装另一个 ruby gem 时都不需要这样做。
我有一个问题要问所有ruby
专家 - 是否有一些标准的、更优雅的方法来解决这个问题,也可以涵盖任何未来的 gem 安装?