Wenn ich renne
screen
auf dem entfernten Host (unter Linux) erhalte ich die folgende Fehlermeldung:
Cannot find terminfo entry for 'xterm-256color'.
Ich verwende ein Terminal unter Mac OSX Lion, um auf den Remote-Host zuzugreifen. Ich habe gegoogelt, um die Lösung für dieses Problem zu finden
export TERM=xterm-color
was für mich nicht funktioniert.
Bitte helfen.
Finden Sie heraus, welches TERM unterstützt wird:
ls /usr/share/terminfo/x
dadurch erhalten Sie eine Liste der unterstützten TERMs, d. h.
xterm
xterm-xfree86
setze die Umgebungsvariable:
export TERM=xterm-xfree86
und Bildschirm ausführen:
TERMINFO='/usr/share/terminfo/' screen
Gehen Sie in der Terminal-App, die Sie für ssh verwenden, zu den Einstellungen -> Erweitert -> Terminal deklarieren als: -> xterm-color (oder etwas anderes als xterm-256color)
Diese Antwort wurde einem Kommentar zu diesem Beitrag entnommen, der eine andere Lösung hat: http://marcoschuh.de/wp/?p=873
Ich konnte die Emulation des Mac OSX (10.7.5) -Terminals (v2.2.3, 303.2) über das Menü Terminal> Voreinstellungen> Einstellungen> Erweitert> Emulation Terminal als Xterm-Farbe deklarieren
Durch das Öffnen einer neuen Terminal-SSH-Verbindung wurde die neue Einstellung aktiviert.
Im Falle meiner Buffalo Linkstation habe ich es so gelöst:
cd /lib/terminfo/x
ln -s xterm-color xterm-256color
Ich habe zuvor die standardmäßige Mac OS X Terminal-App für den Zugriff auf mein Ubuntu-basiertes tmux über ssh verwendet und das von Ihnen beschriebene Problem gefunden - mein bash und tmux ist auf screen-256color gesetzt, eine Option, die nicht einmal in der Liste im Mac enthalten ist Terminaleinstellungen.
Ich habe versucht, die Zeile hinzuzufügen:
export TERM=screen-256color
als Startbefehl wurde er jedoch ignoriert und beim Start mit xterm-color überschrieben.
Es ist mir auch gelungen, die Einstellungen für das Mac Terminal in screen-256color zu ändern, indem Sie "Shell"> "Export Settings" (Exporteinstellungen) wählen und dann die erzeugte XML-Datei bearbeiten, die Zeile xterm-color finden und in "screen-256color" ändern, dann "Shell"> "Importieren" Einstellungsdatei. Beim Starten des Terminals stellte ich jedoch fest, dass still diese Einstellung mit xterm-color überschrieben hatte.
Also gab ich iTerm2 zu und lud mich herunter, was mir erlaubte, die Einstellung für die Bildschirmfarbe zu ändern, indem ich sie in ein reines Textfeld eingabe (anstatt aus einem beschränkten Pulldown-Menü zu wählen). Das funktionierte sofort ohne die Konsole schließen und wieder öffnen zu müssen.
Abschließend empfehle ich die Verwendung von iTerm2 anstelle des Standard-Mac-Terminals (das die erforderlichen Änderungen an $ TERM nicht zuzulassen scheint).
Sie müssen wahrscheinlich ein Paket auf Ihrem Linux-Host installieren, das eine der folgenden Dateien bereitstellt:
/usr/share/terminfo/x/xterm-256color
/lib/terminfo/x/xterm-256color
Unter Ubuntu wird dies beispielsweise vom ncurses-base
-Paket bereitgestellt.
Sie können ncurses-term
auf dem Remote-Server (Debian/Ubuntu) installieren, um das Problem zu beheben.
Ein anderer Fall, z.B. Upgrade von screen
auf Debian Buster.
Terminfo xterm-256colour
Format geändert, daher kann screen
die vorherige Sitzung nicht wiederherstellen.
Sie können export TERM=xterm
, um Bildschirmsitzungen zu schließen und den Bildschirm neu zu starten. Dieses Mal wird die richtige terminfo-Datei verwendet, und das wird erfolgreich sein.
Quelle: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=90184
Auf dem Remote-Computer fehlt eine terminfo
-Datei, die mit 'xterm-256color' übereinstimmt.
Der Bildschirm kann das von Ihnen angeforderte Terminal nicht emulieren (xterm-256color), da es nicht die Datei enthält, die das von Ihnen verwendete Terminal beschreibt (xterm-256color).
Sie können die ENV-Variable TERM
ändern, um eine Terminalemulation anzufordern, über die die Remote-Maschine verfügt. Beispielsweise: export TERM=vt220
, aber das würde voraussetzen, dass Ihre Fernbedienung eine vt220-terminfo-Datei hat, und Sie würden keine hübschen Farben bekommen, und Sie müssten andere mühsame Dinge tun, um sie festzuhalten. Besser...
Wenn Ihr lokaler Computer über Terminfo-Dateien verfügt, Ihr Remote-Computer jedoch nicht über Linux/MacOS, die mit einem QNAP/QNAS/busybox/rpi/router/modem/IOT-Gerät kommunizieren, dann ...
Sie können die erforderliche Datei in das Gerät kopieren und Ihre Gegenstelle anweisen, sie für den Bildschirm zu verwenden. z.B:
[local] $ scp /lib/terminfo/x/xterm-256color [email protected]:xterm-256color
[local] $ ssh [email protected]
[remote] $ ls
xterm-256color
[remote] $ TERMINFO='/share/homes/john/xterm-256color' screen
Der Bildschirm sollte an dieser Stelle funktionieren. Ihr lokaler Computer verfügt möglicherweise über das Verzeichnis terminfo
an einer anderen Stelle (/etc/terminfo/
und /usr/share/terminfo/
sind gängige Alternativen; Möglicherweise müssen Sie sich umsehen, um Ihre zu finden.
Um es dauerhafter einzurichten, verschieben Sie es in ein '.terminfo'-Verzeichnis in Ihrem Home-Verzeichnis (oder anderswo, wenn Sie es besser wissen). z.B:
[remote] mkdir -p .terminfo/x
[remote] mv xterm-256color .terminfo/x
[nasbox] screen
Die gleiche Technik sollte für andere Terminal-Emulationen gelten. Die ENV-Variable TERM
legt fest, welches Terminal emuliert werden soll, und die gleichnamige Datei enthält die magischen Codes, mit denen dies geschehen soll.
In der Frage wurde in der Konfiguration des Benutzers nach einer Terminalbeschreibung gefragt, die nicht die Standardeinstellungscreen
war. Dies wurde schließlich durch ein Update von Apple behoben. In der in der Anfrage genannten Version hat Apple diese Terminalbeschreibung nicht angegeben. Sie tun es jetzt (und haben seit 2015). Hier finden Sie eine Verzeichnisliste mit den zugehörigen Einträgen für MacPorts (in /opt/local
), einem lokal erstellten ncurses (in /usr/local
) und den Apple/Systemdateien in /usr/share
:
-rw-r--r-- 1 root 1912 Oct 3 2015 opt/local/share/terminfo/73/screen-256color
-rw-r--r-- 1 root 1924 Oct 3 2015 opt/local/share/terminfo/73/screen-256color-bce
-rw-r--r-- 1 root 1954 Oct 3 2015 opt/local/share/terminfo/73/screen-256color-bce-s
-rw-r--r-- 1 root 1940 Oct 3 2015 opt/local/share/terminfo/73/screen-256color-s
-rw-r--r-- 1 root 1912 Apr 12 04:22 usr/local/ncurses/share/terminfo/73/screen-256color
-rw-r--r-- 1 root 1924 Apr 12 04:22 usr/local/ncurses/share/terminfo/73/screen-256color-bce
-rw-r--r-- 1 root 1954 Apr 12 04:22 usr/local/ncurses/share/terminfo/73/screen-256color-bce-s
-rw-r--r-- 1 root 1940 Apr 12 04:22 usr/local/ncurses/share/terminfo/73/screen-256color-s
-rw-r--r-- 1 root 1828 Aug 22 2015 usr/share/terminfo/73/screen-256color
-rw-r--r-- 1 root 1840 Aug 22 2015 usr/share/terminfo/73/screen-256color-bce
-rw-r--r-- 1 root 1866 Aug 22 2015 usr/share/terminfo/73/screen-256color-bce-s
-rw-r--r-- 1 root 1856 Aug 22 2015 usr/share/terminfo/73/screen-256color-s
Sie können einige Details feststellen:
unter OSX ignoriert das Standard-Dateisystem die Groß-/Kleinschreibung, daher ists
hexadezimal codiert (um es vonS
zu unterscheiden)
die Einträge haben etwas unterschiedliche Größen. Apple hat eine ältere Version der Terminaldatenbank zur Verfügung gestellt, der einige Funktionen fehlen.
Mit toe
sehe ich folgendes:
-> /usr/local/ncurses/share/terminfo ----> /usr/share/terminfo ------> /opt/local/share/terminfo * - * - * -: screen-256color GNU Bildschirm mit 256 Farben * - * - * -: screen-256color-bce GNU Bildschirm mit 256 Farben und BCE * - * - * -: screen-256color-bce-s GNU Bildschirm mit 256 Farben unter Verwendung von BCE und Statuszeile * - * - * -: screen-256color-s GNU Bildschirm mit 256 Farben und Statuszeile
und Vergleich des Systems mit MacPorts:
--- macports 2017-04-26 04:38:21.000000000 -0400
+++ system 2017-04-26 04:40:08.000000000 -0400
@@ -1,19 +1,19 @@
-# Reconstructed via infocmp from file: /opt/local/share/terminfo/73/screen-256color
+# Reconstructed via infocmp from file: /usr/share/terminfo/73/screen-256color
screen-256color|GNU Screen with 256 colors,
am, km, mir, msgr, xenl,
- colors#256, cols#80, it#8, lines#24, pairs#32767,
+ colors#256, cols#80, it#8, lines#24, ncv#3, pairs#32767,
acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
clear=\E[H\E[J, cnorm=\E[34h\E[?25h, cr=^M,
csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
- cvvis=\E[34l, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
- enacs=\E(B\E)0, flash=\Eg, home=\E[H, ht=^I, hts=\EH,
- ich=\E[%p1%[email protected], il=\E[%p1%dL, il1=\E[L, ind=^J, is2=\E)0,
- kbs=^H, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
- kcuu1=\EOA, kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~,
+ cvvis=\E[34l, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
+ dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
+ flash=\Eg, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%[email protected],
+ il=\E[%p1%dL, il1=\E[L, ind=^J, [email protected], is2=\E)0, kbs=^H,
+ kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+ kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~,
kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
@@ -22,6 +22,6 @@
rmul=\E[24m, rs2=\Ec\E[?1000l\E[?25h, sc=\E7,
setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m,
setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
- sgr=\E[0%?%p6%t;1%;%?%p1%t;3%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;m%?%p9%t\016%e\017%;,
+ sgr=\E[0%?%p6%t;1%;%?%p1%t;3%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
sgr0=\E[m\017, smacs=^N, smcup=\E[?1049h, smir=\E[4h,
smkx=\E[?1h\E=, smso=\E[3m, smul=\E[4m, tbc=\E[3g,