Установка Bash-2.05a

Приблизительное время компиляции:           1 SBU 
Необходимое дисковое пространство: 24 MB

Установка Bash

Перед тем как установить Bash, убедитесь, что в вашем базовом дистрибутиве есть файлы /usr/lib/libcurses.a и usr/lib/libncurses.a. Если ваш дистрибутив - LFS system, оба файла должны быть на месте при условии, что вы в точности следовади инструкциям книги.

Если этих файлов нет, следует установить пакет разработки Ncurses, его иногда называют ncurses-dev. Если этот пакет уже установлен, или вы только что его установили, проверьте наличие этих двух файлов еще раз. Зачастую файл libcurses.a отсутствует. В таком случае, создайте символическую ссылку libcurses.a, выполнив следующую команду в режиме пользователя root:

ln -s libncurses.a /usr/lib/libcurses.a

Теперь можно продолжить инсталляцию Bash:

./configure --enable-static-link \
    --prefix=$LFS/static --with-curses &&
make &&
make install

Если стадия make install выдает следующие сообщения об ошибках:

install-info: unknown option `--dir-file=/mnt/lfs/usr/info/dir' 
usage: install-info [--version] [--help] [--debug] [--maxwidth=nnn]
[--section regexp title] [--infodir=xxx] [--align=nnn]
[--calign=nnn] [--quiet] [--menuentry=xxx]
[--info-dir=xxx]
[--keep-old] [--description=xxx] [--test]
[--remove] [--] filename
make[1]: *** [install] Error 1
make[1]: Leaving directory `/mnt/lfs/usr/src/bash-2.05a/doc'
make: [install] Error 2 (ignored)

это означает, что у вас Debian-2.2 (potato), в котором используется старая версия пакета texinfo. Данная ошибка не критична: страницы документации будут заново установлены в Главе 6, при перекомпиляции bash с динамическими ссылками. В текущем релизе Debian (3.0; известном под названием Woody) эта проблема отсутствует.

Пояснения команд

--enable-static-link: Эта опция configure указывает на использование статических ссылок.

--prefix=$LFS/static: Эта опция configure инсталлирует все файлы Bash в директорию $LFS/static, которая будет именоваться /static после того, как мы войдем в систему LFS с помощью команды chroot или перезагрузки.

--with-curses: Эта опция связывает bash с библиотекой curses вместо устаревающей библиотеки termcap.

Совершенно необязательно связывать статичеккую версию bash с libncurses (можно связать ее с termcap, т.к. в любом случае мы перекомпилируем Bash в Главе 6 с использованием libncurses), однако это хороший способ убедиться, что пакет Ncurses установлен корректно. В обратном случае, это повлечет за собой сбои при инсталляции пакета Texinfo, которому необходима библиотека ncurses, т.к. с termcap он ведет себя нестабильно.

Символы && в конце каждой строки указывают на то, что следующая команда должна быть выполнена лишь в том случае, если предыдущая команда возвратила значение 0 на выходе, т.е. успешно завершила операцию. В том случае если вы копируете и вставляете эти команды в оболочку, не забывайте убедиться, что если скрипт ./configure дал сбой, не выполняется команда make, а также, если команда make дала сбой, не выполняется команда make install, и т.д.

Содержание Bash

Последняя проверка: версия 2.05a.

Программы

bash, sh (ссылка на bash) и bashbug

Описания

bash

bash - Bourne-Again SHell, широко используемый в Unix системах командный интерпретатор. Bash считывает данные со стандартного ввода, с клавиатуры. Пользователь вводит что-либо, интерпретатор распознает введенное и выполняет это, например запускает программу.

bashbug

bashbug - скрипт, помогающий пользователю составлять и отправлять сообщения об ошибках bash в стандартном формате.

sh

sh - символическая ссылка на  bash. Будучи вызванным как sh, bash имитирует запуск старых версий sh для лучшего соответствия стандартам POSIX.

Зависимости Bash

Последняя проверка: версия 2.05a.

Bash: bash, sh
Binutils: ar, as, ld, ranlib, size
Diffutils: cmp
Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm
Gcc: cc, cc1, collect2, cpp0, gcc
Grep: egrep, grep
Make: make
Gawk: awk
Sed: sed
Sh-utils: basename, echo, expr, hostname, sleep, uname
Texinfo: install-info
Textutils: cat, tr, uniq