Błąd nano: Błąd podczas otwierania terminala: xterm-256color

109

Po instalacji OSX Lion próbowałem:

nano /etc/apt/sources.list

Ale pojawia się ten błąd:

Error opening terminal: xterm-256color

Jeśli spróbuję przełączyć preferencje terminal.app tak, aby otwierać okna terminala w "kolorze xterm" zamiast xterm-256colorwszystkiego, wszystko działa dobrze.

Co się dzieje?

Łukasz
źródło
1
Być może brakuje Ci tu jakiegoś kroku - tak jak przeszedłeś z Maca do jakiegoś systemu Debian lub Ubuntu, prawda? Przynajmniej mam nadzieję, że nie próbowałeś edytować /etc/apt/sources.list w systemie MacOS ... :)
Henning

Odpowiedzi:

168

W Red Hat to zadziałało dla mnie:

export TERM=xterm

więcej informacji tutaj: http://www.cloudfarm.it/fix-error-opening-terminal-xterm-256color-unknown-terminal-type/

Meetai.com
źródło
Pracował dla mnie, gdy działał w systemie usuwania. Połączenie z OS X -> Ubuntu
Ryan Griffith
Co ciekawe, miałem ten błąd w środowisku chroot, w którym do tej pory są tylko minimalne programy. Zakładam, że brakuje jakiegoś programu, który to powoduje, ale niestety nano nie podaje więcej informacji, dlaczego dokładnie zawodzi.
shevy
Działa również, gdy próbujesz użyć top w lokalnym systemie kubernetes minikube działającym jako maszyna wirtualna w oparciu o buildroot wewnątrz Virtualbox na Max OS X. (czyli ssh z MacOS do maszyny wirtualnej opartej na Buildroot i tgen run top)
Henning
Ta odpowiedź nie ma związku z pytaniem i powinna zostać usunięta.
Thomas Dickey,
To samo rozwiązanie wydaje się poprawne dla różnych systemów, w tym Ubuntu / Debian i OSX (OP). Dlaczego to nie ma znaczenia?
Meetai.com
28

Po aktualizacji do OSX Lion zacząłem otrzymywać ten błąd na niektórych serwerach (Debian / Ubuntu). Rozwiązaniem jest po prostu zainstalowanie pakietu „ncurses-term”, który zawiera plik / usr / share / terminfo / x / xterm-256color.

To zadziałało dla mnie na serwerze Ubuntu, za pośrednictwem Erika Ostermana .

calvinf
źródło
17

Mogę potwierdzić, że jest to problem z terminfo. To właśnie zadziałało dla mnie. SSH na zdalną maszynę i uruchom

 sudo apt-get install ncurses-term

Bum. Problem rozwiązany.

Jasio
źródło
Myślę, że może to być jeden z powodów, dla których nano może czasami zawieść - np. Jeśli problem występuje w ncurses / terminfo.
shevy
6

Miałem ten problem podczas łączenia się z http://sdf.org przez Mac OS X Lion. Zmieniłem pod Terminal Preferences( + ,) > Advancedokienkiem Declare Terminal asna VT-100.

Zaznaczyłem również, Delete Sends Ctrl-Hponieważ to połączenie z komputerem Mac było mylące zsh.

Wygląda na to, że działa w moim przypadku użycia.

izomorfizmy
źródło
1
Dzięki za odpowiedź, która NIE wymagała zmiany serwera!
DOOManiac
1
To nie działa dla mnie. Łączę się z komputera Mac w Mavericks z komputerem Mac w systemie Snow Leopard. Po uruchomieniu pojawia się błąd top.
Nicolas Barbulesco
@NicolasBarbulesco Ah ok Nicolas, przepraszam, ale nie używam już Maca, więc nie mogę tego z tobą przetestować.
izomorfizmy
5

Ja też mam ten problem na starszym Macu, który zaktualizowałem do Lion.

Przed przeczytaniem porady terminfo udało mi się uzyskać vi i mniej pracując, wykonując "export TERM = xterm".

Po przeczytaniu wskazówki złapałem /usr/share/terminfoz nowszego Maca, który ma świeżą instalację Lion i nie wykazuje tego problemu.

Teraz, mimo że echo $TERMnadal daje xterm-256color, vi i less teraz działają dobrze.

bitaxis
źródło
Dla każdego, kto próbuje uruchomić chroot w systemie macOS, rozwiązuje to problem „Błąd otwierania terminala:” wewnątrz chroot.
3

w jakiś sposób folder „terminfo” ulega uszkodzeniu po nowej instalacji. nie wiem dlaczego, ale problem można rozwiązać w ten sposób:

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

mam nadzieję, że to pomoże.

Łukasz
źródło
Napotkałem ten sam błąd i wypróbowałem sugerowane kroki. Podczas rozpakowywania za pomocą unpkg napotkałem szereg błędów odmowy uprawnień. Folder BSD pojawił się na moim pulpicie i uruchomiłem „sudo mv ~ / Desktop / BSD / usr / share / terminfo / usr / share / terminfo”, a następnie zrestartowałem terminal, ale nadal otrzymuję ten sam „Błąd podczas otwierania terminala: xterm-256color „błąd.
Mike Lawrence,
1
może możesz spróbować tego sendspace.com/file/hc2dus to mój folder terminfo. po wymianie nie zapomnij o chmod 555 / usr / share / terminfo
Luke
2
  1. edytować .bash_profileplik

    vim .bash_profile

  2. commnet

    #export TERM=xterm-256color

  3. Dodaj

    export TERMINFO=/usr/share/terminfo

    export TERM=xterm-basic

    dla Twojej .bash_profile

  4. Wreszcie

    biegać:

    source .bash_profile

Xu Radman
źródło
1

Mój przypadek był dość wyjątkowy, ale to mogłoby komuś pomóc. W systemie Android próbowałem skopiować nano z mojego folderu binarnego termux do / system / xbin. Umieszczono wszystkie zależności bibliotek w / system / lib i otrzymałem ten błąd. Plik libncurses.so.6, który skopiowałem z termux, miał plik TERMINFO nadal wskazujący na /data/data/com.termux/files/usr/share/terminfo

Wyświetl wskazaną ścieżkę za pomocą polecenia

stringi path-to-libncurses.so | grep / terminfo

Aby naprawić, należy uczynić katalog terminfo dir i podkatalogi terminfo czytelnymi i wykonywalnymi przez użytkownika nano lub skopiować folder terminfo w inne miejsce i użyć edytora szesnastkowego do zmodyfikowania ścieżki zwykłego tekstu w pliku biblioteki współdzielonej.

Link do spakowanego folderu terminfo https://drive.google.com/file/d/1m1tfHgkGRehBGh1jPMK4EaTgQb9EyCG7/view?usp=drivesdk

Fortuna
źródło
Wpadłem do podobnej sytuacji podczas udawania konfiguracji chroot ssh. I naprawiłem to, jak wspomniał @Fortune. znajdź i skopiuj foldery terminfo do struktury folderów chroot
Gayan Kavirathne
0

Słyszałem, że można to naprawić, nadpisując plik /usr/share/terminfo plik z komputera kogoś z działającą instalacją Lion. Nie mogę potwierdzić, czy to działa, czy nie, i niestety jeszcze nie zaktualizowałem, więc nie mogę dostarczyć Ci tego pliku.

EdoDodo
źródło
0

Możesz dodać następujące elementy w swoim .bashrc

if [ "$TERM" = xterm ]; then TERM=xterm-256color; fi
doesnt_matter
źródło