8.12. Readline-8.2.13

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

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

8.12.1. 安装 Readline

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

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

下面防止在共享库中硬编码库文件搜索路径 (rpath)。该软件包在安装到标准位置时并不需要 rpath,而且 rpath 在一些情况下会产生我们不希望的副作用,甚至导致安全问题:

sed -i 's/-Wl,-rpath,[^ ]*//' support/shobj-conf

准备编译 Readline:

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

新的配置选项的含义:

--with-curses

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

编译该软件包:

make SHLIB_LIBS="-lncursesw"

make 命令选项的含义:

SHLIB_LIBS="-lncursesw"

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

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

安装该软件包:

make SHLIB_LIBS="-lncursesw" install

如果需要,安装该软件包的文档:

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

8.12.2. Readline 的内容

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

简要描述

libhistory

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

libreadline

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