インストール: GNU Readline | コマンドライン操作の共通ライブラリー

対話シェルなどのコマンドラインでの操作を便利にしてくれるGNU Readlineをソースコードからインストールする。
GNU ReadlineはBashやGDB,PostgreSQL, Python, Rubyといった対話シェルを実装している数多のソフトウェアで利用されており,これらのソフトの依存関係の一つになっている。
厳密には,GNU Readlineなしでもこれらのソフトをインストール可能ではあるが,GNU Readlineがないと対話シェルで履歴の活用,タブ補完が利用できず,カーソル移動すらままならない。そのため,GNU Readlineを有効にしてのインストールが強く推奨される。
項目 | 説明 |
---|---|
配布元 | |
リポジトリー | |
手順 | |
依存情報 | |
依存先 (必須) |
|
依存先 (任意) | |
依存元 |
|
sh -eux <<-"EOT"
PKG=readline VER=8.0 TAG=$PKG-$VER PKG_VER=$PKG${VER:+-$VER}
LOCAL=~/.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://git.savannah.gnu.org/$PKG.git
cd $PKG
git fetch --depth 1 origin tag $TAG
git checkout -f $TAG
git clean -dfX
else
[ -e $PKG_VER ] || wget ftp://ftp.gnu.org/gnu/$PKG/$PKG_VER.tar.gz
tar -xf $PKG_VER.*
cd $PKG_VER
make -kj $J distclean clean || :
fi
[ -x configure ] && ./configure --prefix="$LOCAL/stow/$PKG_VER"
pkg-config --exists tinfo && OPTION=SHLIB_LIBS=ltinfo
make -j $J $OPTION
make -j $J check
make -j $J install
cd "$LOCAL/stow"
echo $PKG${VER:+-}[0-9]* | xargs -n 1 stow -D
stow $PKG_VER
EOT
日付 | バージョン | OS | 依存関係 |
---|---|---|---|
2018-09-23 | 7.0 | Ubuntu 16.04 | GNU Make 4.2.1, GCC 8.1.0 |
2019-03-03 | 8.0 | Ubuntu 18.04 | GNU Make 4.2.1, GCC 8.1.0 |
2019-07-05 | 8.0 | Ubuntu 18.04 | GNU Make 4.2.1, GCC 7.4.0 |
2020-08-08 | 8.0 | Ubuntu 20.04 | GNU Make 4.2.1, GCC 9.3.0, ncurses 6.2 |
以上で完了となる。
Ubuntu 20.04にOSを更新すると,awkなどがローカルのGNU Readlineを参照するとundefined symbol: UPなどのエラーを出すようになってしまった。
これを防ぐために,GNU Readlineにlibtinfo
をリンクするようにした。詳細は「libreadline.so.8: undefined symbol: UPの対処方法」を参照する。
“インストール: GNU Readline | コマンドライン操作の共通ライブラリー” に対して1件のコメントがあります。