Проблема с доступом к установленному пакету ruby ​​gem из сценария оболочки под Ubuntu 16.04

Я использовал 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]

Затем я установил рубиновый драгоценный камень pdfbeads (служебную программу для создания PDF-файлов)

sudo gem install pdfbeads

. Эта команда устанавливает служебную программу в моем домашнем каталоге как ~ / .gem / gems / pdfbeads-1.1.1 / bin / pdfbeads .Однако, когда я пытаюсь использовать эту программу в сценарии оболочки, который конвертирует файлы DJVU в формат PDF, я получаю следующее сообщение об ошибке

djvu2pdf.sh: line 43: pdfbeads: command not found

Хотя ruby ​​ связан в / snap / bin / ] по умолчанию находится в моем $ PATH , а ~ / .gem / - нет. Вот среда gem после установки 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.

У меня есть вопрос ко всем экспертам ruby ​​ - есть ли какой-нибудь стандартный, более элегантный способ решения этой проблемы, который также охватил бы любые будущие установки драгоценных камней?

0
задан 28 January 2020 в 03:32

1 ответ

Бинарные файлы Gem также создаются в ~ / .gem / bin , поэтому вы можете добавить этот единственный каталог в свой путь, чтобы иметь доступ ко всем установленным гемам.

1
ответ дан 1 February 2020 в 02:28

Другие вопросы по тегам:

Похожие вопросы: