Gérer ses versions ruby et gems (Archlinux)

107977
,

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:

  • Installer des gems sans utiliser pacman via la command "gem"
  • Que ces gems s'installe dans mon environnement (espace utilisateur)
  • Pouvoir utiliser ces gems avec ma version ruby utilisé par rbenv.

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éponse

107977
,

Toujours en attente de réponse :/

52116
,

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.

107977
,

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é.

52116
,

Du coup, tes exécutables fonctionnent ?

107977
,

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