6.35. Readline-6.3

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

大概编译时间: 0.1 SBU
需要磁盘空间: 24 MB

6.35.1. 安装 Readline

首先安装补丁修复一些上游标记的 bug:

patch -Np1 -i ../readline-6.3-upstream_fixes-3.patch

重装 Readline 会使旧的库移动到 <libraryname>.old。通常来说这并不是什么问题,但一些情况下可能引起 ldconfig 链接错误。可以通过下面的两个 sed 命令避免这个问题:

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

准备编译 Readline:

./configure --prefix=/usr --docdir=/usr/share/doc/readline-6.3

编译软件包:

make SHLIB_LIBS=-lncurses

make 选项的含义:

SHLIB_LIBS=-lncurses

该选项强制 Readline 链接到 libncurses (实际上是 libncursesw) 库。

该软件包没有测试套件。

安装软件包:

make SHLIB_LIBS=-lncurses 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-6.3

6.35.2. Readline 软件包内容

安装的库: libhistory.{a,so} 和 libreadline.{a,so}
安装目录: /usr/include/readline, /usr/share/readline, 和 /usr/share/doc/readline-6.3

简要介绍

libhistory

为重新查看历史行提供一致的用户界面

libreadline

在多种需要提供命令行接口的程序之间保持用户接口一致性