6.27. Readline-5.2

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

预计编译时间: 0.1 SBU
所需磁盘空间: 10.2 MB

6.27.1. 安装 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

6.27.2. Readline 的内容

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

简要描述

libhistory

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

libreadline

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


Host by Alair