Readline パッケージは、コマンドラインの編集や履歴管理を行うライブラリを提供します。
Readline を再インストールすると、それまでの古いライブラリは <ライブラリ名>.old というファイル名でコピーされます。 これは普通は問題ないことですが ldconfig によるリンクに際してエラーを引き起こすことがあります。 これを避けるため以下の二つの sed コマンドを実行します。
sed -i '/MV.*old/d' Makefile.in sed -i '/{OLDSUFF}/c:' support/shlib-install
Readline のドキュメントに示されるバージョン番号を適切なものにします。
sed -i -e 's/0x0600/0x0601/' \ -e 's/6\.0/6.1/' \ -e 's/RL_VERSION_MINOR\t0/RL_VERSION_MINOR\t1/' readline.h
Readline をコンパイルするための準備をします。
./configure --prefix=/usr --libdir=/lib
パッケージをコンパイルします。
make SHLIB_LIBS=-lncurses
make オプションの意味:
SHLIB_LIBS=-lncurses
このオプションにより Readline を libncurses
ライブラリ (その実体は libncursesw
ライブラリ) にリンクします。
このパッケージにテストスイートはありません。
パッケージをインストールします。
make install
スタティックライブラリを適切なディレクトリに移動します。
mv -v /lib/lib{readline,history}.a /usr/lib
次に /lib
ディレクトリにある .so
ファイルを削除して、それらを /usr/lib
にリンクし直します。
rm -v /lib/lib{readline,history}.so ln -sfv ../../lib/libreadline.so.6 /usr/lib/libreadline.so ln -sfv ../../lib/libhistory.so.6 /usr/lib/libhistory.so
必要ならドキュメントをインストールします。
mkdir -v /usr/share/doc/readline-6.1 install -v -m644 doc/*.{ps,pdf,html,dvi} \ /usr/share/doc/readline-6.1