Archivi per la categoria ‘Linux’

Quando i fantastici quattro ‘girano in casa’

Venerdì, 30 Maggio 2008

Ovvero 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

umask 002
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 TZ=ECT # visto che ci siamo impostiamo European Central Time
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:

$. ~/.bash_profile
$ 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

$ mkdir .gems && mkdir .src && mkdir .packages

3) SCI! Scaricare, Compilare, Installare

== READLINE ==

$ cd ~/.src
$ 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 ==

$ cd ~/.src
$ 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?

$ which ruby
/home/yourhome/.packages/bin/ruby
$ ruby -v
ruby 1.8.6 (2008-03-03 patchlevel 114) [i686-linux]

== RubyGems ==

$ cd ~/.src
$ 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?

$ which gem
/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..

$gem update –system

oppure

$ gem install rails –include-dependencies

== ImageMagick ==

$ cd ~/.src
$ 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..

$ which convert
/home/yourhome/.packages/bin/convert

l’ultima versione di IM é davvero potente! provate questo, su un’immagine ‘image.jpg’ ;)

$ convert -font Times -background ‘#0008′ -fill white -gravity center -size 200×40 -pointsize 25 label:”Sono Stupido!” +size image.jpg +swap -gravity south -composite label_image.jpg

== RMagick ==

$ cd ~/.src
$ 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..

ENV['GEM_PATH'] = ‘/home/yourname/.gems’

Buon Divertimento!

Installazione di sqlite3 su ubuntu 7.10 (Gutsy Gibbon)

Mercoledì, 14 Maggio 2008

Oggi ho raso al suolo il mio VPS (Virtual Private Server) di test (Ubuntu 7.10) e una volta reinstallato e riconfigurato tutto volevo fare un prova con rails 2.02 e il suo database di default sqlite3. Amara sopresa:

sudo apt-get install sqlite3
sudo gem install sqlite3-ruby

Building native extensions.  This could take a while

ERROR:  Error installing sqlite3-ruby:

ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb install sqlite3-ruby

checking for sqlite3.h… no

make

make: *** No rule to make target `ruby.h‘, needed by
`sqlite3_api_wrap.o’
.  Stop.

Gem files will remain installed in
/usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.1 for inspection

Dopo varie ricerche su forum e newsgroup ho trovato la soluzione al problema…mancavano le “development libraries”…

Quindi ho ripetuto l’installazione includendo anche le librerie…

sudo apt-get install sqlite3 libsqlite3-dev
sudo gem install sqlite3-ruby

…e tutto ha magicamente funzionato!