Quando i fantastici quattro ‘girano in casa’
Venerdì, 30 Maggio 2008Ovvero come compilare ed installare Ruby, Rails Imagemagick Rmagick nella propria /home/ senza chiedere aiuto a ’sudo’: questa procedura ha dato ottimi risultati su DreamHost, ma dovrebbe funzionare egregiamente su ogni host.
Il problema nasce dal fatto che nessuna azienda di hosting renderá mai disponibile la versione piú recente dei pacchetti installati sul server per non incorrere in troppi bugs e cosí capita che proprio quando fai un deploy dell’applicazione Rails che in localhost funziona tranquillamente, in produzione ha un comportamento differente e solitamente sono errori fatali!
1) PREPARARE L’AMBIENTE
editare il file ~/.bash_profile come segue
PS1=’[\h:$PWD]$ ‘
alias restart=”touch tmp/restart.txt” *
EDITOR=”/usr/bin/nano”
. .bashrc
*opzionale: é utile su DreamHost per riavviare le applicazioni Rails che girano in produzione con Passenger
editare il file ~/.bashrc
export LD_LIBRARY_PATH=$HOME/.packages/lib
export PATH=$HOME/.packages/bin:$HOME/.gems/bin:${PATH}
export GEM_HOME=$HOME/.gems
export GEM_PATH=$GEM_HOME:/usr/lib/ruby/gems/1.8
export LDFLAGS=-L/$HOME/.packages/lib
export LD_RUN_PATH=$HOME/.packages/lib
export CPPFLAGS=-I/$HOME/.packages/include
chiediamo alla shell di ricaricare i file di configurazione e verifichiamo che tutto sia stato caricato correttamente:
$ env
env vi mostrerá un elenco di variabili d’ambiente tra le quali anche quelle appena aggiunte: se non é cosí scommetto 5€ che non avete scritto i file di configurazione nella vostra home: rimediare con cd ~ e ricominciare!
2) CREARE LE DIRECTORY OPERATIVE
3) SCI! Scaricare, Compilare, Installare
== READLINE ==
$ wget ftp://ftp.cwru.edu/pub/bash/readline-5.2.tar.gz
$ tar zxvf readline-5.2.tar.gz
$ cd readline-5.2
$ ./configure –prefix=$HOME/.packages
$ make
$ make install
$ rm readline-5.2.tar.gz && rm -Rf readline-5.2
$ cd ~
== RUBY ==
$ wget ftp://ftp.ruby-lang.org:21/pub/ruby/ruby-1.8.6-p114.tar.gz
$ tar zxvf ruby-1.8.6-p114.tar.gz
$ cd ruby-1.8.6-p114
$./configure –prefix=$HOME/.packages –with-readline-dir=$HOME/.packages
$ make
$ make install
$ rm ruby-1.8.6-p114.tar.gz && rm -Rf ruby-1.8.6-p114
$ cd ~
controlliamo?
/home/yourhome/.packages/bin/ruby
$ ruby -v
ruby 1.8.6 (2008-03-03 patchlevel 114) [i686-linux]
== RubyGems ==
$ wget http://rubyforge.org/frs/download.php/20989/rubygems-0.9.4.tgz
$ tar zxvf rubygems-0.9.4.tgz
$ cd rubygems-0.9.4
$ ruby setup.rb config –prefix=$HOME/.packages
$ ruby setup.rb setup
$ ruby setup.rb install –prefix=$HOME/.packages/
$ rm rubygems-0.9.4.tgz && rm -Rf rubygems-0.9.4
$ cd ~
controlliamo?
/home/yourhome/.packages/bin/gem
$gem list -l
*** LOCAL GEMS ***
actionmailer (1.3.6, 1.2.5)
actionpack (1.13.6, 1.12.5)
actionwebservice (1.2.6, 1.1.6)
activerecord (1.15.6, 1.14.4)
activesupport (1.4.4, 1.3.1)
login_generator (1.2.2)
rails (1.2.6, 1.1.6)
rake (0.8.1, 0.7.1)
rmagick (2.3.0, 1.14.1)
rubygems-update (1.1.1)
sources (0.0.1)
ora é possibile..
oppure
== ImageMagick ==
$ wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz
$ tar xvfz ImageMagick.tar.gz
$ cd ImageMagick-6.4.1/
$./configure –prefix=$HOME/.packages -without-perl –with-gslib –with-gs-font-dir=/usr/share/fonts/type1/gsfonts/ && make && make install
(–with-gslib –with-gs-font-dir=/usr/share/fonts/type1/gsfonts/ é richiesto solo da DreamHost!)
$ rm ImageMagick.tar.gz && rm -Rf ImageMagick-6.4.1
$ cd ~
come sempre possiamo controllare che il comando convert di IM sia presente e sia proprio quello appena installato..
/home/yourhome/.packages/bin/convert
l’ultima versione di IM é davvero potente! provate questo, su un’immagine ‘image.jpg’
== RMagick ==
$ wget ‘http://rubyforge.org/frs/download.php/23510/rmagick-1.15.8.gem’
$ gem install -l rmagick-1.15.8.gem — –build-opts –prefix=$HOME/.packages/
$ rm rmagick-1.15.8.gem
A questo punto dimenticare di inserire questa direttiva nel file config/environment.rb delle vostre applicazioni Rails sarebbe davvero un grave errore..
Buon Divertimento!

















































