tput: unknown terminal “xterm-256color”

蓝咒 提交于 2020-01-04 05:35:53

问题


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

回答1:


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 



回答2:


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, e.g.,

$ 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).



来源:https://stackoverflow.com/questions/32798940/tput-unknown-terminal-xterm-256color

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!