web-dev-qa-db-fra.com

Impossible d'installer RVM. Autorisation refusée dans/usr/local/rvm

Basé sur mon précédent thread: RVM installé par Ruby ne fonctionne pas? où j’avais installé RVM en utilisant l’utilisateur root, j’ai alors dû supprimer entièrement l’installation de RVM et maintenant j’installe en tant qu’utilisateur.

Alors j'ai fait:

  1. Créez un nouvel utilisateur en faisant: useradd newuser
  2. Suivez les instructions du site Web RVM et exécutez la commande suivante: bash <<(curl http://rvm.beginrescueend.com/releases/rvm-install-head )

Maintenant, je reçois l’erreur: mkdir: impossible de créer le répertoire `/ usr/local/rvm ': autorisation refusée

Le nouvel utilisateur que j'ai créé n'a pas accès à ce répertoire. J'ai essayé manuellement de créer le dossier mais la même erreur. S'il vous plaît aider.

EDIT: Le problème initial est dû au fait que je n’ai pas redémarré le terminal et qu’il utilisait toujours les anciens paramètres.

Maintenant, j'ai un nouveau problème: après l'installation de RVM, je ne peux pas l'exécuter et cela me donne une erreur: commande rvm introuvable.

Voici la sortie de mon ~/.bash_profile

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"  # This loads RVM into a Shell session.

Et voici la sortie du fichier ~/.bashrc

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# User specific aliases and functions
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"  # This loads RVM into a Shell session.
19
Yash Desai

RVM est facile à installer, mais vous rendez la tâche plus difficile en essayant de mélanger et de faire correspondre les types d’installation. Vous n'avez PAS besoin de créer un nouvel utilisateur. Lorsqu'il sera exécuté, RVM créera un répertoire dans votre répertoire personnel: ~/.rvm, et installera tout ce qu'il contient. Cela signifie que vous aurez toutes les autorisations appropriées. Vous n'avez PAS besoin de courir en tant que root, vous n'avez PAS besoin d'utiliser Sudo. Je vous recommande de fermer toutes vos lignes de commande, d’en ouvrir une nouvelle et de commencer par votre répertoire personnel. Si vous travaillez en tant que root, déconnectez-vous et reconnectez-vous à votre compte normal. Pour une installation mono-utilisateur, vous n'avez PAS besoin d'être root.

Pour un utilisateur unique, utilisant RVM en tant que bac à sable Ruby, utilisez les documents d'installation pour un utilisateur unique . Suivez ALL les instructions de cette page, , Y COMPRIS la section "Post-installation".

Fermez la fenêtre de votre terminal et rouvrez-la. Si vous avez correctement suivi les instructions ci-dessus, taper rvm info devrait cracher un modèle de ce qui doit arriver une fois que vous avez installé une instance Ruby. Si vous ne voyez rien en sortie ou si vous obtenez une erreur, suivez les étapes dans la section "Post-installation", puis passez à la section "Dépannage". La plupart des problèmes que les gens rencontrent se produisent parce qu'ils ne se sont pas donné la peine de lire les instructions.

Une fois que RVM est installé, tapez rvm notes et lisez les dépendances à installer. Si vous n’ajoutez pas ces fichiers, il ne manquera aucune fonctionnalité à vos Rubis installés. Ils fonctionneront, mais certains des conforts de créatures dont vous entendrez parler ne fonctionneront pas et vous vous demanderez pourquoi.

Après avoir installé les dépendances, vous devriez être en forme pour installer Rubies. Tapez rvm list known pour tout ce que Rubies RVM peut installer. Si vous voulez 1.8.7 tapez rvm install 1.8.7 et, de la même manière, rvm install 1.9.2 pour Ruby 1.9.2. Si vous souhaitez une révision particulière, vous pouvez l'ajouter en vous basant sur celles de la liste.

Il est important de mettre à jour périodiquement RVM en utilisant rvm get head. Cela permettra d'ajouter des fonctionnalités, de corriger des bugs et d'informer RVM des nouvelles versions de Ruby qu'il peut installer si vous le souhaitez.

Après avoir installé un Ruby, tapez rvm list et il devrait apparaître dans la liste, ressemblant à ceci:

 rvm rubis 

 Ruby-1.8.7-p334 [x86_64] 
 Ruby-1.9.2-p180 [x86_64] 

Tapez rvm use 1.9.2 --default pour définir un Ruby par défaut qui sera persistant entre les connexions. Utilisez la version de Ruby pour laquelle vous voulez utiliser par défaut si 1.9.2 ne flotte pas votre bateau. Une fois que vous avez défini un paramètre par défaut, il devrait ressembler à ceci:

 rvm rubis 

 Ruby-1.8.7-p334 [x86_64] 
 => Ruby-1.9.2-p180 [x86_64] 

Avant de commencer à installer des pierres précieuses dans un Ruby géré par RVM, lisez "RVM et RubyGems" , en particulier la partie intitulée "NE PAS utiliser Sudo ...". Je répète. N'utilisez PAS Sudo pour installer des gemmes, malgré ce que disent certains blogs ou pages Web. L'auteur de RVM connaît mieux le travail avec les rubis contrôlés par RVM. C'est une autre erreur que les gens utilisent avec RVM, encore une fois parce qu'ils ne lisent pas les instructions.

Sous Mac OS, vous aurez besoin de la dernière version de XCode pour votre système d'exploitation. N'utilisez PAS le code X fourni avec Snow Leopard sur le DVD. C'est buggy. Téléchargez et installez une nouvelle version à partir de le site de développement d’Apple . C'est un téléchargement gratuit nécessitant une inscription gratuite. Il s’agit d’un gros fichier d’environ 8 Go. Vous devrez donc le démarrer et vous en aller. Installez XCode et vous devriez être prêt à ce que RVM installe Rubies.

Enfin, RVM s’installe facilement, de même que les rubis que vous lui demandez d’installer. Je l'ai sur environ quatre ou cinq machines et machines virtuelles différentes sur Mac OS, Ubuntu et CentOS. Il me faut environ une minute pour l'installer et une autre minute pour le configurer et commencer à installer un nouveau Ruby. C'est aussi simple que ça.

18
the Tin Man

mkdir: impossible de créer le répertoire `/ usr/local/rvm ': autorisation refusée

Si vous avez déjà exécuté le programme d'installation de rvm en tant que root, supprimez/usr/local/rvm et/etc/rvmrc. 

67
tristan

Le problème original a été signalé dans cette question: " mkdir: impossible de créer le répertoire`/usr/local/rvm ': Autorisation refusée "lors de la tentative d'installation de rvm.

C’est mon scénario et la façon dont j’ai résolu le problème. Peut-être que cela aidera les autres à résoudre le même problème.

Ubuntu 11.04 est installé sur un ordinateur portable. Je n'ai qu'un seul utilisateur, celui que j'ai créé lors de l'installation, nommé nathan. Lorsque j'essayais d'installer rvm en tant que nathan, le programme d'installation de rvm me considérait en tant que root et essayait sans cesse de l'installer globalement, mais comme je n'étais pas vraiment root, il ne pouvait pas accéder à la création de répertoires dans/usr/local/rvm .

Je suis loin d'être un expert avec Ubuntu, alors je suis sûr qu'il existe des moyens plus faciles/meilleurs d'accomplir les tâches que j'ai accomplies (et j'aimerais en apprendre davantage à leur sujet), mais cela a fonctionné pour moi:

  1. J'ai créé un nouvel utilisateur appelé rubydev
  2. Je me suis connecté en tant que rubydev, j'ai ouvert un terminal et j'ai tapé:

    rubydev~$ bash < <(curl -B http://rvm.beginrescueend.com/install/rvm)
    
  3. rvm installé correctement et je me suis déconnecté de rubydev

  4. A nouveau connecté en tant que nathan, a ouvert un terminal et a tapé "su" (vous pouvez faire tout cela avec Sudo, je suis paresseux)
  5. Après avoir réussi à obtenir root, j'ai tapé les commandes suivantes:

    root: /home/nathan# cp -R /home/rubydev/.rvm .
    
    root: /home/nathan# chown -R nathan .rvm
    
    root: /home/nathan# chgrp -R nathan .rvm
    
    root: /home/nathan# exit
    
    nathan~$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile
    
    nathan~$ echo 'export rvm_path="/home/nathan/.rvm"' > ~/.rvmrc
    
    nathan~$ source .bash_profile
    
  6. À ce stade, RVM était correctement installé dans mon répertoire personnel. Pour vérifier j'ai tapé:

    nathan~$ type rvm | head -1
    rvm is a function (if you don't get this response, something else is wrong)
    
  7. Lire les notes et installer toutes les dépendances

    nathan~$ rvm notes
    
  8. J'ai installé des rubis

    nathan~$ rvm install 1.8.7-head
    nathan~$ rvm install 1.9.2-head
    
  9. Installation vérifiée

        nathan~$ rvm list
    
        rvm rubies
            Ruby-1.8.7-head [x86_64]
            Ruby-1.9.2-head [x86_64]
    
        nathan~$ rvm use 1.9.2
        using /home/nathan/.rvm/gems/Ruby-1.9.2-head
    
        nathan~$ rvm list
    
        rvm rubies
           Ruby-1.8.7-head [x86_x64]
        => Ruby-1.9.2-head [x86_x64]
    
  10. Finalement, j'ai édité les préférences sur le terminal lui-même pour m'assurer que la "commande Exécuter en tant que shell de connexion" sous l'onglet "Titre et commande" était cochée. Il semble que .bash_profile n'est pas traité autrement.

  11. J'ai supprimé l'utilisateur Rubydev que j'ai créé à l'étape 1.

Avec tout cela, j'ai une machine sous Ubuntu 11.04 qui utilise mon nom d'utilisateur préféré.

6
Nathan Ratcliff

Si vous avez d'abord installé RVM en tant que root, puis l'avez désinstallé. Et maintenant, vous essayez de l'installer en tant qu'utilisateur non Sudo et vous obtenez le message d'erreur suivant:

mkdir: cannot create directory `/usr/local/rvm': Permission denied

Assurez-vous que vous êtes déconnecté de la session racine avant d'essayer de l'installer sous l'utilisateur.

5
Scott Bartell

J'ai résolu ceci en ajoutant

export rvm_path=~/.rvm

vers ~/.bash_profile

4
glebtv

J'ai eu le même problème. Lorsque j'essayais de créer un gemset, je recevais une erreur d'autorisation refusée. J'ai juste oublié d'exécuter la commande "rvm use 1.8.7" en premier. Après cela, j'ai pu créer et utiliser le gemset sans aucun problème.

2
Diego

Recherchez le fichier rvm.sh sous le répertoire/etc (il se peut que ce soit dans/etc, ou dans /etc/init.d). Essayez également un fichier grep rvm/etc -r afin de pouvoir trouver des fichiers/lignes vous empêcher d’installer rvm dans votre répertoire $ HOME.

2
kaineer

Si vous installez RVM en tant qu’utilisateur, le dossier RVM doit être généré dans votre répertoire personnel: 

~/.rvm 

Où il ne devrait y avoir aucun problème d'autorisations.

Je suggérerais qu'il récupère une vieille configuration qui reste de votre installation système.

Assurez-vous qu'il ne reste aucun fichier/etc/rvmrc ou $ HOME/.rvmrc car il est possible qu'il utilise des variables précédemment initialisées à partir de ces fichiers pour créer un chemin d'installation incorrect.

si nous regardons cette section du script bash:

if [[ ${rvm_ignore_rvmrc:-0} -eq 0 ]]; then
  for file in /etc/rvmrc "$HOME/.rvmrc  " ; do
    if [[ -s "$file" ]] ; then
      source $file
    fi
  done
fi

Il essaie de trouver l'un de ces fichiers, s'il en trouve un s'il l'exécutera éventuellement en initialisant rvm_path, qui ne sera par la suite pas défini comme $ HOME/.rvm par cette commande.

rvm_path="${rvm_path:-"$HOME/.rvm"}"
2
rogermushroom

Pour moi courir

__rvm_unload

Cela a fonctionné d’abord, c’est parce que j’avais installé RVM comme pour multi-utilisateurs.

2
Calin

Dans les dernières versions de rvm, vous devez également supprimer /etc/profile.d/.

Cela se produit souvent si vous essayez d’installer en tant que root, puis de nouveau en tant qu’utilisateur normal.

J'espère que cette aide.

2
johananp

La solution de Scott Bartell a fonctionné pour moi. Je suis sur une image premade de Digital Ocean, où ils avaient déjà configuré rvm en tant que racine . 1. supprimé/etc/rvmrc . 2. ajouté export rvm_path = ~/.rvm à ~/.bash_profile 3. déconnecté de la session ssh sur la machine virtuelle 4. reconnecté et presto!

aurais commenté mais rep est 3 points trop bas :)

0
user2550943

Si vous avez installé rvm en tant que root et que vous rencontrez des problèmes d'autorisation refusée (peut-être que vous déployez avec capistrano en tant qu'utilisateur non root), vous pouvez essayer rvm fix-permissions après avoir effectué des opérations telles que rvm install 2.2.2 en tant que root et créé un gemset en tant que root.

0
Jason R