インストール: ncurses | 端末操作の基本ライブラリー

GNOME Terminal

端末に依存しないテキストユーザーインターフェイス (TUI) のAPIを提供するncurses (new curses) をソースコードからインストールする。

ncursesは端末操作の実装に使われており,MariaDB, Vim, Emac, GNU screen, tmuxなどの多くのライブラリーに利用されている。

インストール情報
項目 説明
配布元
リポジトリー
手順
依存情報
依存先 (必須)
  • Make (GNU Make), sh, awk, sed, install
依存先 (任意)
依存元
インストールコマンド
sh -eux <<-"EOT"
PKG=ncurses VER=6.2 TAG=v$VER PKG_VER=$PKG${VER:+-$VER}
LOCAL=$([ $(id -u) = 0 ] && echo /usr/ || echo ~/.)local
J=$(grep -cs '^processor' /proc/cpuinfo || echo 2)
mkdir -p "$LOCAL/src"
cd "$LOCAL/src"

if command -v git >/dev/null; then
  [ -e $PKG ] || git clone --depth 1 git://ncurses.scripts.mit.edu/ncurses.git $PKG
  cd $PKG
  git fetch --depth 1 origin tag $TAG
  git checkout -f $TAG
  git clean -dfX
else
  [ -e $PKG_VER ] || wget ftp://ftp.invisible-island.net/ncurses//$PKG_VER.tar.gz
  tar -xf $PKG_VER.*
  cd $PKG_VER
fi

make -kj $J distclean clean || : ./configure --prefix="$LOCAL/stow/$PKG_VER" --with-shared --with-termlib make -j $J make -j $J install cd "$LOCAL/stow" echo $PKG${VER:+-}[0-9]* | xargs -n 1 stow -D stow $PKG_VER EOT
インストール例
日付 バージョン OS 依存関係
2018-06-20 6.1 Ubuntu 16.04
2019-05-02 6.1 Ubuntu 18.04 GNU Make 4.2.1, GCC 7.4.0
2020-08-07 6.2 Ubuntu 20.04 GNU Make 4.2.1, GCC 9.3.0

デフォルトでは共有ライブラリー (.so) をビルドしないので,./configureのオプションに--with-sharedを指定した。

また,makeを実行するとtest/配下のいくつかのテストプログラムも自動的にビルドされる。ncursesのテストはtest配下のプログラムを手動で実行することで行うようだ。ただし,正解がよくわからないので飛ばした。

configure--with-termlibオプションを指定している。このオプションを指定しない場合,Terminfo (libtinfo.so) がlibncurses.soにマージされている。多くの場合はこれでも問題ないのだが,このままだとlibtinfo.soを直接使うプログラムに対応できない。--with-termlibを指定すると,libncurses.soに取り込まれていたlibtinfo.soが別のファイルとして分離される。

ほぼGNU Readlineで発生した問題のための対応となる。詳細は「libreadline.so.8: undefined symbol: UPの対処方法」を参照する。

ncursesのインストールが完了したらTERMINFO環境変数を以下のように設定しておく。この環境変数を指定しておかないと,ncursesの利用プログラムでterminfoの情報を認識できず,警告がでることがある。

export TERMINFO="$LOCAL/share/terminfo"

マニュアル (ncurses 3x) にある通り,この環境変数でローカルの端末定義の検索先を指定できる。最初にこの環境変数で指定した場所を探し,なければシステムの定義場所 (/usr/share/terminfo) を検索する。

PATH環境変数などと異なり,:で区切って複数指定することはできないようなので注意する。この環境変数の設定が「E437: terminal capability “cm” requiredの対処方法」の問題の解決に必須となる。

インストール: ncurses | 端末操作の基本ライブラリー” に対して2件のコメントがあります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です