Gérer ses versions ruby et gems (Archlinux)

Par SimonDevelop, il y a 9 ans


Outils Linux

Bonjour,

Voila je rencontre un problème avec mon environnement ruby sous antergos (archlinux).
J'utilise rbenv pour changer de version ruby dans mon espace utilisateur, jusqu'ici ça fonctionne.

Mais arrivé sur l'utilisation des gems, là ça devient hardcore.

En cherchant sur la documentation d'archlinux j'ai vu que les gems installé par ruby et celle installé par pacman ne s'install pas au même endroit, soite. Mais du coup quand j'install mes gems par ruby, je ne peux pas les utiliser, exemple pour rails la commande "rails" me retourne "command no found".

Mais si j'installe la gem via pacman là j'y est accès, mais la gem utilise la version ruby du system (la dernière version) et non la version ruby que j'utilise dans mon espace utilisateur et quand j'utilise la gem, elle me retourne cette erreur:

/usr/lib/ruby/2.3.0/rubygems/dependency.rb:319:in `to_specs': Could not find 'thread_safe' (~> 0.1) among 43 total gem(s) (Gem::LoadError) Checked in 'GEM_PATH=/home/fukotaku/.gem/ruby/2.3.0:/usr/lib/ruby/gems/2.3.0', execute `gem env` for more information from /usr/lib/ruby/2.3.0/rubygems/specification.rb:1438:in `block in activate_dependencies' from /usr/lib/ruby/2.3.0/rubygems/specification.rb:1427:in `each' from /usr/lib/ruby/2.3.0/rubygems/specification.rb:1427:in `activate_dependencies' from /usr/lib/ruby/2.3.0/rubygems/specification.rb:1409:in `activate' from /usr/lib/ruby/2.3.0/rubygems/specification.rb:1441:in `block in activate_dependencies' from /usr/lib/ruby/2.3.0/rubygems/specification.rb:1427:in `each' from /usr/lib/ruby/2.3.0/rubygems/specification.rb:1427:in `activate_dependencies' from /usr/lib/ruby/2.3.0/rubygems/specification.rb:1409:in `activate' from /usr/lib/ruby/2.3.0/rubygems/specification.rb:1441:in `block in activate_dependencies' from /usr/lib/ruby/2.3.0/rubygems/specification.rb:1427:in `each' from /usr/lib/ruby/2.3.0/rubygems/specification.rb:1427:in `activate_dependencies' from /usr/lib/ruby/2.3.0/rubygems/specification.rb:1409:in `activate' from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_gem.rb:68:in `block in gem' from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_gem.rb:67:in `synchronize' from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_gem.rb:67:in `gem' from /usr/bin/rails:22:in `<main>'

Du coup je tape un coup de "gem env" et voilà se que ça me donne :

RubyGems Environment: - RUBYGEMS VERSION: 2.5.1 - RUBY VERSION: 2.3.1 (2016-04-26 patchlevel 112) [x86_64-linux] - INSTALLATION DIRECTORY: /usr/lib/ruby/gems/2.3.0 - USER INSTALLATION DIRECTORY: /home/fukotaku/.gem/ruby/2.3.0 - RUBY EXECUTABLE: /usr/bin/ruby - EXECUTABLE DIRECTORY: /usr/bin - SPEC CACHE DIRECTORY: /home/fukotaku/.gem/specs - SYSTEM CONFIGURATION DIRECTORY: /etc - RUBYGEMS PLATFORMS: - ruby - x86_64-linux - GEM PATHS: - /usr/lib/ruby/gems/2.3.0 - /home/fukotaku/.gem/ruby/2.3.0 - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :backtrace => false - :bulk_threshold => 1000 - "gem" => "--user-install" - REMOTE SOURCES: - https://rubygems.org/ - SHELL PATH: - /usr/local/sbin - /usr/local/bin - /usr/bin - /usr/lib/jvm/default/bin - /usr/bin/site_perl - /usr/bin/vendor_perl - /usr/bin/core_perl

Je suis pas sur de tous comprendre, même sur la doc archlinux (qui est bien documenté), je pense qu'il il as des zones ombres pour les débutants comme moi.

Donc voici se que je souhaite:

Quelqu'un aurai une idée ou une bonne piste ? J'ai déjà tester les solutions proposé par le wiki archlinux et rien ne me permet d'utiliser une version ruby précise avec les gems sous une version précise aussi.

5 réponses

Takeback, il y a 8 ans

Bonjour,
As-tu essayé de lister les fichiers de /home/fukotaku/.gem/ruby/2.3.0/bin et de /usr/lib/ruby/gems/2.3.0/bin ?
Peut-être que tu n'as simplement pas ajouté ces chemins à ton PATH.

SimonDevelop, il y a 8 ans

Ils y sont justement, après je ne suis plus sur arch linux maintenant, mais si jamais c'est déjà arrivé à quelqu'un je suis toujours interressé.

Takeback, il y a 8 ans

Du coup, tes exécutables fonctionnent ?

SimonDevelop, il y a 8 ans

Ruby en lui même oui, il s'agis uniquement des gems le souci.

SimonDevelop, il y a 8 ans

Toujours en attente de réponse :/