web-dev-qa-db-fra.com

l'installation rvm ne fonctionne pas: "RVM n'est pas une fonction"

Je viens d'installer RVM, mais je ne peux pas le faire fonctionner. J'ai une telle ligne à la fin de mon fichier .profile:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

J'ai essayé de lancer source .profile et de redémarrer le terminal, mais quand même, quand je lance rvm use 1.9.2, je reçois:

RVM is not a function, selecting rubies with 'rvm use ...' will not work.

Mon système est Ubuntu 11.10.

224
amorfis

Vous n'utilisez pas de shell de connexion.

Le processus d'activation de l'indicateur de connexion est décrit ici , quelques détails sur ce qu'est un shell de connexion peuvent être trouvés ici .

Ainsi, vous devez cocher l'option "Exécuter en tant que shell de connexion" dans les paramètres du terminal Gnome. Il est nécessaire d'ouvrir un nouveau terminal après avoir défini le drapeau.

Parfois, il est nécessaire de définir la commande sur /bin/bash --login.


Pour les connexions remote, il est important de comprendre les différences entre l'exécution d'une session interactive ssh et l'exécution de commandes simples.

Lorsque vous exécutez ssh server et que vous utilisez ensuite le serveur de manière interactive, vous utilisez le shell de connexion par défaut et tout va bien, mais pour ssh server "command", vous n'utilisez pas le login et vous devez l'exécuter avec ssh server 'bash -lc "command"'.

Toute invocation à distance peut poser le même problème que l’exécution d’une seule commande avec ssh

226
mpapis

Vous devez exécuter ce qui suit

$ source ~/.rvm/scripts/rvm

puis lancez ceci

$ type rvm | head -n 1

et si vous obtenez

rvm is a function

le problème est résolu.

Vous devez également exécuter user$ rvm requirements pour connaître les exigences de dépendance pour votre système d'exploitation.

Source: https://rvm.io/rvm/install/

J'ai oublié de mentionner que vous devez mettre ce code dans votre fichier ~/.bashrc ou ~/.zshrc et vous n'aurez plus besoin de l'écrire à nouveau. À votre santé!

417
Jorge García

Pour résoudre de manière permanente cette ligne suivante, il suffit de couper/coller:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

De: fichier ~/.bash_profile

À: fichier ~/.bashrc

La raison pour laquelle cela fonctionne est que .bashrc est exécuté à chaque fois que vous entrez dans un terminal, et .bash_profile à chaque fois que vous vous connectez. C'est pourquoi la solution /bin/bash --login fonctionne, mais vous devez le faire chaque fois que vous entrez dans un terminal. De cette façon, vous êtes prêt jusqu'à votre prochain format, et vous oublierez tout cela d'ici là :)

101
Haris Krajina

Moi aussi j'ai fait face à ce problème. Enfin, j'ai exécuté cette ligne sur le terminal.

source ~/.rvm/scripts/rvm

Le problème est résolu. Parce que cette ligne rendra l'instance RVM une fonction pour un temps particulier.

28
Bastin Robin

Le dernier RVM (version 1.11.6 (stable)) a cessé de fonctionner sur Ubuntu (10.10 - 64 bits - ringard gnat ou autre) - je n'arrêtais pas de

"RVM n'est pas une fonction, la sélection de rubis avec 'utilisation de la RVM ...' ne fonctionnera pas."

Auparavant, j'avais reçu le message, mais "rvm 1.9.3-p0@Rails321" fonctionnait. Maintenant, cela ne fonctionnerait pas - vous ne pouviez pas changer de gemsets du tout.

Rien n’a fonctionné, jusqu’à ce que j’ai trouvé ceci - faites-en la dernière ligne dans /home/your-name/.bashrc

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

21
Rod McLaughlin

Comme vous l'avez dit, l'erreur affichée pourrait être la suivante.

RVM is not a function, selecting rubies with 'rvm use ...' will not work.

You need to change your terminal emulator preferences to allow login Shell.
Sometimes it is required to use `/bin/bash --login` as the command. 
Please visit https://rvm.io/integration/gnome-terminal/ for a example.

Comme dit plus haut, tapez simplement '/bin/bash --login ' dans votre terminal (après le redémarrage de votre terminal), puis tapez la commande 'rvm use 1.9.3' (par exemple) même version.

Il suffit d’exécuter la commande 'Ruby -v' pour confirmer que le RVM utilise la version mise à jour de Ruby.

9
Rajesh Omanakuttan

J'ai eu ce problème aussi sur une nouvelle installation de rvm, et aucune des réponses ici ne le résout. En accédant au site officiel de rvm, dans la section des bases, ils ont cette commande:

# from http://rvm.io/rvm/basics

source $ (rvm 1.9.3 do rvm env --path)

Vous devriez changer 1.9.3 pour la version de Ruby que vous voulez réellement, et cela va faire de rvm une fonction indépendamment du type de shell.

8
vcanales

Peut-être que vous pouvez essayer les belows:

  • Votre terminal ->
  • Éditer ->
  • Préférences de profil ->
  • Titre et commande ->
  • Vérifiez la commande "Exécuter en tant que shell de connexion"
  • Terminé
