8.11. Readline-8.1

Readline 软件包包含一些提供命令行编辑和历史记录功能的库。

估计构建时间: 0.1 SBU
需要硬盘空间: 16 MB

8.11.1. 安装 Readline

重新安装 Readline 会导致旧版本的库被重命名为 <库名称>.old。这一般不是问题,但某些情况下会触发 ldconfig 的一个链接 bug。运行下面的两条 sed 命令防止这种情况:

sed -i '/MV.*old/d' Makefile.in
sed -i '/{OLDSUFF}/c:' support/shlib-install

准备编译 Readline:

./configure --prefix=/usr    \
            --disable-static \
            --with-curses    \
            --docdir=/usr/share/doc/readline-8.1

配置选项的含义

--with-curses

该选项告诉 Readline 它可以在 curses 库中查找 termcap 库函数,而不是单独的 termcap 库。这样就能生成正确的 readline.pc 文件。

编译该软件包:

make SHLIB_LIBS="-lncursesw"

make 命令选项的含义

SHLIB_LIBS="-lncursesw"

该选项强制 Readline 链接到 libncursesw 库。

该软件包不包含测试套件。

安装该软件包:

make SHLIB_LIBS="-lncursesw" install

下面将动态库移动到更合适的位置,并修复符号链接:

mv -v /usr/lib/lib{readline,history}.so.* /lib
ln -sfv ../../lib/$(readlink /usr/lib/libreadline.so) /usr/lib/libreadline.so
ln -sfv ../../lib/$(readlink /usr/lib/libhistory.so ) /usr/lib/libhistory.so

如果您希望的话,可以安装文档:

install -v -m644 doc/*.{ps,pdf,html,dvi} /usr/share/doc/readline-8.1

8.11.2. Readline 的内容

安装的库: libhistory.so 和 libreadline.so
安装的目录: /usr/include/readline 和 /usr/share/doc/readline-8.1

简要描述

libhistory

提供一个查询之前输入行的一致用户接口

libreadline

提供一组在程序的交互会话中操纵输入的文本的命令