8.35. Bash-5.2.21

Пакет Bash содержит Bourne-Again Shell.

Приблизительное время сборки: 1.2 SBU
Требуемое дисковое пространство: 52 MB

8.35.1. Установка пакета Bash

Во-первых, исправьте некоторые проблемы, выявленные разработчиками:

patch -Np1 -i ../bash-5.2.21-upstream_fixes-1.patch

Подготовьте Bash к компиляции:

./configure --prefix=/usr             \
            --without-bash-malloc     \
            --with-installed-readline \
            --docdir=/usr/share/doc/bash-5.2.21

Значение нового параметра настройки:

--with-installed-readline

Этот параметр указывает Bash использовать библиотеку readline, которая уже установлена в системе, а не собственную версию readline.

Скомпилируйте пакет:

make

Перейдите к разделу «Установка пакета», если не планируете запускать тесты.

Перед запуском тестов, убедитесь, что пользователь tester может писать в каталог с исходниками:

chown -R tester .

Набор тестов пакета предназначен для запуска пользователем без полномочий root, которому принадлежит терминал, подключенный к стандартному вводу. Чтобы удовлетворить это требование, создайте новый псевдотерминал с помощью Expect и запустите тесты от имени пользователя tester:

su -s /usr/bin/expect tester << "EOF"
set timeout -1
spawn make tests
expect eof
lassign [wait] _ _ _ value
exit $value
EOF

Набор тестов использует diff для определения разницы между выводом тестового сценария и ожидаемым результатом. Любой вывод diff (с префиксом < и >) указывает на сбой теста, если нет сообщение о том, что различия можно проигнорировать. Известно, что один тест с именем run-builtins не работает на некоторых хост-дистрибутивах, указывая на различия в первой строке выходных данных.

Установите пакет:

make install

Запустите только что скомпилированную программу bash (заменив ту, которая выполняется в данный момент):

exec /usr/bin/bash --login

8.35.2. Содержимое пакета Bash

Установленные программы: bash, bashbug и sh (ссылка на bash)
Созданные каталоги: /usr/include/bash, /usr/lib/bash, and /usr/share/doc/bash-5.2.21

Краткое описание

bash

Широко распространенный командный интерпретатор. Выполняет различные дополнения и подстановки в переданной командной строке перед её выполнением, что делает этот интерпретатор мощным инструментом

bashbug

Скрипт, помогающий пользователю составлять и отправлять по почте отчеты об ошибках bash

sh

Симлинк на программу bash; при вызове sh, bash пытается максимально точно имитировать поведение sh, при этом также соответствуя стандарту POSIX.