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 ?