web-dev-qa-db-fra.com

Comment installer une version spécifique d'un joyau Ruby?

À l'aide de l'outil de ligne de commande gem, comment puis-je installer une version spécifique d'une gemme?

816
mjs

Utilisez le drapeau -v:

$ gem install fog -v 1.8
1071
mjs

Utilisez le paramètre --version (raccourci -v):

$ gem install Rails -v 0.14.1

Vous pouvez également utiliser des comparateurs de version tels que >= ou ~>

$ gem install Rails -v '~> 0.14.0'

Ou avec les nouvelles versions de gem même:

$ gem install Rails:0.14.4 rubyzip:'< 1'
…
Successfully installed Rails-0.14.4
Successfully installed rubyzip-0.9.9
182
schmijos

pour Ruby 1.9+, utilisez deux points ..

gem install sinatra:1.4.4 prawn:0.13.0
72
Kokizzu

Pour installer gem install gemname -v versionnumber

Pour désinstaller gem uninstall gemname -v versionnumber

71
Emjey

Comme d'autres l'ont noté, utilisez généralement l'indicateur -v pour la commande gem install.

Si vous développez un joyau localement, après l'avoir coupé de votre gemspec:

$ gem install gemname-version.gem

En supposant la version 0.8, cela ressemblerait à ceci:

$ gem install gemname-0.8.gem
22
thelostspore

Linux

Pour installer une version différente de Ruby, vérifiez la dernière version du paquet en utilisant apt comme ci-dessous:

$ apt-cache madison Ruby
      Ruby |    1:1.9.3 | http://ftp.uk.debian.org/debian/ wheezy/main AMD64 Packages
      Ruby |        4.5 | http://ftp.uk.debian.org/debian/ squeeze/main AMD64 Packages

Puis installez-le:

$ Sudo apt-get install Ruby=1:1.9.3

Pour vérifier quelle est la version actuelle, lancez:

$ gem --version # Check for the current user.
$ Sudo gem --version # Check globally.

Si la version est toujours ancienne, vous pouvez essayer de changer de version en utilisant Ruby gestionnaire de versions (rvm) en:

rvm 1.9.3

Remarque: vous pouvez le préfixer par Sudo si rvm a été installé globalement. Ou exécutez /usr/local/rvm/scripts/rvm si votre commande rvm ne figure pas dans votre global PATH. Si le processus d'installation de rvm a échoué, reportez-vous à la section Dépannage.


Dépannage:

  • Si vous avez toujours l'ancienne version, vous pouvez essayer d'installer rvm (Ruby Version Manager) via:

    Sudo apt-get install curl # Install curl first
    curl -sSL https://get.rvm.io | bash -s stable --Ruby # Install only for the user.
    #or:# curl -sSL https://get.rvm.io | Sudo bash -s stable --Ruby # Install globally. 
    

    puis, si installé localement (uniquement pour l'utilisateur actuel), chargez rvm via:

    source /usr/local/rvm/scripts/rvm; rvm 1.9.3
    

    si globalement (pour tous les utilisateurs), alors:

    Sudo bash -c "source /usr/local/rvm/scripts/rvm; rvm 1.9.3"
    
  • si vous rencontrez toujours des problèmes avec la nouvelle version Ruby, essayez de l'installer via rvm via:

    source /usr/local/rvm/scripts/rvm && rvm install Ruby-1.9.3 # Locally.
    Sudo bash -c "source /usr/local/rvm/scripts/rvm && rvm install Ruby-1.9.3" # Globally.
    
  • si vous souhaitez installer des gemmes dans le monde entier et que vous avez déjà installé RVM, vous pouvez essayer:

    rvmsudo gem install [gemname]
    

    au lieu de:

      gem install [gemname] # or:
      Sudo gem install [gemname]
    

Remarque: Il est préférable de NE PAS utiliser Sudo pour travailler avec des gemmes RVM. Lorsque vous exécutez Sudo, vous exécutez des commandes en tant que root, un autre utilisateur dans un autre shell et, par conséquent, toute la configuration effectuée par RVM à votre place est ignorée lorsque la commande est exécutée sous Sudo (par exemple, GEM_HOME, etc.). Donc, pour réitérer, dès que vous 'Sudo', vous utilisez le système racine, ce qui effacera votre environnement et empêchera la modification de tous les fichiers créés par celui-ci, ce qui entraînera des événements étranges.

8
kenorb