[英]How does ncurses search for terminal descriptions
由於某些原因,我正在從源代碼構建ncurses 6.1。 首先,我用
./configure
然后我用
make
兩者都沒有參數。 當我嘗試運行測試時,出現錯誤消息
Error opening terminal: xterm-256color.
在我的本地系統(Ubuntu 17.10)上
Error opening terminal: xterm
在構建服務器(Jenkins Docker容器)上。
我發現此構建正在/usr/share/terminfo/
尋找終端說明。 我的本地系統上有很多描述,但沒有xterm-256color
。 在構建服務器上,文件夾/usr/share/terminfo/
為空。 我在/lib/terminfo
找到了xterm-256color
和xterm
。 當我使用軟件包管理器(適用於Ubuntu 17.10)安裝ncurses時,它可以工作。 因此,我認為此程序包選擇正確的路徑。 我復制了xterm-256color
resp。 從/lib/terminfo
到/usr/share/terminfo/
xterm
,我的構建現在可以在兩個系統上使用。 為什么存在兩個不同的路徑,為什么這兩個版本的ncurses選擇兩個不同的路徑? 我需要一個ncurses的柯南包,它可以直接使用而無需復制描述文件。
這可能與以下內容重復: 從源代碼構建ncurses時如何為terminfo數據庫設置自定義搜索路徑
答案在configure
末尾的摘要中(問題中未顯示)。 但是運行infocmp -D
將顯示在查找描述時infocmp
將使用的目錄。
您可以使用TERMINFO
和TERMINFO_DIRS
環境變量來修改行為。
/lib/terminfo
是特定於Debian的(Ubuntu不對ncurses進行任何更改;它們只是重新編譯Debian軟件包:大多數有關ncurses的Ubuntu錯誤報告都解決了這樣做的問題)。
默認情況下,Debian將某人的最小終端數據庫概念安裝在該目錄中。 安裝ncurses-term
以獲得完整的終端數據庫。
順便說一下,在已安裝ncurses的Debian / Ubuntu /其他系統上編譯和安裝ncurses可能會破壞現有的庫,例如bash
和您可能需要的其他實用程序所使用的庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.