J'ai récemment installé Rails dans Fedora 12. Je suis également nouveau sur Linux. Tout fonctionne bien sous Windows 7. Mais je suis confronté à beaucoup de problèmes sous Linux. Aidez-moi, s'il vous plaît!
A ma connaissance, j'ai installé tous les éléments essentiels pour que le script/serveur de base soit opérationnel. J'ai cette erreur de boot.rb popping up quand j'essaie script/serveur. Certains des détails que je voudrais donner ici:
Les répertoires où Rails, Ruby et gem sont installés,
[vineeth@localhost my_app]$ which Ruby
/usr/local/bin/Ruby
[vineeth@localhost my_app]$ which Rails
/usr/bin/Rails
[vineeth@localhost my_app]$ which gem
/usr/bin/gem
Et quand je lance le script/serveur, c'est l'erreur.
[vineeth@localhost my_app]$ script/server
./script/../config/boot.rb:9:in `require': no such file to load -- rubygems (LoadError)
from ./script/../config/boot.rb:9
from script/server:2:in `require'
from script/server:2
Et le fichier PATH ressemble à ceci
[vineeth@localhost my_app]$ cat ~/.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="/usr/local/bin:/usr/local/sbin:/usr/bin/Ruby:$PATH"
Je suppose que cela a quelque chose à voir avec le fichier PATH. Dites-moi ce que je dois changer ici. S'il y a d'autres changements que je devrais faire, s'il vous plaît faites le moi savoir.
J'ai l'impression que vous avez deux versions de Ruby. Veuillez coller le résultat de la commande suivante:
$ which -a Ruby
mise à jour concernant le commentaire:
Nuke une version et n'en laisser qu'une. J'ai eu le même problème avec deux versions cherchant des gemmes à différents endroits. M'avait rendu fou pendant quelques semaines. Mettez une prime ici à SO m'a donné la même réponse que je vous donne.
Tout ce que je fis, c’est de neutraliser une installation de Ruby et de laisser celle gérable via des ports. Je suggère de faire ceci:
/usr
au lieu de /usr/local
) rubygems
J'ai eu un problème similaire sur Ubuntu en raison de l'installation de plusieurs copies de Ruby. (1.8 et 1.9.1) Malheureusement, j'ai besoin des deux. La solution consiste à utiliser:
$ Sudo update-alternatives --config Ruby
There are 2 choices for the alternative Ruby (providing /usr/bin/Ruby).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/Ruby1.8 50 auto mode
1 /usr/bin/Ruby1.8 50 manual mode
2 /usr/bin/Ruby1.9.1 10 manual mode
Press enter to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/bin/Ruby1.9.1 to provide /usr/bin/Ruby (Ruby) in manual mode.
Après avoir effectué cette offre groupée, vous avez réussi.
OK, je suis un Noob Ruby, mais je l’ai corrigé légèrement différemment par rapport aux réponses fournies ici, donc j'espère que cela aidera quelqu'un d’autre (tl; dr: j’ai utilisé RVM pour faire basculer la version du système Ruby sur celle qui est attendue par rubygems).
Tout d’abord, énumérer tous les rubis mentionnés par Eimantas était un bon point de départ:
> which -a Ruby
/opt/local/bin/Ruby
/Users/Brian/.rvm/rubies/Ruby-1.9.2-p290/bin/Ruby
/Users/Brian/.rvm/bin/Ruby
/usr/bin/Ruby
/opt/local/bin/Ruby
L'instance Ruby par défaut utilisée par le système semblait être 1.8.7:
> Ruby -v
Ruby 1.8.7 (2010-06-23 patchlevel 299) [i686-darwin10]
rubygems utilisait la version 1.9.2 gérée par RVM:
> gem env | grep 'Ruby EXECUTABLE'
- Ruby EXECUTABLE: /Users/Brian/.rvm/rubies/Ruby-1.9.2-p290/bin/Ruby
C'était donc le problème. Je n'utilise pas activement Ruby moi-même (il s'agit simplement d'une dépendance d'un script de système de construction que j'essaie d'exécuter), je ne me suis donc pas soucié de savoir quelle version était active à d'autres fins. Comme rubygems s’attendait à la version 1.9.2 déjà gérée par RVM, j’ai simplement utilisé RVM pour faire basculer le système et utiliser la version 1.9.2 par défaut:
> rvm use 1.9.2
Using /Users/Brian/.rvm/gems/Ruby-1.9.2-p290
> Ruby -v
Ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.3.0]
Après cela, mon problème "aucun fichier de ce type" a disparu et mon script a commencé à fonctionner.
Je voudrais juste ajouter que dans mon cas, rubygems
n'était pas installé.
Lancer Sudo apt-get install rubygems
a résolu le problème!
Essayez de démarrer le projet avec:
./script/server
au lieu de script/server
si vous utilisez Ruby 1.9.2 (de étrange incapacité à exiger config/boot après la mise à niveau vers Ruby 1.9.2 )
Si quelqu'un d'autre recherche ce problème dans Google, j'ai pu corriger le mien en trouvant le dossier "rubygems" que je voulais utiliser et en l'ajoutant à ma variable d'environnement $ RUBYLIB.
find / -name "rubygems" -print
Une fois que vous l'avez trouvé, ajoutez le répertoire parent à votre environnement. En bash, comme ça:
export RUBYLIB=/path/to/parent
Maintenant, si vous exécutez gem, il devrait choisir le bon répertoire de bibliothèques, et vous êtes prêt à fonctionner.
J'ai eu un problème similaire et je l'ai résolu en configurant RUBYLIB env.
Dans mon environnement, j'ai utilisé ceci:
export RUBYLIB=$Ruby_dir/lib/Ruby/1.9.1/:$Ruby_dir/lib/Ruby/1.9.1/i686-linux/:$RUBYLIB
J'ai eu un problème similaire, en exécutant simplement un script Ruby trivial qui demandait simplement la gemme que je voulais ... j'ai reçu ce message d'erreur. Quand j'ai changé l'incantation de:
Ruby test.rb
à
Ruby -rubygems test.rb
Semblait travailler.
gem install bundler
résolu le problème pour moi.
Si vous avez plusieurs Ruby installés, il suffit peut-être de supprimer l'un d'entre eux. Sous MacosX avec l'installation de ports supplémentaires, supprimez l'installation des ports avec:
Sudo port -f uninstall Ruby
Il s’agit de la première réponse lorsque Google 'require': cannot load such file -- ubygems (LoadError)
après Google corrige automatiquement les "ubygems" en "rubygems". Il s’est avéré qu’il s’agissait d’un changement intentionnel entre Ruby 2.4 et 2.5 ( Bug # 14322 ). Les scripts qui détectent le répertoire gems de l'utilisateur sans prendre en compte la version de Ruby échoueront probablement.
Ruby 2.4
Ruby -rubygems -e 'puts Gem.user_dir'
Ruby 2.5
Ruby -rrubygems -e 'puts Gem.user_dir'
J'ai également eu ce problème… .. Ma solution est de supprimer le fichier Gemfile.lock et d'installer à nouveau Gems
Le simple fait d'utiliser /bin/bash --login
m'a fait l'affaire, bizarrement. Je ne peux pas l'expliquer.
J'ai également rencontré le même problème en utilisant rbenv + passagers + nginx. ma solution consiste simplement à ajouter ces 2 lignes de code à votre configuration nginx:
passenger_default_user root;
passenger_default_group root;
la réponse détaillée est ici: https://stackoverflow.com/a/15777738/445908