2013-04-04 13 views
5

Tmux 1.8 arresta in modo anomalo l'app iOS Prompt.È possibile eseguire contemporaneamente due diverse versioni di tmux?

Ma ho bisogno di 1.8 per ottenere l'integrazione iTerm2.

Quindi spero di poter in qualche modo rendere il mio server in grado di eseguire due server tmux. Tuttavia sembra che Tmux 1.6 esca semplicemente con il codice di stato 1 quando ho il server 1.8 in esecuzione.

Dubito che qualcuno è tentato qualcosa di simile, ma sono curioso ...

+2

È possibile anche fare 1.8 Non appendere fissando il numero attuale (http://sourceforge.net/mailarchive/forum.php?thread_name=F892202E-B27B-400E-A5BD-596A124E058F%40high5.nl&forum_name=tmux : agli utenti). Questo viene fatto aggiungendo "set -ag-override del terminale", *: XT @ "' al tuo '.tmux.conf' – terje

+0

Il prompt ha iniziato a funzionare in modo casuale con tmux 1.8 sul mio server. –

+0

@terje Vorrei suggerire che il tuo commento dovrebbe essere una risposta, in quanto risolve il problema *** *** ***. – demure

risposta

10

È possibile eseguire più istanze di tmux (anche versioni differenti), ma potrebbe non funzionare come ci si aspetta: saranno completamente indipendenti (diverse sessioni, finestre, riquadri, valori delle opzioni, ecc.). L'opzione o -S viene utilizzata per specificare un nome socket o un nome di percorso del server.

tmux new    # new session in the server at the "default" socket 
tmux -L other attach # new session in the server at the "other" socket 

La presa di default e le -L prese vivono in $TMPDIR/tmux-$UID/, ma è possibile utilizzare -S se si desidera specificare il percorso completo da soli.

Quando si è “dentro” una sessione di tmux, le variabili di ambiente tmux specifica il percorso del socket server, in modo da in genere non è necessario specificare il nome presa (percorso) se si sta solo parlando con la “ "server" circostante: è sufficiente utilizzare tmux neww per creare una nuova finestra nella sessione corrente (indipendentemente dal nome percorso utilizzato).

Tuttavia, vi è un altro problema con il tentativo di eseguire due versioni significativamente diverse di tmux. Il binario tmux e il server in esecuzione devono pronunciare la stessa "versione di protocollo". A causa di alcune modifiche interne, le versioni 1.6 e 1.8 utilizzano versioni di protocollo diverse. Ciò significa che non è possibile utilizzare il binario 1.6 per parlare con un server 1.8 (ovvero un server avviato utilizzando il binario 1.8) o viceversa. Pertanto, anche se non è necessario specificare il nome del socket (quando si eseguono i comandi "all'interno" di una sessione), sarà probabilmente necessario specificare il file binario quando si tenta di parlare con i diversi server.

tmux attach    # 1.8 talking to existing 1.8 "default" server 
tmux-1.6 -L other attach # 1.6 talking to existing 1.6 "other" server 

Potreste essere in grado di semplificare le cose un po 'impostando una variabile d'ambiente e l'utilizzo di una funzione di shell (o uno script, ma fare attenzione a non creare un loop infinito).

tmux() { command "${TMUXBIN:-tmux}" "[email protected]"; } 
Problemi correlati