2010-11-11 8 views
22

Próbuję zainstalować szyny w systemie Ubuntu 10.04. Do tej pory wykonałem następujące polecenia:Błąd Instalacja szyn w systemie Ubuntu 10.04

apt-get install build-essential libapache2-mod-passenger apache2 rubygems ruby1.8-dev libopenssl-ruby 
gem install fastthread 
gem install rails 

Fastthread zainstalowany z łatwością. Jednak próby zainstalowania szyn powoduje:

ERROR: Error installing rails: 
    bundler requires RubyGems version >= 1.3.6 

Więc starałem gem -v który zwrócony 1.3.5.

Jak zaktualizować rubygem? apt-get nie zostanie zainstalowany powyżej wersji 1.3.5. I gem update --system skutkuje:

ERROR: While executing gem ... (RuntimeError) 
    gem update --system is disabled on Debian. RubyGems can be updated using the official Debian repositories by aptitude or apt-get. 

Więc teraz ja po prostu nie można zainstalować szyny, bo potrzebuję nowszą wersję RubyGems i ubuntu nie pozwoli mi zaktualizować obecną wersję RubyGems.

Na marginesie, próbowałem zainstalowane szyny poprzez apt-get install rails które wydawały się do pracy, ale nie widzę rails jako gem po wpisaniu gem list. O co w tym chodzi?

Inna uwaga: Wynik gem list jest:

*** LOCAL GEMS *** 

abstract (1.0.0) 
actionmailer (3.0.1, 3.0.0) 
actionpack (3.0.1, 3.0.0) 
activemodel (3.0.1, 3.0.0) 
activerecord (3.0.1, 3.0.0) 
activeresource (3.0.1, 3.0.0) 
activesupport (3.0.1, 3.0.0) 
arel (2.0.1, 1.0.1) 
builder (2.1.2) 
erubis (2.6.6) 
fastthread (1.0.7) 
i18n (0.4.2) 
mail (2.2.9) 
mime-types (1.16) 
mysql (2.8.1) 
polyglot (0.3.1) 
rack (1.2.1) 
rack-mount (0.6.13) 
rack-test (0.5.6) 
railties (3.0.1, 3.0.0) 
rake (0.8.7) 
rubygems-update (1.3.7) 
thor (0.14.4) 
treetop (1.4.8) 
tzinfo (0.3.23) 

Zakładam instalacji szyny przez apt-get zainstalowane te kamienie? Przed zainstalowaniem szyn przez apt-get miałem tylko mysql i fastthread.

+0

Mam dokładnie ten sam problem. Czy kiedykolwiek byłeś dla ciebie rozwiązany? – Genadinik

+0

Zabawne jest to, że wciąż mam tę wiadomość po zainstalowaniu rubygemów 1.7.2 :) – Genadinik

Odpowiedz

6

Musisz ręcznie zainstalować rubygems 1.3.7 (wget ze strony internetowej, wyodrębnij, uruchom setup.rb).

6

Zainstaluj rvm i przejąć kontrolę nad swoim środowiskiem ruby.

http://rvm.io/

+1

Fábio ma rację. Wiele dystrybucji Linuksa jest w tyle i nie rozumie aktualnego stanu świata Ruby. Podobne problemy występują również w Pythonie. RVM rozwiązuje ten problem (i zyskujesz trochę elastyczności za darmo!). Odkąd używam RVM (i Bundler), nie mam problemów z instalowaniem klejnotów na Ubuntu lub Mac OS X. – Scott

1

Z jakiegoś powodu pakiet Debian/Ubuntu Ruby nie zawiera bibliotekę rubygems. Co gorsza, RubyGems został dołączony do Ruby 1.9.x, ale jeśli spróbujesz zainstalować go za pomocą apt-get, menedżer pakietów zmusi Cię do zainstalowania ich jako dwóch oddzielnych pakietów.

Pakiet Debian/Ubuntu RubyGems jest przestarzały, jak zauważyłeś, i aby jeszcze bardziej skomplikować sprawę, nie możesz uaktualnić spakowanej wersji RubyGems po prostu instalując na niej nowe wersje RubyGems, ponieważ system jest załatany, aby zapobiec do wykonania zadania, tak jak doświadczyłeś.

Moja sugestia to uniknięcie używania wersji pckaged Ubuntu/Debian. alternatywy to:

  1. dla rozwoju systemu, użyj RVM
  2. na serwerze produkcyjnym, zainstalować Ruby od źródła. Jeśli chcesz Ruby < 1.9, możesz użyć edycji Ruby Enterprise, która jest również dostępna jako pakiet Debian/Ubuntu. Jeśli chcesz Ruby 1.9.x, skompiluj go ze źródła.
42

Jest też perełka dostępne który obsługuje aktualizację

sudo gem install rubygems-update 
sudo /var/lib/gems/1.8/bin/update_rubygems 
+0

pracował jak urok, dzięki! –

+4

Doskonała odpowiedź. Bardzo mi pomogło. W moim przypadku po prostu miałem inną wersję klejnotów, więc musiałem zrobić: sudo /var/lib/gems/1.9.1/bin/update_rubygems –

+1

Tą odpowiedzią było wyjście z Ubuntu/Ruby/Gem NIGHTMARE, dziękuję! – mkoistinen

2

ten jest prawdopodobnie nowszą sposób z tym, że nie był dostępny wcześniej, ale wpadłem

sudo gem update --system 

i dała mi najnowszą wersję.