2016-12-29 1 views
0

J'utilise Ruby 2.3 (je crois) sur Mac Sierra. Comment faire pour que/usr/bin/ruby ​​pointe vers la bonne version de Ruby? J'ai réinstallé la version 2.3.0 (celui que je veux utiliser) à travers RVM et le définir comme la valeur par défaut, mais toujours pas d'amour ...Comment obtenir/usr/bin/ruby ​​pour pointer vers la bonne version de Ruby sur mon Mac?

localhost:~ davea$ rvm use 2.3.0 --default 
Using /Users/davea/.rvm/gems/ruby-2.3.0 
localhost:~ davea$ /usr/bin/ruby --version 
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16] 

La raison pour laquelle j'ai besoin de cette version est que son utilisé pour Rails 5 et I besoin de dire au passager le chemin de l'endroit où Ruby est installé.

+0

D'accord. Dites au passager '/ Users/davea/.rvm/gems/ruby-2.3.0'. –

Répondre

0

Dans cette ligne:

localhost:~ davea$ /usr/bin/ruby --version 

Vous dites votre shell pour aller dans le répertoire /usr/bin, et la sortie de la version de la commande rubis qui se trouve là. Mais rvm n'utilise pas ce répertoire pour les versions de ruby ​​qu'il gère.

Si vous voulez voir quelle version de rubis que RVM utilise actuellement, exécutez la commande suivante:

localhost:~ davea$ ruby --version 

Sauvegarde pendant une minute, lorsque vous entrez une commande sur la ligne de commande, la commande est recherchée dans les répertoires spécifiés dans la variable d'environnement $ PATH - dans l'ordre où ils sont listés - jusqu'à ce que la commande soit trouvée. Vous pouvez examiner ces répertoires en faisant ceci:

localhost:~ davea$ echo $PATH 

RVM fonctionne en ajoutant les répertoires et supprimer des répertoires à l'avant de la variable d'environnement $ PATH afin que la commande rubis est d'abord trouvé dans un répertoire de RVM.

Pour voir où le rubis que RVM utilise est situé, vous pouvez le faire:

localhost:~ davea$ which ruby 
/Users/7stud/.rvm/rubies/ruby-2.3.0/bin/ruby 

Et si vous utilisez RVM pour changer la version rubis:

~$ rvm list 

rvm rubies 

    ruby-1.9.3-p194 [ x86_64 ] 
    ruby-1.9.3-p551 [ x86_64 ] 
    ruby-2.2.1 [ x86_64 ] 
=* ruby-2.3.0 [ x86_64 ] 

# => - current 
# =* - current && default 
# * - default 

~$ rvm use 2.2.1 
Using /Users/7stud/.rvm/gems/ruby-2.2.1 

~$ ruby --version 
ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-darwin14] 

~$ which ruby 
/Users/7stud/.rvm/rubies/ruby-2.2.1/bin/ruby 

Si pour une raison quelconque /usr/bin/ruby est codé en dur dans Passenger, alors vous pouvez créer un lien de /usr/bin/ruby vers n'importe quelle version de ruby ​​installée sur votre ordinateur. D'abord, vous pouvez enregistrer la commande ruby ​​actuelle:

/usr/bin$ sudo mv ./ruby ./ruby-orig 
/usr/bin$ sudo ln -s /Users/7stud/.rvm/rubies/ruby-2.3.0/bin/ruby ./ruby 
/usr/bin$ ls -al ./ruby 
lrwxr-xr-x 1 root wheel 44 Dec 29 17:04 ./ruby -> /Users/7stud/.rvm/rubies/ruby-2.3.0/bin/ruby 

Voir aussi: https://www.phusionpassenger.com/library/indepth/ruby/multiple_rubies.html

Et: https://www.phusionpassenger.com/library/config/nginx/reference/#passenger_ruby

Cette dernière semble indiquer que vous pouvez utiliser un chemin de RVM.

+0

Passenger n'accepte pas "/Users/7stud/.rvm/rubies/ruby-2.3.0/bin/ruby" comme chemin acceptable pour ruby, c'est pourquoi j'essaye de mettre à jour/usr/bin/ruby. Donc, ma question demeure, comment je fais ça? – Dave

+0

@Dave, voir l'addition au bas de ma réponse. – 7stud

+1

@Dave, Avez-vous littéralement utilisé le chemin que vous avez posté dans votre commentaire - car il est douteux que vous ayez un utilisateur nommé 7stud (mon nom d'utilisateur) sur votre ordinateur. – 7stud