web-dev-qa-db-fra.com

Comment créer une version de gemme spécifique par défaut?

J'ai deux versions de Ruby gem.

json (default: 2.0.2, 1.8.6)

Ici, la dernière version est définie par défaut; mais j'ai besoin de json 1.8.6 à définir par défaut. Est-il possible de faire les anciennes versions de la gemme par défaut? car je ne parviens pas à désinstaller la version json par défaut. Besoin d'un changement entre les versions de gemmes disponibles.

16
Prashanth Sams

Vérifiez ce que vous avez avec:

gem list json

Réglez celui que vous voulez:

gem install --default -v1.8.6 json

C'est très utile pour des choses comme "bundler" !!! Pour d'autres choses, l'utilisation de bundler et d'un Gemfile est probablement un meilleur choix.

6
mcr

Ajouter

gem 'json', '1.8.6'

à votre Gemfile ou exécutez

gem install 'json' -v 1.8.6 # may require Sudo if you use system Ruby

du terminal.

2
marmeladze

Un Gemfile est un must mais ne suffit pas. Vous devez également changer la ligne

require 'json'

à

require 'bundler/setup'
Bundler.require :default

Cela nécessitera toutes les gemmes spécifiées dans votre Gemfile cela sans group.

2
Aetherus

Ajoutez ceci votre Gemfile

gem 'json', '1.8.6'

Maintenant, exécutez cela dans votre ligne de commande

bundle update

Cela devrait définir la version dont vous avez besoin

0
Gurmukh Singh

Puisque vous utilisez RVM pour gérer vos versions Ruby, comme vous l'avez dit dans les commentaires, il existe une solution simple: créer un bundle privé pour cette application et installer uniquement la version de la gemme dont vous avez besoin dans ce bundle.

Voici comment vous pouvez le faire:

1) Entrez le répertoire de votre application;

2) Tapez la commande suivante

rvm use Ruby-2.4.0@your_app_name --Ruby-version --create

(Je suppose que vous utilisez Ruby 2.4.0. Si ce n'est pas votre version, remplacez-la en conséquence dans la commande ci-dessus, s'il vous plaît.)

3) Installer le joyau du bundler

gem install bundler

4) Assurez-vous que votre Gemfile déclare la version de la gemme dont vous avez besoin. Dans ce cas, il doit avoir la ligne:

gem "json", "1.8.6"

5) Maintenant, lancez

bundle install

Et vous avez terminé!

AVERTISSEMENT: Cette procédure s'assurera que le json gem sera la version 1.8.6. Mais vous pourriez avoir des problèmes avec votre bundle install si un autre joyau installé nécessite une version plus récente de json gem. Dans ce cas, vous devrez résoudre ce conflit d'une autre manière.

Pour en savoir plus sur les différents bundles pour différentes applications, lisez this .

J'espère que ça aide.

0
Ed de Almeida