Upgrade a Snow Leopard
Oggi è arrivato in office Snow Leopard e abbiamo deciso di aggiornare i nostri iMac sperando di non incappare in qualche incompatibilità con i software che utilizziamo. Tutto è filato liscio (non abbiamo dovuto ripristinare backup) anche se ci sono stati alcuni inconvenienti. Per questo vi consiglio (a parte un backup dei file più importanti) di salvare i seguenti file che l’aggiornamento va a sovrascrivere, nel caso in cui abbiate avuto la necessità di cambiarli:
/etc/hosts
/etc/apache2/httpd.conf
Inoltre se utilizzate MacPorts per installare i pacchetti software (tipo ruby, mysql, tomcat) effettuate un backup su file del nome dei pacchetti installati con il comando:
port installed > myports.txt
Una volta effettuato l’aggiornamento non è stato più possibile lanciare il comando port, ottenendo il seguente errore:
1 dlopen: no suitable image found. Did find: 2 /opt/local/share/macports/Tcl/pextlib1.0/Pextlib.dylib: mach-o, but wrong architecture 3
Per risolvere il problema su Snow Leopard scaricate ed installate http://distfiles.macports.org/MacPorts/MacPorts-1.8.0-10.6-SnowLeopard.dmg
Poi aggiornate il repositorio dei pacchetti con il comando
sudo port selfupdate
Per ricompilare tutti i pacchetti lanciate il comando:
sudo port upgrade --force installed
per aggiornare solamente quelli più vecchi:
sudo port upgrade outdated
A questo punto installate XCode dal DVD di Snow Leopard e controllate le gemme da reinstallare a 64 bit con lo script http://gist.github.com/178178.
Nel caso in cui abbiate dei problemi con la gemma ruby di mysql reinstallatela con il comando:
1 sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/opt/local/lib/mysql5/bin/mysql_config 2
Se ottenete il seguente errore:
1 dyld: lazy symbol binding failed: Symbol not found: _mysql_init 2 Referenced from: /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/lib/mysql_api.bundle 3 Expected in: flat namespace 4 5 dyld: Symbol not found: _mysql_init 6 Referenced from: /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/lib/mysql_api.bundle 7 Expected in: flat namespace
oppure:
1 Status: 500 Internal Server Error 2 uninitialized constant MysqlCompat::MysqlRes
e avete il mysql installato tramite port, ricompilatelo di nuovo a 64 bit con il comando:
sudo port upgrade mysql5
Se trovate altre complicazioni segnalatele pure nei commenti, grazie.


oh non legge il comando (alemeno su ie7) per reinstallare la gemma ruby di mysql! しあお
Ti pareva che non facesse… su safari e firefox funziona… meno male non c’è su Snow Leopard ie7!
ora simo da un occhio!
Utili accorgimenti, ma nel “mio piccolo”, non ho avuto problemi di sorta con l’upgrade a sl con il file host - invece mi ha cancellato tutti i db mysql che fortunatamente erano backuppati - (thanks god!) ma ho dovuto ricompilare diverse gems per fare si che di nuovo merb non girasse come il traffico della uggiosa Milano!:)
decisamente utile per chi non usa “solo” rails:)
http://blog.costan.us/2009/07/rebuild-your-ruby-gems-if-you-update-to.html
Grazie per la segnalazione del link e per la puntualizzazione sui db mysql… Non mi ero accorto perché abbiamo un server debian su cui facciamo girare mysql in rete e non in locale.
Ho installato MySql 64 bit e relativa gemma 2.8.1: sudo env ARCHFLAGS=”-arch x8664″ gem install mysql — –with-mysql-config=/usr/local/mysql/bin/mysqlconfig
Ma al comando: rake db:migrate l’errore è il fatidico (da giorni): rake aborted!
uninitialized constant MysqlCompat::MysqlRes
Ho sperimentato tutte le soluzioni che sono riuscito a trovare in rete senza cavarne nulla.
Ho Rails 2.3.4 e Ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-darwin9.6.0].