[Gelöst] tmux 1.8 Fehler beim Bauen

Abend
Hatte stundenlang Sekundenschlaf, aber jetzt gehts wieder. :)

Da es sich bei freetz so schön anbietet, hau ich Funktionsdefinitionen oder Aliase gern in die .profile .
.profile (Auszug)
Code:
# tmux
tmux () {
TERM=vt100
TERMINFO=/var/media/ftp/uStor01/external/terminfo
export TERM TERMINFO
/var/media/ftp/uStor01/external/usr/bin/tmux $1 $2 $3 $4 $5 $6 $7 $8 $9
}
...und geht (die MIPS-Version) ganz nach Wunsch.
Nur, screen ist echt Hartnäckig trotz export TERM bleibt TERM = screen.

Dankeschön.
 
Zuletzt bearbeitet:
Das passt schon. Innerhalb vom screen/tmux hast du screen als TERM.
Das ist (mit) ein Unterscheidungsmerkmal um zu sehen, ob du gerade "in" einer solchen Session bist (bei tmux ist z.B. "$TMUX" gesetzt, wenn du innerhalb einer Session bist) ;-)
 
Den Aufruf oben schreibt man besser als
Code:
.../tmux "$@"
Das Setzen von TERM und TERMINFO in der Funktion ist aus mehreren Gründen eine schlechte Idee:
Die Zuweisungen verändern die Variablen in der aufrufenden Shell.
Das Setzen von TERM ist Aufgabe des Login-Skripts, wenn es etwas anderes gesetzt hat, hat das vermutlich seinen Grund.
Ebenso hat es seinen Grund, dass Programme, die unter screen laufen, TERM=screen gesetzt bekommen, da sollte man nicht versuchen, das zu ändern.
 
Also TERM mit guten Gewissen weglassen, und TERMINFO?

Komisch, find ich, dass nach dem Login (Putty) TERM = xterm ist.
Eine screen Session läuft, dass ist richtig, ich starte tmux jedoch nicht aus dieser.
OK, tmux gestartet, TERM = screen , beende ich tmux ist TERM = vt100 .
Das, muss ich zugeben, macht mich ganz wuschig.
...mal gucken...
Code:
# tmux
tmux () {
TERMTMP=$TERM
TERM=vt100
TERMINFO=/var/media/ftp/uStor01/external/terminfo
export TERMINFO
/var/media/ftp/uStor01/external/usr/bin/tmux "$@"
TERM=$TERMTMP
}
...so besser?
 
Zuletzt bearbeitet:
Du sollst es nur nicht "ganz" setzen, weil die Einstellung der Shell (durch das export) verändert wird.
Wenn du eine korrekte und vollständige terminfo auf der Box hast, kannst du alles weglassen.
Ich hatte das nur gesetzt, weil ich nur die wenigen vt's als terminfo auf die Box gebracht hatte (also ein "vorhandenes" TERM wählen und den Pfad zur TERMINFO setzen musste).
Am einfachsten geht das direkt mit dem Setzen beim Aufruf mit dem oben genannten Befehl
 
Guten Morgen!

Bei mir geht es jetzt auch. Dein Binary ging leider nicht Max. Ich habe aber eben selber noch mal ein statisches Binary von tmux erstellt und siehe da, es geht. Keine Ahnung was da los war.

Danke schön für die Hilfe.


Grüße
 
Moin
So, hab die Funktion nochmal angepasst:
PHP:
# tmux
tmux () {
TERMTMP=$TERM
TERMINFOTMP=$TERMINFO
TERM=vt100
TERMINFO=/var/media/ftp/uStor01/external/terminfo
export TERM TERMINFO
/var/media/ftp/uStor01/external/usr/bin/tmux "$@"
TERM=$TERMTMP
TERMINFO=$TERMINFOTMP
export TERM TERMINFO
}
 
Nein, so besser:
Code:
# tmux
tmux () {
/var/media/ftp/uStor01/external/usr/bin/tmux "$@"
}

Komisch, find ich, dass nach dem Login (Putty) TERM = xterm ist.
Dann wird xterm entweder von Putty übertragen oder vom Login Skript geraten.
OK, tmux gestartet, TERM = screen , beende ich tmux ist TERM = vt100 .
Dann setzt tmux eben screen als Terminal. Vielleicht sind beide kompatibel, also warum einen neuen Terminal Eintrag erstellen.
Nach dem Beenden von tmux bist Du wieder in der ursprünglichen Shell, da hast Du selbst TERM=vt100 gesetzt, da sollte es keine Überraschung sein.

Wie bereits geschrieben, TERM gehört beim Anmelden korrekt gesetzt und dann nicht mehr verändert.
 
Zuletzt bearbeitet:
@Peter: Welches Binary hattest du denn getestet (mips oder mipsel) für welche Box?

@koyaanisqatsi: Warum willst du denn unbedingt die Einstellungen "exporten"? Viel einfacher ist wirklich ein "Einzeiler" (ggf umgebrochen), der (wenn überhaupt nötig, siehe den Einwand von Ralf) TERM und TERMINIFO setzt.

Code:
# tmux
tmux () {
TERM=vt100 \
TERMINFO=/var/media/ftp/uStor01/external/terminfo \
/var/media/ftp/uStor01/external/usr/bin/tmux "$@"
}
 
Zuletzt bearbeitet:
Hast Recht, Ein Einzeiler muss her.
Und ich hab letztens was gelernt, was wie gegossen dazu passen dürfte:
PHP:
# tmux
tmux () {
env -i "TERM=vt100" "TERMINFO=/var/media/ftp/uStor01/external/terminfo" /var/media/ftp/uStor01/external/usr/bin/tmux "$@"
}
Funktioniert auch hier super, und die aufrufende Shell behält iht Environment komplett, bei Rückkehr.

...was würde der tapfere kleine Grenadier bei ©Worms wohl dazu sagen?
"Perfect !!!"
 
Zuletzt bearbeitet:
@Max Speedport 920 als Fritzbox 7570. Laut meiner Suche müsste das noch mipsel sein (wenn ich das richtig verstanden haben)? Getestet habe ich aber vorsichtshalber beide. Bei mips kam ein Fehler und bei der mipsel-variante der bekannte Fehler, dass nichts passiert.

Edit:

tmux_mips_static: line 1: syntax error: unexpected "("
 
Zuletzt bearbeitet:
Ehm, gebs zwar nicht gerne zu, habs aber erst falsch entpackt.
Richtig entpacken, dann sollte es gehn, so viele unterschiedliche MIPS/MIPSEL gibt es ja nicht.
gunzip -d blabla.gz
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.