The Readline package is a set of libraries that offers command-line editing and history capabilities.
Reinstalling Readline will cause the old libraries to be moved to <libraryname>.old. While this is normally not a problem, in some cases it can trigger a linking bug in ldconfig. This can be avoided by issuing the following two seds:
sed -i '/MV.*old/d' Makefile.in sed -i '/{OLDSUFF}/c:' support/shlib-install
Readline contains a bug in its handling of non-multibyte characters, which can lead to incorrect display calculations and incorrect redisplay. Fix this issue by applying the following patch from the upstream maintainer:
patch -Np1 -i ../readline-5.2-fixes-3.patch
Prepare Readline for compilation:
./configure --prefix=/usr --libdir=/lib
Compile the package:
make SHLIB_LIBS=-lncurses
The meaning of the make option:
SHLIB_LIBS=-lncurses
This option forces Readline to link against the libncurses
(really, libncursesw
) library.
This package does not come with a test suite.
Install the package:
make install
Now move the static libraries to a more appropriate location:
mv -v /lib/lib{readline,history}.a /usr/lib
Next, remove the .so
files in
/lib
and relink them into
/usr/lib
:
rm -v /lib/lib{readline,history}.so ln -sfv ../../lib/libreadline.so.5 /usr/lib/libreadline.so ln -sfv ../../lib/libhistory.so.5 /usr/lib/libhistory.so