Подтвердить что ты не робот

Экран: не удается найти запись terminfo для 'xterm-256color'

Когда я запустил

screen

на удаленном хосте (под управлением Linux), я получаю следующую ошибку:

Cannot find terminfo entry for 'xterm-256color'.

Я запускаю терминал на Mac OSX Lion для доступа к удаленному хосту. У меня есть googled, чтобы найти решение этой проблемы, и кажется, что люди предлагают делать

export TERM=xterm-color

который не работает для меня.

Пожалуйста, помогите.

4b9b3361

Ответ 1

Узнайте, какой TERM поддерживается:

ls /usr/share/terminfo/x

это даст вам список поддерживаемых TERMs i.e.

xterm
xterm-xfree86

установите переменную окружения:

export TERM=xterm-xfree86

и запустить экран:

TERMINFO='/usr/share/terminfo/' screen

Ответ 2

В приложении терминала, которое вы используете для ssh, перейдите к настройкам → advanced → Объявите терминал как: → xterm-color (или что-то, кроме xterm-256color)

Этот ответ был взят из комментария к этому сообщению, в котором есть другое решение: http://marcoschuh.de/wp/?p=873

Ответ 3

В случае моей Buffalo Linkstation я решил это так:

cd /lib/terminfo/x
ln -s xterm-color xterm-256color

Ответ 4

Я смог изменить эмуляцию Mac OSX (10.7.5) (v2.2.3, 303.2) из ​​меню Терминальные > Настройки > Настройки > Дополнительно > Emulation Объявить терминал как xterm-color

Открытие нового подключения ssh терминала позволило включить новую настройку.

Ответ 5

Я ранее использовал приложение Mac OS X по умолчанию для доступа к моему tmux на основе Ubuntu через ssh и нашел описанную вами проблему - мои bash и tmux установлены на экран-256color, параметр даже в список в настройках терминала Mac.

Я попытался добавить строку:

export TERM=screen-256color

в качестве команды запуска, но он был проигнорирован и был переопределен xterm-цветом при запуске.

Мне также удалось изменить настройки для терминала Mac на экран-256color, выбрав "Shell" > "Параметры экспорта", а затем отредактировав созданный им XML файл, найдя строку xterm-color и изменив ее на экран-256color, затем "Shell" > Импорт этого файла настроек. Однако, при запуске терминала, я обнаружил, что он по-прежнему переопределяет эту настройку с помощью xterm-color.

Итак, я уступил и загрузил iTerm2, что позволило мне изменить настройки экрана-256color, введя его в текстовое поле (скорее чем выбор из ограниченного раскрывающегося меню). Это работало сразу, даже не закрывая и не открывая консоль.

Итак, в заключение, я рекомендую использовать iTerm2, а не Mac-терминал по умолчанию (который, похоже, не позволяет изменениям в $TERM вам требуется).

Ответ 6

Вы можете установить ncurses-term на удаленном сервере (Debian/Ubuntu), чтобы решить эту проблему.

Ответ 7

Вероятно, вам нужно установить пакет на свой Linux-хост, который содержит один из следующих файлов:

/usr/share/terminfo/x/xterm-256color
/lib/terminfo/x/xterm-256color

В Ubuntu, например, это предоставляется пакетом ncurses-base.

Ответ 8

Вам не хватает файла terminfo на удаленной машине, который соответствует 'xterm-256color'.

Screen не знает, как эмулировать запрашиваемый вами терминал (xterm-256color), потому что в нем нет файла, описывающего используемый вами терминал (xterm-256color).

Вы можете изменить переменную ENV TERM чтобы запросить эмуляцию терминала, которую имеет удаленная машина. Например: export TERM=vt220, но это предполагает, что у вашего пульта есть файл terminfo vt220, и вы не получите красивые цвета, и вам придется делать другие утомительные вещи, чтобы заставить его придерживаться. Лучше...

Если на вашем локальном компьютере есть файлы terminfo, но на вашем удаленном компьютере нет, например, linux/macos, взаимодействующего с QNAP/QNAS/busybox/rpi/router/modem/IOTdevice, тогда...

Вы можете скопировать в него необходимый файл и дать команду удаленному терминалу использовать его для экрана. например:

[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

Экран должен работать на этом этапе. Ваш локальный компьютер может иметь каталог terminfo где-то еще (/etc/terminfo/ и /usr/share/terminfo/ являются распространенными альтернативами; вам, возможно, придется покопаться, чтобы найти свой).

Для более постоянной настройки переместите его в каталог "terminfo "в вашем домашнем каталоге (или в другом месте, если вы знаете лучше). например:

[remote] mkdir -p .terminfo/x
[remote] mv xterm-256color .terminfo/x
[nasbox] screen

Тот же метод должен применяться к другим терминальным эмуляциям. Переменная ENV TERM определяет, какой терминал он должен пытаться эмулировать, а файл с тем же именем предоставляет магические коды, чтобы все это произошло.

Ответ 9

В этом вопросе пользовательская конфигурация запросила описание терминала, которое не было по умолчанию screen. Это было исправлено в результате обновления от Apple. В версии, приведенной в вопросе, Apple не представила это описание терминала. Они делают сейчас (и имеют с 2015 года). Для записи здесь приведен список каталогов, в котором показаны соответствующие записи для MacPorts (в /opt/local), локально созданные ncurses (в /usr/local) и файлы Apple/system в /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

Вы можете заметить несколько деталей:

  • в OSX, файловая система по умолчанию игнорирует регистр, поэтому s кодируется в шестнадцатеричном формате (чтобы сделать его отличным от s)

  • записи имеют несколько разные размеры. Apple предоставила более старую версию базы данных терминалов, в которой отсутствуют некоторые функции.

  • Используя toe, я вижу следующее:

    --> /usr/local/ncurses/share/terminfo
    ----> /usr/share/terminfo
    ------> /opt/local/share/terminfo
    *-*-*-: screen-256color GNU Screen with 256 colors   
    *-*-*-: screen-256color-bce     GNU Screen with 256 colors and BCE 
    *-*-*-: screen-256color-bce-s   GNU Screen with 256 colors using BCE and status line
    *-*-*-: screen-256color-s       GNU Screen with 256 colors and status line

и сравнение системы с 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,

Ответ 10

Другой случай, например, обновление до Debian Buster с внутреннего screen.

xterm-256colour формат Terminfo xterm-256colour изменен, поэтому screen не может восстановить предыдущий сеанс.

Вы можете использовать export TERM=xterm чтобы закрыть сеансы экрана, а затем перезапустить экран. На этот раз он будет использовать правильный файл terminfo, и поэтому он будет успешным.

Источник: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=901843

Ответ 11

Вам просто нужно скопировать /usr/share/terminfo/x/xterm-256color на сервер, к которому вы подключаетесь.