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