Rails On Debian - problem z instalacją ROR na Debianie

Witam,

Próba zainstalowania Rails na Linux Debian daje takie oto skutki:

lucassus@HAL9000:~$ gem install rails /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require': no such file to load -- zlib (LoadError) from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require' from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/package.rb:10 from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require' from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require' from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/format.rb:9 from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require' from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require' from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/installer.rb:11 ... 11 levels... from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:103:in `process_args' from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:74:in `run' from /usr/local/ruby/lib/ruby/site_ruby/1.8/rubygems/gem_runner.rb:39:in `run' from /usr/local/bin/gem:22
Mój linux przedstawia się jako:

lucassus@HAL9000:~$ uname -a Linux HAL9000 2.6.22-3-amd64 #1 SMP Sun Nov 4 18:18:09 UTC 2007 x86_64 GNU/Linux
Ma pokładzie mam zainstalowane wszystkie wymagane biblioteki - zlib, ruby-zlib

Czy ktoś spotkał się z podobnym problemem?
Przy instalacji ROR korzystałem z tutoriala na stronie: http://mentalized.net/journal/2004/12/01/putting_debian_on_ruby_rails/

A jaką masz wersję gem? Jeśli jest mniejsza niż 1.0 spróbuj ją najpierw zaktualizować. W razie problemów rzuć okiem na:
http://weblog.rubyonrails.com/2007/12/19/trouble-installing-new-gems

Zainstalowaną mam najświeższą wersję gem.

Spróbuję usunąć wszystko i zainstalować Ruby+gem jeszcze raz ze źródeł. Rails instalowane z pakietów Debiana niestety w ogule nie chce mi działać.
Mam przeczucie, że problem wynika z architektury mojego procesora, parę razy miałem już problemy z 64 bitami :wink:

Paczki pod Debiana i jego brata Ubuntu nie są niestety zbyt dobre. Zainstaluj Ruby z paczki, następnie RubyGems ze źródeł: link. Nie instaluj gemów (tak jak rails) z paczek. Choćby i dlatego, że w przypadku nowej wersji gema widzisz ją od razu (gem outdated - wyświetla wszystkie paczki, które mają nowszą wersją w rubyforge), a na paczkę trzeba czasem czekać kilka miesięcy…

Architektura 64bit, której sam używam, nie ma tu nic do rzeczy. Gemy to nie binarki, tylko w większości zwykłe źródła Ruby (chyba, że dany gem zawiera extension w C, ale railsów to nie dotyczy).

Rozwiązanie jest prostsze, nie chodzi tu o wersję gemów, tylko o rozszerzenie Rubiego zlib:

`gem_original_require’: no such file to load – zlib (LoadError)

Aby sprawdzić czy masz zlib, wpisz:

irb

require ‘zlib’

Nie powinno rzucić wyjątkiem.

Pod debianopodobnymi dystrybucjami zalecam kompilacje Rubiego ze źródeł.

Kompilacja ze źródeł:

  1. Pobierz źródła, rozpakuj
  2. Odznacz odpowiednie rozszerzenia w pliku ext/Setup, poniżej podaję całkiem rozsądne domyślne ustawienia:

#Win32API
#bigdecimal
curses
#dbm
digest
digest/md5
#digest/rmd160
digest/sha1
digest/sha2
dl
enumerator
#etc
#fcntl
#gdbm
iconv
#io/wait
#nkf
#pty
openssl
#racc/cparse
readline
#sdbm
socket
stringio
strscan
syck
syslog
#tcltklib
thread
#tk
#win32ole
zlib

  1. Standardowo ./configure && make && make install

Wreszcie się udało :wink:
proponuję przenieść tego posta do działu Tips and tricks lub FAQ

wielkie dzięki z pomoc

[quote]make install
./miniruby ./instruby.rb --dest-dir="" --extout=".ext" --make=“make” --mflags="" --make-flags="" --installed-list .installed.list --mantype=“doc”
installing binary commands
installing command scripts
installing library scripts
installing headers
installing manpages
installing extension objects
installing extension scripts[/quote]
Szkoda ze scrypt nie informuje jakie dokladnie ext zostalo zanstalowane, dopiero po kilku minutach zjarzylem sie ze nie mam zlib-dev zainstalowanego abym mogl skompilowac ext/zlib :frowning:

Ludzie z phusion.nl uwtorzyli repozytorium z paczkami z RubyGems i GitHub dla Debiana i Ubuntu.

Dla ludzi używających Debiana/Ubuntu to obecnie najwygodniejszy i najlepiej zintegrowany sposób na instalację i zarządzania bibliotekami Ruby.

Szkoda że tylko beta jest free :frowning:

Ugh. Tylko nie gemy w apcie. To już wolę ręczną “ze źródeł” instalację rubygems.

Jeśli ktoś sam zarządza serwerem lub robi to administrator, z którym jesteśmy w stanie się dogadać to gemy najlepiej instalować poprzez rubygems. Inaczej prosimy się o problemy (takie jak wyżej).