問題の概要
とあるDockerコンテナ内でclear
コマンドを使ったら
terminals database is inaccessible
が出ました。コンテナはDebianベースの環境です。
解決法
まずterminfoをインストールします。
$ apt install ncurses-term
次に、~/.profile
にterminfo関連の環境変数を設定します。
~/.profile
export TERMINFO=/usr/share/terminfo
export TERM=xterm+256color
編集後はsource ~/.profile
で変更を適用します。
TERMINFO
にはterminfoファイルのあるパスを、TERM
にはその中にあるterminfoファイルを指定します。指定すべき値は環境によって異なる場合があると思います。上記の例ではxterm+256color
のパスは/usr/share/terminfo/x/xterm+256color
になります。
原因
エラーが出ている状態でinfocmp
コマンドを実行すると、下記に示すterminfoが見つからないというようなエラーが出ます。
$ infocmp
infocmp: couldn't open terminfo file xterm-256color.
これが原因です。つまり、terminfoを見つけらるようにすれば解決するということです。