domenica 16 ottobre 2011

Installazione di Ruby via RVM

Per agevolare l'installazione dell'ambiente di sviluppo/runtime e' stato creato un tool molto utile, che facilita il procedimento.

Tramite RVM e' possibile scaricare e installare Ruby nelle varie versioni e soprattutto switchare in modo semplice dall'una all'altra.

Per installare RVM lanciare (vedere le istruzioni per installazioni MultiUser):
bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
aggiungere poi la riga nel .bash_profile in modo da poter sfruttare rum da shell :

echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" ' >> ~/.bash_profile
 a questo punto l'installazione e' terminata, quindi tramite :
rvm install (esempio : rvm install 1.9.2)
si esegue l'installazione di una nuova versione di ruby.

Per usare una versione si usa : rvm use
Per impostare una versione come default : rvm --default
Se si desiderare tornare alla versione installata con il sistema usare : rum system
Se si desiderare tornare alla versione di default usare : rvm default

MAC OSX Lion, problemi con Mysql da Ruby

Con riferimento al post del 3 aprile 2011, probabilmente dopo l'aggiornamento di Snow leopard a Lion, una serie di problemi tra Mysql e Ruby si sono ripresentati, questa volta in un'altra forma.

  Status: 500 Internal Server Error
  uninitialized constant MysqlCompat::MysqlRes

    /Library/Ruby/Gems/1.8/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:466:in `load_missing_constant'
    /Library/Ruby/Gems/1.8/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:106:in `const_missing'
    /Library/Ruby/Gems/1.8/gems/activerecord-2.3.11/lib/active_record/connection_adapters/mysql_adapter.rb:9:in `define_all_hashes_method!'
    /Library/Ruby/Gems/1.8/gems/activerecord-2.3.11/lib/active_record/connection_adapters/mysql_adapter.rb:68:in `mysql_connection'
per poter risolvere il problema ho lanciato i comandi (simile a quello del post precedente) :
sudo gem uninstall mysql
sudo env ARCHFLAGS="-arch x86_64" gem install mysql -v 2.7 -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

malgrado questi un'ulteriore errore e' apparso :

  dlopen(/Library/Ruby/Gems/1.8/gems/mysql-2.7/lib/mysql.bundle, 9): Library not loaded: libmysqlclient.18.dylib
  Referenced from: /Library/Ruby/Gems/1.8/gems/mysql-2.7/lib/mysql.bundle
  Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql-2.7/lib/mysql.bundle
    /Library/Ruby/Gems/1.8/gems/mysql-2.7/lib/mysql.bundle
    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:36:in `require'
    /Library/Ruby/Gems/1.8/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:182:in `require'
per risolvere questo problema e' stato necessario lanciare :

sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib /Library/Ruby/Gems/1.8/gems/mysql-2.7/lib/mysql.bundle
sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib /Library/Ruby/Gems/1.8/gems/mysql-2.7/mysql.bundle

con questi passi il problema e' stato risolto.