简体   繁体   中英

tput: unknown terminal “xterm-256color”

I'm running OS X 10.10.5. I'm getting an error trying to open a terminal:

tput: unknown terminal "xterm-256color"

This is obviously a missing termcap entry.

$ port list ncurses
ncurses                        @6.0            devel/ncurses

Any ideas how to install 'ncurses-term' on OS X?

$ sudo port install ncurses-term
Password:
Error: Port ncurses-term not found

The problem was with an Anaconda package:

https://groups.google.com/a/continuum.io/forum/#!topic/anaconda/XKMFYqM12Vg

It appears there is some problem with an earlier version of the ncurses package that interferes with terminfo

conda install -c r ncurses 

Notwithstanding the existence of bloated/monolithic packages on Linux, the package maintainers for ncurses packages often split up the 7Mb of terminfo into "base" and "term" chunks (and separate it from the library). The MacPorts maintainer for ncurses has not done this. The terminal database is part of the "ncurses" package. For instance, I see this from

port contents ncurses@6.0_0+universal

under /opt:

/opt/local/share/terminfo/73/screen.xterm-256color

Also there is a system (non-port) copy here:

/usr/share/terminfo/78/xterm-256color

Applications linked with ncurses will generally use one or the other, depending on whether they are linked with the port- or system-library. However, ncurses can be told to look some other place by setting the TERMINFO variable. If you happen to have copied some customization from another machine into your .bashrc , that could have set TERMINFO .

By itself, tput gives no clue where it is looking for a terminal entry. You can check the output from env to see if TERMINFO is set. The infocmp utility can show where it looks (since late 2011 ), using the -D option, eg,

$ infocmp -D
/usr/local/ncurses/share/terminfo
/usr/share/terminfo
/opt/local/share/terminfo

By the way, OSX does not (barring some specialized ports) use termcap as such. It uses terminfo , as part of some given release of ncurses (see for example the manual page for tgetent ).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM