Bonsoir/bonjour à tous,
Je dois passer sur un mac pour entamer un projet ruby on rails.
Il semblerait que sur mac ruby soit installer nativement.
j'ai donc la version

3~$ ruby -v
ruby 2.0.0p645 (2015-04-13 revision 50299) [universal.x86_64-darwin15]

mais je souhaiterai suivre la demarche suivante ( à l'exception de git et data en suivant ce lien) mais je n'arrive pas a changer de version
apres l installation de la version 2.2.3

4~$ rbenv global 2.2.3
5~$ ruby -v
ruby 2.0.0p645 (2015-04-13 revision 50299) [universal.x86_64-darwin15]
6~$ 

Je ne suis pas vraiement dans mon élément et je ne sais pas vraiement comment remédier à ce problème.
En outre je ne parviens pas à installer rails, cela doit venir que j'utilise la version native de ruby sur mac et non la version que j'ai "tenté?" d'installer avec
rbenv install 2.2.3 qui semble se dérouler correctement mais qui ne donne rien.
=> pour rails:

6~$ sudo gem install rails -v 4.2.4
Password:
Building native extensions.  This could take a while...
ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted - /usr/bin/nokogiri
7~$ rbenv rehash
8~$ rails -v
Rails is not currently installed on this system. To get the latest version, simply type:

    $ sudo gem install rails

You can then rerun your "rails" command.
9~$ 

Si qqun à une solution je suis preneur.
Merci à vous

6 réponses


Grafikart
Réponse acceptée

Tu es sur ElCapitan surement, le dossier /usr/bin ne peut plus être modifié, et ce même en sudo. C'est une sécurité appellée "rootless" qui est très chiante. Tu peux indiquer à Ruby ou placer les fichier binaire en modifiant le fichier ~/.gemrc

J'y ai mit ça perso :

gem: --bindir /usr/local/bin

Operation not permitted - /usr/bin/nokogiri

Il semblerait que si tu as une erreur pour installer Rails, que ce ne soit pas à cause de ta version de Ruby, mais plutôt concernant les permissions.

Oui j'ai vu l'erreur mais il semble aussi qu on ne puisse pas installer rails sur la version native de osx. Je ne vois pas trop comment m y prendre pour arriver à passer sur la version 2.2.3 que j ai installer. Peut-être est ce une question de PATH ?

En effet, ça fonctionne. Mais je n'arrive pas à changer de version de ruby avec

2~$ rbenv global 2.2.3
3~$ ruby -v
ruby 2.0.0p645 (2015-04-13 revision 50299) [universal.x86_64-darwin15]
4~$ 

Peut-être saurais-tu d'ou viens le probleme ?

Pour information, la commande rbenv ne permet pas d'installer, mais de gérer différentes versions de Ruby (à conditions qu'elles soient déjà installées sur la machine bien sûr).
C'est un manager, donc un gestionnaire.
Pour installer différentes versions de Ruby avec rbenv, il te faut installer le plugin ruby-build.

Oui en effet lartak,j 'avais effectuer l installation avant de changer mon dossier ~/.gemrc et sans soucis mais la viens de retest sans succes :
edit : J'ai reessayé avec la version 2.2.2, l installation c est passé correctement mais un $ruby -v m indique toujours la version 2.0 qui etait à l'origine

1~$ rbenv install 2.2.3
rbenv: /Users/moi/.rbenv/versions/2.2.3 already exists
continue with installation? (y/N) y
Downloading ruby-2.2.3.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/df795f2f99860745a416092a4004b016ccf77e8b82dec956b120f18bdc71edce
Installing ruby-2.2.3...

BUILD FAILED (OS X 10.11.1 using ruby-build 20151028)

Inspect or clean up the working tree at /var/folders/wd/7q28c35j1dz32ljyx8zjr9s00000gn/T/ruby-build.20151204213847.42496
Results logged to /var/folders/wd/7q28c35j1dz32ljyx8zjr9s00000gn/T/ruby-build.20151204213847.42496.log

Last 10 log lines:
    from /private/var/folders/wd/7q28c35j1dz32ljyx8zjr9s00000gn/T/ruby-build.20151204213847.42496/ruby-2.2.3/lib/rubygems/dependency_installer.rb:394:in `install'
    from /private/var/folders/wd/7q28c35j1dz32ljyx8zjr9s00000gn/T/ruby-build.20151204213847.42496/ruby-2.2.3/lib/rubygems.rb:558:in `install'
    from ./tool/rbinstall.rb:722:in `block (2 levels) in <main>'
    from ./tool/rbinstall.rb:721:in `each'
    from ./tool/rbinstall.rb:721:in `block in <main>'
    from ./tool/rbinstall.rb:757:in `call'
    from ./tool/rbinstall.rb:757:in `block in <main>'
    from ./tool/rbinstall.rb:754:in `each'
    from ./tool/rbinstall.rb:754:in `<main>'
make: *** [do-install-all] Error 1