7
Feuda

Exécutez bash --login puis exécutez rvm use 2.0.0.

5
Gowri Tumma

même si vous avez accepté une réponse, je voudrais suggérer une autre façon .. ~/.bashrc est chargé avant l’ouverture de tout shell. Ajoutez cette ligne à la fin de cela, et vous n'avez besoin de rien de cette chose Shell Shell de connexion 

5
kapv89

Toutes les réponses ci-dessus sont valables. Mais quand je suis confronté au même problème, la solution est la suivante:

  • Mettre à jour ZSH. (Essayé de mettre à jour directement ne fonctionne pas pour une raison quelconque. Donc, désinstallé et réinstallé la version mise à jour de ici )
  • Définir Shell par défaut comme zsh (c'est-à-dire si vous préférez zsh) en utilisant Sudo chsh -s $(which zsh) $USER
  • Assurez-vous que le code suivant se trouve au bas de votre .zshrc après avoir installé la dernière version de RVM utilisant probablement CURL depuis site officiel de RVM

    [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
    source ~/.profile
    
  • POINT LE PLUS IMPORTANT: Assurez-vous que dans votre fichier .zshrc chaque exportation vers PATH est ajoutée avec :$PATH. Ce qui, je pense, était la racine de mes problèmes même après avoir suivi les étapes ci-dessus.

  • poster tous mes problèmes de RVM n'étant pas une fonction parti. Si cela ne fonctionne toujours pas, donnez une trace d'erreur ici. Après quelques heures de lutte pour résoudre ce problème, je suis certain d’avoir vu toutes les erreurs connexes.

J'espère que ça aide. À votre santé!

4
Vishnu Narang

Ouvrez le terminal, puis accédez à Edition> Préférences de profil, puis cliquez sur l'onglet "Titre et commande" et cochez la case "Exécuter la commande en tant que login shell".

Boot Up a Bash et maintenant vous pouvez installer Gems directement depuis le terminal sans utiliser Sudo et avec l'erreur "RVM n'est pas une fonction, la sélection de rubis avec 'utilisation de rvm ...' ne fonctionnera pas." éliminé.

À votre santé.

4
ajknzhol

Procédure d'installation de Ruby 1.9.3-p125 sur Mac OSX 10.8 Mountain Lion

  1. Vous avez déjà installé le dernier XCode (> = 4.3) et la ligne de commande Objective-C Compiler "clang".
  2. Vous devez exécuter le shell "bash" pour que cette procédure fonctionne.
  3. Aller aux Préférences Système
  4. Cliquez sur "Utilisateurs et groupes"
  5. Cliquez sur le verrou en bas à gauche du panneau et entrez votre mot de passe pour le déverrouiller.
  6. "Ctrl-Clic" sur votre icône d'utilisateur dans le volet gauche du panneau et choisissez "Options avancées ..."
  7. Changer le shell de connexion en "/ bin/bash"
  8. Fermer les préférences
  9. Ouvrez une fenêtre de terminal (appuyez sur commande + barre d'espace et tapez "terminal")
  10. Suivez les instructions à:

http://www.frederico-araujo.com/2011/07/30/installing-Rails-on-os-x-lion-with-homebrew-rvm-and-mysql/

Remarques:

  • Pour installer Ruby, vous devrez peut-être spécifier le compilateur Clang:

    $ rvm install 1.9.3p125 --with-gcc = clang

  • Si RVM s'acharne sur/usr/local/rvm introuvable, vous devez créer un lien:

    $ ln -s/Utilisateurs/[votre nom d'utilisateur]/.rvm/usr/local/rvm

3
George Campbell
source ~/.bash_profile

... devrait faire l'affaire ..., probablement besoin de vous déconnecter et vous reconnecter.

Comment recharger un fichier .bash_profile à partir de la ligne de commande?

2
user1800885

Les instructions «officielles» sont là: https://rvm.io/integration/gnome-terminal/

1
Sidhannowe

J'ai eu la même erreur, mais aucune des solutions sur cette page n'a semblé fonctionner. Pour moi, il suffisait d'ajouter l'exécutable rvm à mon chemin:

PATH=$PATH:/usr/local/rvm/bin/

Et voilà!

0
Rafael Bugajewski

J'ai eu la même erreur parce que j'avais déjà installé l'ancienne version de rvm Ruby-rvm avec la commande apt-get. 

J'ai résolu le problème en supprimant la ligne de script pour configurer l'ancien fichier RVB dans le fichier .bashrc. 

Vérifiez l'ancien script de configuration rvm puis exécutez le fichier source .profile 

0
ryancheung

Pour ceux qui viennent avec le même problème et qui utilisent lubuntu comme moi, j'ai suivi ceci link

Vous démarrez votre terminal avec 

lxterminal -e "bash -il"

Merci à @mpapsis qui m'a orienté dans la bonne direction

0
nizzin

Je l'ai corrigé en ajoutant cette ligne à .bash_profile:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a Shell session *as a function*
0
AlekseiPetrovski

J'ai eu le même problème et je l'ai fait dans mon fichier .bash_profile et cela a fonctionné .source "$HOME/.rvm/scripts/rvm"

0
Sadiksha Gautam