Readline 软件包是一个提供命令行编辑和历史纪录功能的库集合。
重新安装 Readline 会将老的库libraryname重命名为 <libraryname>.old。然而着并不是一个问题。在某些情况下它会引发 ldconfig 的一个链接 bug。应用下面的两个sed命令可以避免这种情况:
sed -i '/MV.*old/d' Makefile.in sed -i '/{OLDSUFF}/c:' support/shlib-install
Readline 有一个处理非多字节时导致不正确的显示计算和不正确的重新显示。通过应用下面的补丁来修复这个问题:
patch -Np1 -i ../readline-5.2-fixes-5.patch
为编译 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.5 /usr/lib/libreadline.so ln -sfv ../../lib/libhistory.so.5 /usr/lib/libhistory.so
如果有需要,安装文档:
mkdir -v /usr/share/doc/readline-5.2 install -v -m644 doc/*.{ps,pdf,html,dvi} \ /usr/share/doc/readline-5.2