Bonjour
J'utilise Mac Os 10.15.7 et Sublime text 3 build 4113
J'essaie d'installer SASS grace à la commande "gem install sass" dans ma console mais j'ai ce message
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory.
Pourtant Ruby est bien installé car en tapant ruby -v dans ma console je vois
ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin19]
Avez-vous une idée du problème ?
Merci

8 réponses


Je n'utilise ni mac ni ruby mais ca m'a l'air d'etre un problème de droit et non d'installation manquante.

filepermissionerror, alors soit tu fait un sudo, soit tu met un chmod dans le dossier gem pour autoriser l'ecriture (si c'est local balances un chmod -R 777 x) si c'est en remote j'ai oublié le mod à placer ^^')

Pas mieux, le chmod 777 est déconseillé mais tu es en local donc 0 problème.

J'ai bien mis mon dossier "GEM" en 777 mais ca change rien
https://www.zupimages.net/up/21/36/1qns.png

Tu as bien fait un 777 recursive? chmod -R 777 path-to-gem/ sinon seul de dossier gem est en 777 mais pas les dossiers enfants

Et oui comme dit plus haut, surtout faudra pas faire ça en remote, seulement en local, pour le remote je crois que c'est 755 ou 745 :p

Ca doit etre bon

tatane@imac-de-tatane ~ % sudo chown -R $USER /Library/Ruby/Gems/
Password:
tatane@imac-de-tatane ~ % gem install sass
Building native extensions. This could take a while...
ERROR: Error installing sass:
ERROR: Failed to build gem native extension.

current directory: /Library/Ruby/Gems/2.6.0/gems/ffi-1.15.4/ext/ffi_c

/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0 -r ./siteconf20210910-24326-zm2t00.rb extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/include/ruby.h

You might have to install separate package for the ruby development
environment, ruby-dev or ruby-devel for example.

extconf failed, exit code 1

Gem files will remain installed in /Library/Ruby/Gems/2.6.0/gems/ffi-1.15.4 for inspection.
Results logged to /Library/Ruby/Gems/2.6.0/extensions/universal-darwin-19/2.6.0/ffi-1.15.4/gem_make.out

ah oui resourcer vers HOME ça marche aussi, tu as tous les droits dans HOME ^^

Comme l'a mentionné @floriqn, il vaut mieux passer par rbenv ou rvm.

Pour ce qui est de la version de ruby présente par défaut sur macos, tu n'as pas les droits par défaut pour la version installée de base de ruby sur macos, et du coup tu vas te retrouver à toujours devoir lancer les commander avec sudo, et ce n'est jamais une bonne pratique. D'autre part en modifiant les gems, tu t'ouvres à des bugs sur des scripts qui attendent une certaine version de ces gems. Ouvrir les droits d'un dossier en 777 est une pratique encore pire car tu ouvres l'accès à toute le monde sans restrictions. Enfin tu restes sur une version de ruby datée de 3 ans.

La méthode qui proposé sur le site de ruby (https://www.ruby-lang.org/fr/downloads/) te propose justement de passer par rbenv ou rvm pour installer ruby.
Tu pourras donc choisir exactement la version de ruby que tu souhaites installer ainsi que tous les gems.

Perso j'utilise rbenv, et j'ai aucun problème.

❯ which ruby
~/.rbenv/shims/ruby
❯ ruby --version
ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-darwin20]
❯ which gem
~/.rbenv/shims/gem
❯ gem --version
3.2.15

❯ gem install sass
Fetching sass-3.7.4.gem
Fetching sass-listen-4.0.0.gem
Successfully installed sass-listen-4.0.0

Ruby Sass has reached end-of-life and should no longer be used.

* If you use Sass as a command-line tool, we recommend using Dart Sass, the new
  primary implementation: https://sass-lang.com/install

* If you use Sass as a plug-in for a Ruby web framework, we recommend using the
  sassc gem: https://github.com/sass/sassc-ruby#readme

* For more details, please refer to the Sass blog:
  https://sass-lang.com/blog/posts/7828841

Successfully installed sass-3.7.4
Parsing documentation for sass-listen-4.0.0
Installing ri documentation for sass-listen-4.0.0
Parsing documentation for sass-3.7.4
Installing ri documentation for sass-3.7.4
Done installing documentation for sass-listen, sass after 4 seconds
2 gems installed
❯ which sass
~/.rbenv/shims/sass
❯ sass --version
Ruby Sass 3.7.4

Quand t'as fini ton installation, oublies pas de rajouter eval "$(rbenv init -)" dans ton .bashrc ou .zshrc selon ce que tu utilises de manière à ce que lorsque tu tape les commande ruby, ton shell sâche où retrouver la version que tu viens d'installer.
Par la suite tu n'auras aucun problème pour installer les gems que tu veux.