Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

6.28. Readline-6.1

The Readline package is a set of libraries that offers command-line editing and history capabilities.

Approximate build time: 0.2 SBU
Required disk space: 13.8 MB

6.28.1. Installation of Readline

Reinstalling Readline will cause the old libraries to be moved to <libraryname>.old. While this is normally not a problem, in some cases it can trigger a linking bug in ldconfig. This can be avoided by issuing the following two seds:

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

Correct the version number used in Readline's documentation:

sed -i -e 's/0x0600/0x0601/' \
       -e 's/6\.0/6.1/' \
       -e 's/RL_VERSION_MINOR\t0/RL_VERSION_MINOR\t1/' readline.h

Prepare Readline for compilation:

./configure --prefix=/usr --libdir=/lib

Compile the package:

make SHLIB_LIBS=-lncurses

The meaning of the make option:

SHLIB_LIBS=-lncurses

This option forces Readline to link against the libncurses (really, libncursesw) library.

This package does not come with a test suite.

Install the package:

make install

Now move the static libraries to a more appropriate location:

mv -v /lib/lib{readline,history}.a /usr/lib

Next, remove the .so files in /lib and relink them into /usr/lib:

rm -v /lib/lib{readline,history}.so
ln -sfv ../../lib/libreadline.so.6 /usr/lib/libreadline.so
ln -sfv ../../lib/libhistory.so.6 /usr/lib/libhistory.so

If desired, install the documentation:

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

6.28.2. Contents of Readline

Installed libraries: libhistory.{a,so}, and libreadline.{a,so}
Installed directories: /usr/include/readline, /usr/share/readline, /usr/share/doc/readline-6.1

Short Descriptions

libhistory

Provides a consistent user interface for recalling lines of history

libreadline

Aids in the consistency of user interface across discrete programs that need to provide a command line interface