2015-07-14 1 views
3

J'ai lu de nombreux articles mais aucun n'a jusqu'ici fait l'affaire. Comment puis-je, sous OSX (El Capitan Beta), installer une gemme pour mon propre utilisateur? Les messages suggèrent de spécifier -user-install par exemple mais je ne peux pas appeler gem sans sudo car il déclenche des erreurs d'autorisation.Comment installer des gems sans sudo sur Mac OS X

J'ai suivi "Install gem as user on OSX 10.10 Yosemite" mais je ne peux toujours pas appeler gem.

J'ai installé Homebrew, installé rbenv par le guide ci-dessus, installé une version de Ruby avec rbenv, vérifié qu'il a été chargé correctement, mais l'étape finale dans le guide est d'appeler gem install que je ne peux toujours pas faire.

Appel gem après l'installation rbenv résultats dans:

/Users/Me/.rbenv/versions/2.1.5/lib/ruby/2.1.0/rubygems/stub_specification.rb:71:in `initialize': 
Permission denied @ rb_sysopen - /Users/Ne/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/speci 

rbenv benne env:

RBENV_VERSION=2.1.5 
RBENV_ROOT=/Users/Me/.rbenv 
RBENV_HOOK_PATH=:/Users/Me/.rbenv/rbenv.d: 
    /usr/local/etc/rbenv.d: 
    /etc/rbenv.d: 
    /usr/lib/rbenv/hooks 
PATH=/Users/Me/.rbenv/versions/2.1.5/bin: 
    /usr/local/Cellar/rbenv/0.4.0/libexec: 
    /Users/Me/.rbenv/plugins/rbenv-env/bin: 
    /Users/Me/.rbenv/shims: 
    /usr/local/heroku/bin: 
    /usr/local/sbin: 
    /usr/local/bin: 
    /usr/local/share/npm/bin: 
    /Applications/Atom.app/Contents/Resources/app/apm/bin: 
    /Users/Me/.bin: 
    /Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/bin: 
    /usr/local/bin:/usr/bin: 
    /bin: 
    /usr/sbin:/sbin: 
    /opt/X11/bin: 
    /usr/local/MacGPG2/bin 
RBENV_DIR=/Users/Me/.rbenv/plugins 

"brew and gem both throws 'Permission denied' error whenever I run it" semble liée si elle n'a pas été résolu, sauf en utilisant une autre méthode que je peux avoir faire.

+1

Corriger, ne pas utiliser 'sudo' parce que Ruby modifie installé pour l'utilisation d'Apple. Utilisez-vous rbenv ou RVM pour mettre Ruby dans un bac à sable dans votre propre répertoire personnel? S'il vous plaît ne nous demandez pas d'aller à d'autres sites et de lire leur documentation juste pour vous aider parce que les liens pourrissent et alors votre question sera inutile à quelqu'un d'autre. Dites-nous ce que vous avez essayé, et quelles erreurs vous avez eues ou pourquoi elles n'ont pas fonctionné. –

+0

Ajoutez la sortie de 'rbenv env' à votre question, formatée pour la lisibilité. Il est disponible à https://github.com/ianheggie/rbenv-env. Aussi, quelle est la sortie de 'rbenv whence gem'? 'gem' est installé par Ruby donc à moins d'utiliser une version très ancienne (et non supportée de Ruby), elle devrait être installée. –

+0

@theTinMan - posted – cyberwombat

Répondre

3

Si vous ne pouvez pas utiliser gem sans sudo, il semble que vous n'avez pas initialisé correctement rbenv parce que les cales ne sont pas disponibles.

Ces étapes sont de the documentation. Confirmez que vous les avez ALL:

Ajouter ~/.rbenv/bin à votre PATH $ pour l'accès à l'utilitaire rbenv ligne de commande.

$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile 

Ubuntu Note Desktop: Modifier votre ~/.bashrc au lieu de ~/.bash_profile.

Zsh note: Modifiez votre fichier ~/.zshrc au lieu de ~/.bash_profile.

Ajoutez rbenv init à votre shell pour activer les shims et l'auto-complétion.

$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile 

Identique à l'étape précédente, utilisez ~/.bashrc sur Ubuntu ou ~/.zshrc pour zsh.

Redémarrez votre shell pour que les modifications PATH prennent effet. (L'ouverture d'un nouvel onglet terminal habituellement le faire.) Maintenant, vérifier si rbenv a été mis en place:

$ type rbenv 
#=> "rbenv is a function" 
+0

J'ai le ci-dessus - pour être sûr que j'ai tout refait, ouvert un nouveau tem mais toujours l'erreur 'stub_specification.rb' – cyberwombat

+0

Voici un post que je viens de trouver avec le même problème - pas clair comment le résoudre si http: // stackoverflow.com/questions/29555478/brew-and-gem-both-throws-permission-denied-error-whenever-i-run-it – cyberwombat

+0

Ok. La suppression de mon répertoire '.rbenv' et la réinstallation de ruby ​​ont fait l'affaire. J'ai eu un installe plus ancien avec des permissions bizarres. – cyberwombat

3

Je recommanderais d'abord Homebrew, un choix populaire parmi les développeurs sur OSX et il ne nécessite pas de sudo. Vous pouvez faire brew install ruby et partir de là.

Essayez également les environnements en bac à sable tels que RVM et rbenv, pour la même raison.

+0

J'ai édité mon post - J'ai brasser, rbenv mais toujours obtenir des erreurs de permission. – cyberwombat

+0

Avez-vous essayé 'rvm info'? – mahemoff

0

Je pense que la meilleure solution pour obtenir travailler vos gemmes en cours d'exécution sur tous les projets et local est de travailler avec Bundler et assurez-vous d'installer en cours d'exécution

bundle install --path vendor/bundle 

Cela crée un fournisseur dossier/paquet dans votre projet et vous devriez ajouter à votre .gitignore