La prima cosa da tener presente è che per visualizzare un'applicazione grafica da remoto, è necessaria una quantità di banda non indifferente. Fatta questa premessa, lanciamoci nell'impresa.
Come requisito MacOS X deve avere installato un Server X11. Quello della Apple va benissimo (l'installazione è un tipico doppioclick, la configurazione interamente automatica). Dobbiamo inoltre avere un account sulla macchina remota i cui programmi vogliamo usare.
Controlliamo le impostazioni del firewall: se è attivo, assicuriamoci che accetti connessioni sulla porta 6000 che è quella usata da X ( System Preferences | Sharing (Condivisione) | firewall | New, a questo punto inserite nel campo Porte &qyot;6000" ed "X11" come descrizione)
A questo punto:
- Lanciamo il server X11 di MacOS X (/Applications/Utilities/X11.app)
- Dalla shell del server X (se non c'è nessuna shell aprite un terminale dal menu di X) connettiamoci con ssh alla macchina dalla quale fare girare applicazioni. Digitiamo:
ssh -X nomeutente@nomehost
oppure:
ssh -Y nomeutente@nomehost
Questa seconda forma permette spesso di far funzionare alcuni applicativi X11, come il MySQL admin o VMware, che altrimenti darebbero errore al momento dell'avvio.
Ovviamente sostituiremo a nomeutente il nome dell'utente per il login, ed a nomehost il nome in rete o la URL della macchina a cui ci stiamo connettendo.
Su richiesta va inserita la password dell'utente.
- Siamo dentro, e pronti a lanciare applicativi in GUI. Alcuni comandi che possiamo trovare utili:
- gnome-session per avviare Gnome
- kde-panel per avviare KDE
- gnome-panel per avviare i soli menu di Gnome
Note miste:
- Facendo seguire il comando da & (per esempio xedit& invece di xedit) si possono lanciare i processi grafici da xterm in background, in questo modo viene restituito immediatamente il controllo alla shell.
- Avviando la sessione ssh con ssh -CX (ecc.) tutto il traffico ssh viene compresso con gzip, e questo migliora le prestazioni se il collegamento remoto dovesse essere troppo lento.
- Se lanciando ad esempio "gnome-session" dovessimo ottenere un errore "Bad Atom request" molto probabilmente il client SSH che stiamo usando su Mac OS X non è configurato per accettare il forward di X11.
In questo caso aprire con "sudo vi" o qualcosa di analogo il file /etc/ssh_config, cercare la linea:
# Host *
Sostituirla con:
Host *
ForwardX11Trusted yes
Salvare il file, e riaprire la connessione SSH. L'errore dovrebbe essere scomparso.
- Le applicazioni Unix, anche se fatte girare sotto MacOS X effettivamente risiedono sul server remoto. I files verranno creati nella directory utente remota, non sull'hard disk del mac.
Ovviamente anche il calcolo verrà effettuato in remoto, il Mac si incaricherà solo della visualizzazione. Stiamo usando la macchina remota, semplicemente usando come schermo quello del vostro mac.
- Una curiosità: usando un server che ha wine (tipicamente una macchina GNU/Linux x86), si possono emulare programmi Windows su una macchina GNU/Linux, vedendo il risultato su un Mac... quasi grottesco :-)))