web-dev-qa-db-fra.com

Rails installés mais la commande Rails dit que ce n'est pas installé

J'utilise Ubuntu 9.10 Karmic Koala et Ruby 1.9.1.

J'ai installé Rails en utilisant Sudo gem install Rails, qui a installé toutes les bibliothèques pour moi.

Quand je tape Rails dans le terminal, il est écrit.

Le programme 'Rails' n'est actuellement pas installé. Vous pouvez l'installer en tapant: Sudo apt-get install Rails Rails: commande introuvable

Je peux trouver rake, qui se trouve sous rake1.9.1, mais Rails est introuvable, quelqu'un peut-il m'orienter dans la bonne direction?

Edit: le chemin vers Ruby n'est pas le problème, mais où sont les rails? comment puis-je l'exécuter? Les rails ne fonctionnent tout simplement pas, où vit l'exectuable?

27
rgoytacaz

Comme d’autres le disent, cela peut très bien être un problème de variable PATH sur votre fichier bashrc/bash_profile.

Vous pouvez apprendre à changer PATH. .

Vous pouvez obtenir la variable PATH actuelle en tapant echo $PATH

20
TK.

Si vous exécutez une commande Rails Immédiatement après avoir installé Rails, vous devrez redémarrer votre terminal avant que vos commandes ne soient reconnues.

16
Kyle Clegg

Juste le même problème vient de mettre le suivant dans votre .bashrc

PATH="${PATH}:/var/lib/gems/1.8/bin/"
11
JaapH

En supposant queRuby-2.0.0-p247est installé, Rails est situé à l'emplacement suivant.

prayag@prayag$ ls -l ~/.rvm/gems/Ruby-2.0.0-p247/bin/
total 60
-rwxr-xr-x 1 prayag prayag 484 Oct  2 00:20 cap
-rwxr-xr-x 1 prayag prayag 487 Oct  2 00:20 capify
-rwxr-xr-x 1 prayag prayag 475 Oct  1 21:13 erubis
-rwxr-xr-x 1 prayag prayag 469 Oct  1 21:13 rackup
-rwxr-xr-x 1 prayag prayag 480 Oct  1 21:18 Rails
-rwxr-xr-x 1 prayag prayag 494 Oct  2 00:27 restclient
-rwxrwxr-x 1 prayag prayag 368 Oct  1 21:10 Ruby_executable_hooks
-rwxr-xr-x 1 prayag prayag 467 Oct  2 00:27 sass
-rwxr-xr-x 1 prayag prayag 475 Oct  2 00:27 sass-convert
-rwxr-xr-x 1 prayag prayag 467 Oct  2 00:27 scss
-rwxr-xr-x 1 prayag prayag 487 Oct  1 21:20 sprockets
-rwxr-xr-x 1 prayag prayag 483 Oct  2 00:29 stripe-console
-rwxr-xr-x 1 prayag prayag 467 Oct  1 21:17 thor
-rwxr-xr-x 1 prayag prayag 467 Oct  1 21:20 tilt
-rwxr-xr-x 1 prayag prayag 474 Oct  1 21:16 tt

[1] .bash_profile devrait déjà contenir la ligne suivante, sinon ajouter.

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

[2] Ajouter la ligne suivante à la fin de .bashrc.

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
PATH="${PATH}:${HOME}/.rvm/gems/Ruby-2.0.0-p247/bin/"

[3] Recharger ~/.bashrc

$ source ~/.bashrc

Et ça devrait marcher.

3
prayagupd

Si vous exécutez rbenv, vous devrez exécuter rbenv rehash. Vous aurez accès à la commande Rails-api. 

2
HelloWorld

gem aurait dû placer le script exécutable Rails au même endroit que Ruby's. Je regarderais à l'intérieur et m'assurerais que les permissions sont définies correctement et que c'est exécutable.

1
Michael Wales

Je pense que ce n'est pas la bonne façon de résoudre ce problème. Mais ce que j’ai fait, c’est, J’ai créé un fichier Rails.rb dans mon répertoire exécutable car lors de l’ouverture de ce répertoire, ce fichier n’y figurait pas et le contenu suivant était mis à jour.

#!/usr/bin/env Ruby_noexec_wrapper
#
# This file was generated by RubyGems.
#
# The application 'railties' is installed as part of a gem, and
# this file is here to facilitate running it.
#

require 'rubygems'

version = ">= 0"

if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then
  version = $1
  ARGV.shift
end

gem 'railties', version
load Gem.bin_path('railties', 'Rails', version)

j'essaie ensuite de lancer Rails s dans mon projet et ses travaux.

Mais avant cela, assurez-vous que le répertoire exécutable est dans votre chemin comme je l'ai déjà dans ma machine: /home/anand/.rvm/gems/Ruby-1.9.3-p286/bin:/home/anand/.rvm/gems/Ruby-1.9.3-p286@global/bin:/home/anand/.rvm/rubies/Ruby-1.9.3-p286/bin:/home/anand/.rvm/bin

Selon TK, vous pouvez obtenir le chemin de l'exécutable à l'aide de la commande gem environment 

1
Anand Soni

J'ai ajouté les lignes suivantes à mon fichier .bashrc et cela a fonctionné.

[[-s "$ HOME/.rvm/scripts/rvm"]] && source "$ HOME/.rvm/scripts/rvm" # Charge RVM dans une session Shell en tant que fonction

PATH = "$ {PATH}: $ {HOME} /. Rvm/gems/Ruby-1.9.3-p327/bin /"

1
samaitra

Si vous utilisez rbenv, n'oubliez pas d'ajouter 

eval "$(rbenv init -)"

dans votre .bash_profile ou d’autres scripts de démarrage . run rbenv rehash est également nécessaire.

1
William Hu

Une solution possible consiste à ne pas gérer deux fichiers de configuration différents, .bash_profile et .bashrc.

Il est suggéré dans cet excellent post que la différence entre .bash_profile et .bashrc consiste à source .bashrc à partir de votre fichier .bash_profile, puis à placer PATH et les paramètres communs dans .bashrc.

Citant, 

ajoutez les lignes suivantes à .bash_profile:

if [ -f ~/.bashrc ]; then source ~/.bashrc fi

citation finale

0
osehgol