6.28. Readline-6.1

Readline 软件包是一个提供命令行编辑和历史纪录功能的库集合。

预计编译时间: 0.2 SBU
所需磁盘空间: 13.8 MB

6.28.1. 安装 Readline

重新安装 Readline 会将老的库重命名为<libraryname>.old。这通常并不是问题。 但是, 在某些情况下它会引发ldconfig的一个链接bug。 应用下面的两个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

6.28.2. Readline 的内容

安装的库:: libhistory.{a,so}, and libreadline.{a,so}

简要描述

libhistory

提供一个统一的调用历史行的用户接口

libreadline

应用于各种需要命令行接口的应用程序的统一的用户接口的辅助程序