3 votes

Problème d'accès à un paquet ruby gem installé depuis un Shell Shell sous Ubuntu 16.04

J'ai utilisé snap pour installer la dernière version de ruby sous 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]

Puis j'ai installé une gemme ruby pdfbeads (un programme utilitaire de création de PDF)

sudo gem install pdfbeads

Cette commande installe l'utilitaire dans mon répertoire personnel en tant que ~/.gem/gems/pdfbeads-1.1.1/bin/pdfbeads . Cependant, lorsque j'essaie d'utiliser ce programme dans un Shell Shell qui convertit les fichiers DJVU en format PDF, j'obtiens le message d'erreur suivant

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

Alors que ruby lié à /snap/bin/ est dans mon $PATH par défaut, ~/.gem/ ne l'est pas. Voici le gem environment après l'installation de 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

J'aurais pensé que l'installation du paquet de gemmes aurait dû régler le problème du chemin, mais ce n'est apparemment pas le cas. pdfbeads n'est pas dans le chemin du répertoire d'exécution.

Clairement, je pourrais ajouter ce répertoire spécifique ~/.gem/gems/pdfbeads-1.1.1/bin/ à mon $PATH pour résoudre ce problème particulier. Cependant, comme il s'agit de ma première utilisation de ruby Je suis à la recherche d'une solution plus générale qui ne nécessiterait pas de faire la même chose à chaque fois que j'installe une autre gemme ruby.

J'ai une question pour tous les ruby experts - existe-t-il un moyen standard, plus élégant, de résoudre ce problème qui couvrirait également toute installation future de Gem ?

2voto

Les binaires Gem sont également créés dans ~/.gem/bin Vous pouvez donc ajouter ce répertoire unique à votre chemin pour avoir accès à toutes les gemmes installées.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X