Ошибка nano: Ошибка открытия терминала: xterm-256color

109

После установки OSX Lion я попытался:

nano /etc/apt/sources.list

Но я получаю такую ​​ошибку:

Error opening terminal: xterm-256color

Если я попытаюсь переключить настройки terminal.app на открытие окон терминала в «цвете xterm», xterm-256colorвсе будет работать нормально.

Что творится?

Люк
источник
1
Возможно, вам здесь не хватает какого-то шага - например, вы перешли по ssh с Mac в какую-то систему Debian или Ubuntu, верно? По крайней мере, я надеюсь, что вы не пытались редактировать /etc/apt/sources.list в системе MacOS ... :)
Хеннинг,

Ответы:

168

В Red Hat это сработало для меня:

export TERM=xterm

дополнительная информация здесь: http://www.cloudfarm.it/fix-error-opening-terminal-xterm-256color-unknown-terminal-type/

Meetai.com
источник
У меня сработало, когда я запустил систему удаления. Подключение из OS X -> Ubuntu
Райан Гриффит
Интересно, что у меня была эта ошибка в среде с chroot-ed, в которой пока было только минимальное количество программ. Я предполагаю, что отсутствует какая-то программа, которая вызывает это, но, к сожалению, nano не дает дополнительной информации о том, почему именно она не работает.
shevy
Работает также при попытке использовать top внутри локальной системы kubernetes minikube, работающей как виртуальная машина на основе buildroot внутри Virtualbox в Max OS X. (это ssh из MacOS в виртуальную машину на основе Buildroot и запуск tgen сверху)
Хеннинг,
Этот ответ не имеет отношения к вопросу, и его следовало удалить.
Томас Дики
Одно и то же решение кажется правильным для разных систем, включая Ubuntu / Debian и OSX (OP). Как это не имеет значения?
Meetai.com
28

После обновления до OSX Lion я начал получать эту ошибку на некоторых серверах (Debian / Ubuntu). Чтобы исправить это, просто установите пакет «ncurses-term», который предоставляет файл / usr / share / terminfo / x / xterm-256color.

Это сработало для меня на сервере Ubuntu через Эрика Остермана .

теленок
источник
17

Я могу подтвердить, что это проблема terminfo. Это то, что у меня сработало. Подключитесь по SSH к удаленному компьютеру и запустите

 sudo apt-get install ncurses-term

Бум. Задача решена.

Джонни
источник
Я думаю, это может быть одной из причин, по которой nano иногда может давать сбой - например, если проблема возникает в ncurses / terminfo.
shevy
6

У меня возникла проблема с подключением к http://sdf.org через Mac OS X Lion. Я изменил под Terminal Preferences( + ,) > Advancedпанели, Declare Terminal asчтобыVT-100 .

Я также отметил, Delete Sends Ctrl-Hчто это подключение Mac сбивало с толкуzsh .

Кажется, он работает для моего варианта использования.

изоморфизмы
источник
1
Спасибо за ответ, который НЕ касался смены сервера!
DOOManiac 05
1
У меня это не работает. Я подключаюсь с Mac в Mavericks к Mac в Snow Leopard. Я получаю ошибку при запуске top.
Николас Барбулеско
@NicolasBarbulesco О'кей, Николас, извини, но я больше не использую Mac, поэтому я не могу проверить это с тобой.
isomorphismes
5

У меня тоже есть эта проблема на старом Mac, который я обновил до Lion.

Перед прочтением подсказки по terminfo я смог заставить vi и меньше работать, выполнив "export TERM = xterm".

Прочитав подсказку, я схватил /usr/share/terminfo с нового Mac, на котором установлена ​​новая версия Lion, и эта проблема не проявляется.

Теперь, несмотря на то, что echo $TERMвсе еще дает результаты xterm-256color, vi и less теперь работают нормально.

битаксис
источник
Для всех, кто пытается запустить chroot на macOS, это устраняет проблему «Ошибка открытия терминала:» внутри chroot.
3

почему-то, а иногда и папка terminfo оказывается поврежденной после новой установки. Не знаю почему, но проблему можно решить так:

1. Download Lion Installer from the App Store
2. Download unpkg: http://www.macupdate.com/app/mac/16357/unpkg
3. Open Lion Installer app in Finder (Right click -> Show Package
Contents)
4. Open InstallESD.dmg (under SharedSupport)
5. Unpack BSD.pkg with unpkg (Located under Packages)   Term info
will be located in the new BSD folder in /usr/share/terminfo

Надеюсь, поможет.

Люк
источник
Я столкнулся с той же ошибкой и попробовал предложенные вами шаги. При распаковке с помощью unpkg я столкнулся с рядом ошибок, связанных с отказом в разрешении. Папка BSD появилась на моем рабочем столе, и я запустил «sudo mv ~ / Desktop / BSD / usr / share / terminfo / usr / share / terminfo», затем перезапустил терминал, но все равно получаю то же «Ошибка открытия терминала: xterm-256color. " ошибка.
Майк Лоуренс,
1
возможно, вы можете попробовать это sendpace.com/file/hc2dus, это моя папка terminfo. после его замены не забудьте ввести команду chmod 555 / usr / share / terminfo
Люк
2
  1. отредактируйте свой .bash_profileфайл

    vim .bash_profile

  2. общение

    #export TERM=xterm-256color

  3. Добавь это

    export TERMINFO=/usr/share/terminfo

    export TERM=xterm-basic

    на ваш .bash_profile

  4. Ну наконец то

    бегать:

    source .bash_profile

Сюй Радман
источник
1

Мой случай был довольно уникальным, но это могло кому-то помочь. На Android я попытался скопировать nano из своей двоичной папки termux в / system / xbin. Поместил все зависимости библиотеки в / system / lib и получил эту ошибку. В файле libncurses.so.6, который я скопировал из termux, файл TERMINFO все еще указывал на /data/data/com.termux/files/usr/share/terminfo

Просмотр указанного пути с помощью команды

строки path-to-libncurses.so | grep / terminfo

Чтобы исправить это, либо сделайте каталог termux terminfo и подкаталоги доступными для чтения и выполнения пользователем nano, либо скопируйте папку terminfo в другое место и используйте шестнадцатеричный редактор для изменения пути обычного текста в файле общей библиотеки.

Ссылка на заархивированную папку terminfo https://drive.google.com/file/d/1m1tfHgkGRehBGh1jPMK4EaTgQb9EyCG7/view?usp=drivesdk

Удача
источник
Я столкнулся с аналогичной ситуацией при использовании конфигурации chroot ssh. И я исправил это, как сказал @Fortune. найти и скопировать папки terminfo в структуру папок chroot
Гаян Кавиратне
0

Я слышал, что это можно исправить, заменив ваш файл /usr/share/terminfoна компьютер кого-нибудь с работающей установкой Lion. Я не могу подтвердить, работает это или нет, и, к сожалению, я еще не обновился, поэтому я не могу предоставить вам этот файл.

ЭдоДодо
источник
0

Вы можете добавить следующее в свой .bashrc

if [ "$TERM" = xterm ]; then TERM=xterm-256color; fi
не имеет значения
источник