2010-05-12 5 views
0

Je rencontre des problèmes avec les versions en conflit de Ruby que j'ai installées. J'ai eu 1.8.6 et ensuite installé 1.8.7 et cela a causé des problèmes. J'obtiens l'erreur suivante en essayant de courir mon ruby ​​sur rails app:Versions ruby ​​en conflit

/usr/local/lib/ruby/1.8/i686-linux/rbconfig.rb:7: ruby lib version (1.8.6) doesn't match executable version (1.8.7) (RuntimeError) 

Je voudrais retirer 1.8.7 en quelque sorte et il suffit d'utiliser 1.8.6 mais ont aucune idée de comment s'y prendre.

Répondre

0

Oui, la définition du chemin:

export PATH=yourrubypath/bin:$PATH 

devrait le faire.

Je vous recommande d'installer rvm, de cette façon vous pouvez exécuter différentes versions de rubis et gérer des ensembles de pierres précieuses d'une manière très facile

Les instructions d'installation sont here. Cependant, il réduit essentiellement à:

bash < <(curl http://rvm.beginrescueend.com/releases/rvm-install-head) 

Ensuite, vous pouvez installer un rubis plus récente de la source (il le compiler!):

$ rvm install 1.9.1 ; rvm 1.9.1 

$ ruby -v 

ruby 1.9.1p243 (2009-07-16 revision 24175) [x86_64-linux] 

$ which ruby 

/home/you/.rvm/ruby-1.9.1-p243/bin/ruby 

Vous pouvez revenir au « système » celui qui fait:

$ rvm system 
+0

Merci beaucoup. Je ne suis même pas sûr de ce que mon rubis chemin est. Ceci est la sortie de whereis ruby: /usr/bin/ruby1.8/usr/bin/ruby ​​/ usr/lib/ruby ​​/ usr/local/bin/ruby ​​/ usr/local/lib/ruby ​​/ usr/share/man/man1/ruby.1.gz – DavidP6

0

Changez juste votre $ PATH pour pointer vers la version que vous voulez. J'installe ruby ​​à partir de l'archive tar (et non du paquet distribution). De cette façon, je peux avoir plusieurs versions différentes fonctionnant en même temps, je dois juste mettre à jour $ PATH dans la session que je veux utiliser une version différente.

+1

Merci pour la tête. Je suis un peu nouveau pour tout cela, où dois-je configurer le chemin de $? – DavidP6

0

Votre chemin le plus simple et votre preuve d'avenir utiliseraient également rvm. Téléchargez la version de ruby ​​que vous voulez avec rvm et faites-en la version par défaut.

Installation: http://rvm.beginrescueend.com/rvm/install/

Rendre par défaut:
rvm 1.8.6 --default

L'ensemble du processus prendrait pas plus de 15 minutes. Tout est clairement expliqué dans ceci. Votre environnement sera avant fini de regarder ce podcast:
http://railscasts.com/episodes/200-rails-3-beta-and-rvm

3

Ran dans ce même numéro et pensais partager mes conclusions. Il y avait une version 1.8.7 ruby ​​installée par un rpm (centos 6.3), et j'ai compilé 1.9.3 à partir des sources et je l'ai placé dans un répertoire/opt/upnxt/ruby. J'ai changé mon environnement:

export PATH=/opt/upnxt/ruby/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin 
export LD_LIBRARY_PATH=/opt/upnxt/ruby/lib64 
export RUBYPATH=/opt/upnxt/ruby/bin 
export RUBY_HOME=/opt/upnxt/ruby 
export RUBYLIB=/opt/upnxt/ruby/lib64/ruby/1.9.1:/opt/upnxt/ruby/lib64/ruby/1.9.1/x86_64-linux 
export GEM_HOME=/opt/upnxt/ruby/lib64/ruby/1.9.1 
export GEM_PATH=/opt/upnxt/ruby/lib64/ruby/1.9.1:/opt/upnxt/ruby/lib64/ruby/gems/1.9.1 

puis lors de l'exécution:

$ ruby /opt/upnxt/ruby/bin/gem environment 
RubyGems Environment: 
    - RUBYGEMS VERSION: 1.8.23 
    - RUBY VERSION: 1.9.3 (2012-11-10 patchlevel 327) [x86_64-linux] 
    - INSTALLATION DIRECTORY: /opt/upnxt/ruby/lib64/ruby/1.9.1 
    - RUBY EXECUTABLE: /usr/bin/ruby 
    - EXECUTABLE DIRECTORY: /opt/upnxt/ruby/lib64/ruby/1.9.1/bin 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86_64-linux 
    - GEM PATHS: 
    - /opt/upnxt/ruby/lib64/ruby/1.9.1 
    - /opt/upnxt/ruby/lib64/ruby/gems/1.9.1 
    - GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :benchmark => false 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - REMOTE SOURCES: 
    - http://rubygems.org/ 

Lors de l'exécution sans la commande 'Ruby' devant, je recevrais:

$ /opt/upnxt/ruby/bin/gem environment 
/opt/upnxt/ruby/lib64/ruby/1.9.1/x86_64-linux/rbconfig.rb:7: ruby lib version (1.9.3) doesn't match executable version (1.8.7) (RuntimeError) 
    from /opt/upnxt/ruby/lib64/ruby/1.9.1/rubygems.rb:31:in `require' 
    from /opt/upnxt/ruby/lib64/ruby/1.9.1/rubygems.rb:31 
    from /opt/upnxt/ruby/bin/gem:8:in `require' 
    from /opt/upnxt/ruby/bin/gem:8 

en raison de la par défaut #!/usr/bin/ruby ​​comme indiqué plus haut. Je suppose que c'est pourquoi on devrait utiliser "#!/Bin/env ruby" comme un shebang à la place (ou "#!/ usr/bin/env ruby ​​")

Si quelqu'un peut me dire comment changer le" RUBY EXECUTABLE "de la sortie" gem environment "donc je n'aurai pas besoin de le spécifier sur la ligne de commande, je serais reconnaissant

acclamations,

Gerrit