Anche su FreeBSD è possibile installare l'application server Glassfish, nonostante non sia specificato nel sito ufficiale, tutto grazie alla portabilità di Java. L'unico inconveniente è che non è disponibile un port per l'installazione automatica, ma il problema è facilmente risolvibile.
Prima di tutto occorre installare OpenJDK 6, quindi seguiamo i passi descritti qui.
Successivamente occorre apportare qualche modifica al file /etc/hosts, in modo che sia presente, l'hostname della macchina:
::1 localhost localhost.my.domain 127.0.0.1 java.intranet.net 127.0.0.1 localhost localhost.my.domain
Questo passaggio è assolutamente necessario, diversamente non sarà possibile far partire Glassfish. Quindi scarichiamo Glassfish in versione multilingua e senza installer:
# fetch http://dlc.sun.com.edgesuite.net/glassfish/3.1/release/glassfish-3.1-ml.zip
decomprimiamo il file e possiamo anche far partire Glassfish:
# unzip glassfish-3.1-ml.zip # cd glassfish3 # bin/asadmin start-domain
Avvio automatico di Glassfish
Far partire manualmente Glassfish non è il massimo della praticità, quindi faremo in modo di farlo partire in automatico al boot, o comuque utilizzando uno script rc per gestirlo. Creiamo il file /usr/local/etc/rc.d/glassfish3 e permettiamone l'esecuzione come script
# touch /usr/local/etc/rc.d/glassfish3 # chmod +x /usr/local/etc/rc.d/glassfish3
Lo script potrà essere composto così:
#!/bin/sh # # Startup script for Glassfish v3.x Application server. # # # PROVIDE: glasshfish3 # REQUIRE: DAEMON # Define these glassfish3_* variables in one of these files: # /etc/rc.conf # /etc/rc.conf.local # /etc/rc.conf.d/glassfish3 # # glassfish3_enable : bool # Enable Glassfish Application Server ("YES") or not ("NO", the default). # . /etc/rc.subr name="glassfish3" rcvar=`set_rcvar` : ${glassfish3_user="glassfish3"} : ${glassfish3_root="/usr/local/glassfish3"} asadmin () { eval "su ${glassfish3_user} -c '${glassfish3_root}/bin/asadmin "$1"'" } glassfish3_start () { echo "Starting Glassfish v3:" asadmin "start-domain" } glassfish3_stop () { echo "Stopping Glassfish v3:" asadmin "stop-domain" } glassfish3_restart () { echo "Restarting Glassfish v3:" asadmin "stop-domain" asadmin "start-domain" } start_cmd="glassfish3_start" stop_cmd="glassfish3_stop" restart_cmd="glassfish3_restart" load_rc_config $name : ${glassfish3_enable="NO"} cmd="$1" [ $# -gt 0 ] && shift run_rc_command "${cmd}"
Ora dobbiamo creare l'utente glassfish3:
# adduser ... Username : glassfish3 Password : <random> Full Name : Uid : 1002 Class : Groups : glassfish3 Home : /usr/local/glassfish3 Home Mode : Shell : /bin/sh Locked : no ...
Decomprimiamo il pacchetto di Glassfish precedentemente scaricato nella cartella /usr/local/glassfish3 e assegnamola all'utente glassfish3:
# cd /usr/local # unzip ~/glassfish-3.1-ml.zip # chown -R glassfish3:glassfish3 glassfish3
Ora possiamo far partire Glassfish al boot della macchina aggiungendo a /etc/rc.conf:
glassfish3_enable="YES"
Conclusioni
Cosa si guadagna e cosa si perde ad installare Glassfish 3 su FreeBSD? Il guadagno è evidente: possiamo utilizzare nel nostro sistema operativo preferito un robusto ed efficiente application server Java che a sua volta beneficierà della robustezza, sicurezza ed affidabilità di FreeBSD (anche le prestazioni complessive migliorano, ma qui non dati numerici per un contfronto diretto). Purtroppo la contropartita per i vantaggi ottenuti è che non potremmo utilizzare l'updatetoold di Glassfish, quindi dovremmo fare gli aggiornamenti dell'application server manualmente.




