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.

domenica 3 aprile 2011

MAC OSX problemi con Mysql

Nel processo di spostamento da applicazioni sviluppate su Windows per portarle su MAC OSX, mi sono imbattuto nel ripristinare il funzionamento di varie applicazioni sviluppate in Ruby on Rails con Mysql.

Il primo problema che ho incontrato che non e' presente la Gem di Mysql, quindi il primo punto e' stato eseguire il "gem install" che pero' occorre lanciarlo in una particolare modalita'
sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
a questo punto cercando di lanciare i comandi rake per la creazione del DB (rake db:create:all, rake db:migrate, rake db:seed etc..) incorrevo nell'errore :
uninitialized constant ActiveSupport::Dependencies::Mutex (NameError)
Questo problema e' risolvibile aggiungendo sul file boot.rb il require :
require 'thread'
non volevo pero' aggiungere un comando su un file che in teoria non andrebbe cambiato, quindi ho cercato altre soluzioni.
Ho aggiornato la gem rails da 2.3.5 a 2.3.11, tramite :
gem install rails -v 2.3.11
Cambiato il file environment.rb per utilizzare tale versione e aggiornata l'applicazione tramite :
rake rails:update
Malgrado questo il modulo mysql non funziona ancora e' stato necessario impostare una variabile di ambiente tramite :
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib 


a questo punto tutto funziona, ricevo un NOTE di qualcosa che e' diventato deprecato ma tutto funziona.

SourceIndex.new(hash) is deprecated; From /Library/Ruby/Gems/1.8/gems/rails-2.3.11/lib/rails/vendor_gem_source_index.rb:100:in `new'.

MAC OSX Beyond Compare

Mi capita spesso di utilizzare Beyond Compare su Windows per comparare strutture di Directory, adesso su MAC OSX ero alla ricerca di qualcosa di simile.

Il miglior prodotto gratuito che ho trovato e' : Diffmerge

Scaricabile all'indirizzo :  http://www.sourcegear.com/diffmerge

venerdì 1 aprile 2011

Mac OSX Apache - Forbidden su nuove pagine e risorse

Da poco tempo mi sono avvicinato al mondo Mac OSX, e sono alle prese con il "travasare" : documenti, siti e applicazioni sviluppate e create in ambiente Windows su ambiente Mac.

Spostando i vari siti sull'Apache gia' presente su Snow Leopard, al momento dell'apertura ricevevo un "Forbidden".

Su Internet la soluzione prevalente per la risoluzione del problema e' quella di cambiare httpd.conf per disabilitare il deny from all dalla direttiva .

Siccome non volevo modificare un impostazione di generale del server apache, ma volevo agire solo sulla parte lato utente (quindi sulla Root page che insiste su : "/Users//Sites"), ho risolto cambiando le impostazioni di sicurezza dei file da "-rwx------" a "-rwxr-xr-x" tramite il comando :

chmod -R uo+rx *