Categorie
Informatica Mac

Aggiornamenti di fine anno

Ruby On Rails, il famoso framework mvc per il web, è stato aggiornato alla versione 2.0. Sul mio OSX Leopard è installato di default la versione 1.2.6, ma aggiornarlo è semplicissimo, questione di un

iwave:~ davide$ sudo gem update rails

e di un paio di minuti (ma anche meno) e avrete

iwave:~ davide$ rails --version
Rails 2.0.2

Inoltre ho installato il database MySql alla versione 5.0.51.
Non esistendo ancora un pacchetto compatibile per OSX Leopard, bisogna installarselo da soli.
Fate come me, è questione di meno di dieci minuti, compilazione compresa.

  • create una cartella di lavoro
    $ mkdir ~/mysqlsrc
    $ cd ~/mysqlsrc
    
  • scaricate i sorgenti, decomprimeteli e entrate nella loro cartella
    $ curl -O \ 
    http://na.mirror.garr.it/get/Downloads/MySQL-5.0/mysql-5.0.51.tar.gz
    $ tar xzvf mysql-5.0.51.tar.gz
    $ cd mysql-5.0.51
    
  • configuriamo per la compilazione
    $ CC=gcc CFLAGS="-Os" CXX=gcc CXXFLAGS="-Os" ./configure \
    --prefix=/usr/local/mysql --with-extra-charsets=complex \
    --enable-thread-safe-client --enable-local-infile \
    --enable-shared
    
  • adesso siamo pronti a compilare (se avete un dual core lasciate -j5, altrimenti -j2)
    $ make -j5 
    
  • e ora possiamo installare, prendendo i privilegi di amministratore
    $ sudo make install
    

    questo installerà mysql e tutto il necessario in /usr/local/mysql

  • ora andiamo a configurare le cartelle di mysql

    $ cd /usr/local/mysql
    $ sudo ./bin/mysql_install_db --user=mysql
    $ sudo chown -R mysql ./var
    

    e poi procedete come sempre a settare la password di root e gli utenti del db

  • ora vorremmo che il server mysql parta automaticamente ad ogni avvio, vero? aggiungiamolo a launchd
    creiamo questo file in Documents col nome com.mysql.mysqld.plist

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
     "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>KeepAlive</key>
        <true/>
        <key>Label</key>
        <string>com.mysql.mysqld</string>
        <key>Program</key>
        <string>/usr/local/mysql/bin/mysqld_safe</string>
        <key>RunAtLoad</key>
        <true/>
        <key>UserName</key>
        <string>mysql</string>
        <key>WorkingDirectory</key>
        <string>/usr/local/mysql</string>
    </dict>
    </plist>	
    

    e copiamolo con i privilegi di root in /Library/LaunchDaemons/

    $ cd ~/Documents 
    $ sudo cp ~/Documents/com.mysql.mysqld.plist /Library/LaunchDaemons/
    $ sudo chown root /Library/LaunchDaemons/com.mysql.mysqld.plist  
    

    e diciamo a launchd di attivare il demone

    $ sudo launchctl \ 
     load -w /Library/LaunchDaemons/com.mysql.mysqld.plist
    

    questo lancerà il server mysql. Eventualmente per chiuderlo da linea di comando

    $ sudo launchctl \ 
     unload -w /Library/LaunchDaemons/com.mysql.mysqld.plist
    
  • Il binding per mysql verso rails va aggiornato così: (per processori INTEL!!!)
    $ sudo env ARCHFLAGS="-arch i386" gem install mysql \
    --with-mysql-config=/usr/local/mysql/bin/mysql_config
    

    Finito!!! Ora il nostro sistema Ruby on Rails è aggiornato e pronto a tutto!

  • PS: se eventualmente volessimo cancellare mysql

    $ sudo launchctl \ 
     unload -w /Library/LaunchDaemons/com.mysql.mysqld.plist
    $ cd ~/mysqlsrc/mysql-5.0.51
    $ sudo make uninstall
    $ sudo rm /Library/LaunchDaemons/com.mysql.mysqld.plist
    

    Buon divertimento