Installazione rapida di Tonido su openSUSE
Allora, la settimana scorsa ho aggiornato il portatile a openSUSE 11.4 e, purtroppo, questo ha rotto la mia installazione di MoneyManagerEx, perché serviva un pacchetto per questa nuova distro e quello di Packman è attualmente rotto a causa di alcune modifiche al repo.
Siccome ho un mucchio di spese in attesa di essere inserite nella contabilità, mi serviva urgentemente un’installazione di MMEx funzionante, quindi sono andato sulla sua homepage a cercare l’ultima versione e sistemare il mio pacchetto su OBS, rotto da mesi per colpa della mia pigrizia ¬¬’
Ed è lì che l’ho visto: c’è una versione web di MMEx!!!, e questo è fantastico perché mi permetterebbe di usarlo dal mio nuovo telefono Android senza dover accedere al portatile, “magari è pienamente funzionale dal browser” ho pensato….. Leggendo un po’ di più, ho scoperto che faceva parte di una piattaforma cloud chiamata Tonido. Sembrava un sacco di fastidio solo per far girare l’applicazione, ma quando ho scoperto che Tonido ha un’applicazione Android dedicata, mi hanno convinto!.
Qui ci sono le opzioni di Tonido, che vanno da un’appliance super figa a un servizio cloud, passando per la propria installazione locale. Dato che ho già un VPS, usare Tonido lì sembra una buona soluzione: non devo dipendere dalla pessima connessione del mio ISP né dal fatto che il desktop resti acceso (la compagnia elettrica locale non è una garanzia).
Il VPS gira con openSUSE 11.3 @i586 (cioè la versione a 32 bit). Tonido non fornisce il codice sorgente né tar generici, quindi lavoriamo con i pacchetti deb per Ubuntu. Come cosa da fare, potrei creare un bel pacchetto pulito su OBS per automatizzare la procedura che sto per documentare qui; per ora questa è una “documentazione di un hack veloce, sporco se preferisci”. Inoltre, nota che questa è un’installazione su server dedicato, non prevede “integrazione con il desktop”, che resta fuori.
Prima di tutto, dobbiamo installare alien, per convertire il pacchetto deb in rpm, da cui estrarremo i file.
zypper in http://download.opensuse.org/repositories/openSUSE:/11.3:/Contrib/standard/i586/alien-8.80-1.2.i586.rpmQuesto pacchetto viene dal repository Contrib, zypper si occuperà delle dipendenze per noi. Ora dobbiamo scaricare il pacchetto deb originale.
vps:~ # mkdir tmp
vps:~/tmp # wget http://www.tonidoid.com/download.php?TonidoSetup_i686.deb
vps:~/tmp # mv download.php?TonidoSetup_i686.deb TonidoSetup_i686.debFaremo questa conversione per estrarre i file: deb -> rpm -> cpio
vps:~/tmp # alien -r TonidoSetup_i686.deb
vps:~/tmp # mkdir extracted
vps:~/tmp # cd extracted
vps:~/tmp/extracted # rpm2cpio ../tonido-2.26.0.13504-2.i386.rpm |cpio -idmvLa procedura estrarrà tutti i file in ~/tmp/extracted; spostiamo i file in un posto appropriato e puliamo gli avanzi…
vps:~/tmp/extracted # mv usr/local/tonido /opt
vps:~/tmp/extracted # cd
vps:~ # rm -rf tmpLo script di avvio incluso è /opt/tonido/tonido.sh; ho cambiato la posizione di alcuni file per rendere le cose più “standard”. Ecco un diff con le modifiche (chiedi a google come applicare una patch)
--- tonido.sh.orig 2011-03-20 01:51:26.000000000 -0300
+++ tonido.sh 2011-03-20 01:52:52.000000000 -0300
@@ -11,9 +11,9 @@ PATH=/usr/local/sbin:/usr/local/bin:/sbi
NAME=tonidoconsole
USER=`whoami`
DESC="Tonido Service"
-TONIDODIR=`echo /usr/local/tonido/`
-PIDFILE=/tmp/tonido_$USER.pid
-LOGFILE=/tmp/tonido_$USER.log
+TONIDODIR=`echo /opt/tonido/`
+PIDFILE=/var/run/tonido.pid
+LOGFILE=/var/log/tonido.log
# Gracefully exit if the package has been removed.
test -x $TONIDODIR/tonidoconsole || exit 0Passo successivo, sistemare le dipendenze. Se stai installando Tonido su un’altra distro, dovresti controllare con ldd /etc/tonido/tonidoconsole quali sono le librerie mancanti; nel mio caso questo ha risolto le dipendenze:
zypper in libopenssl0_9_8 mozilla-nss libpng12-0Ci serve uno script di avvio. Ho fatto una copia veloce (leggi: pigra) di /etc/init.d/skeleton. Questo è il risultato con i commenti originali tolti, per poterlo copiare qui; sentiti libero di creare una sostituzione ordinata e condividerla!! (prima modifica possibile: far girare il servizio con un utente non root, se per te è un requisito)
#!/bin/sh
######
# Quick-Lazy startup script for Tonido
# Ciro Iriarte
# 2011-03-20 - v0.01
######
### BEGIN INIT INFO
# Provides: tonido
# Required-Start: $network $syslog $remote_fs
# Should-Start: $named $syslog $time
# Required-Stop: $network $syslog
# Should-Stop: $named $syslog $time
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: Tonido Server
# Description: Start Tonido to provide personal cloud
### END INIT INFO
TONIDO_SH=/opt/tonido/tonido.sh
TONIDO_BIN=/opt/tonido/tonidoconsole
test -x $TONIDO_SH || { echo "$TONIDO_SH not installed";
if [ "$1" = "stop" ]; then exit 0;
else exit 5; fi; }
. /etc/rc.status
rc_reset
case "$1" in
start)
$TONIDO_SH start
rc_status -v
;;
stop)
$TONIDO_SH stop
rc_status -v
;;
restart)
$TONIDO_SH restart
rc_status
;;
status)
echo -n "Checking for service Tonido "
/sbin/checkproc $TONIDO_BIN
rc_status -v
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
rc_exitVa creato come /etc/init.d/tonido; non dimenticare il link di gestione e di abilitare il servizio per l’avvio automatico.
ln -s /etc/init.d/tonido /usr/sbin/rctonido
chkconfig tonido onAvvia il servizio
rctonido startPer poter gestire il servizio da remoto, dobbiamo modificare il file ~/tonido/data/configex.xml e abilitare l’amministrazione remota. Imposta value=1 nel parametro RemoteAdmin (scusate, a quanto pare qui non posso pubblicare XML)
Riavvia il servizio per fargli rileggere la configurazione
rctonido restartSe tutto è andato bene, dovresti poter accedere a Tonido su http://server.domain.com:10001.
Configurazione del firewall
Se hai un server pubblico, DEVE avere un firewall. Questi sono i passi per configurare SuSEfirewall2.
- Crea il file /etc/sysconfig/SuSEfirewall2.d/services/tonido (file di regole) e inserisci quanto segue:
## Name: Tonido
## Description: Opens ports for Tonido server
# space separated list of allowed TCP ports
TCP="10001"
# space separated list of allowed UDP ports
UDP=""
# space separated list of allowed RPC services
RPC=""
# space separated list of allowed IP protocols
IP=""
# space separated list of allowed UDP broadcast ports
BROADCAST=""- Modifica /etc/sysconfig/SuSEfirewall2 e aggiungi “tonido” al parametro
FW_CONFIGURATIONS_EXT, così:
FW_CONFIGURATIONS_EXT="apache2 apache2-ssl bind gts mysql sshd tomcat rsync-server tonido"- Riavvia il firewall
rcSuSEfirewall2 restartBuon divertimento!!
Modifica questo articolo su GitHub · hai trovato un errore? Le pull request sono benvenute.