Выбрать главу

Установка Bzip2-1.0.2

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

Установка Bzip2

Для инсталляции Bzip2 выполните:

make CC="gcc -static" && make PREFIX=$LFS/static install

Стоит заметить, что имеет смысл загрузить патч для программы Tar, который позволяет ей без труда запаковывать и распаковывать архивы с помощью bzip2/bunzip2. Однако этот патч не является частью базовой системы LFS. С обычной версией tar, для работы с bzip2/bunzip2 используются конструкции вида bzcat file.tar.bz | tar -xv или tar –use-compress-prog=bunzip2 -xvf file.tar.bz2. Вышеупомянутый патч предоставляет возможность использования опции -j, при помощи которой распаковать архив bzip2 командой tar -xvfj file.tar.bz2. Применение данного патча будет рассмотрено далее, при установке пакета Tar.

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

make CC="gcc -static": Таким образом мы сообщаем gcc, что компиляция bzip2 должна быть выполнена с использованием статических ссылок.

Содержимое Bzip2

Последняя проверка: версия 1.0.2

Программы

bunzip2 (ссылка на bzip2), bzcat (ссылка на bzip2), bzcmp, bzdiff, bzegrep, bzfgrep, bzgrep, bzip2, bzip2recover, bzless и bzmore

Описания

bunzip2

bunzip2 распаковывает файлы, сжатые bzip2.

bzcat

bzcat (или bzip2 -dc) распаковывает указанные файлы на стандартный вывод.

bzcmp, bzdiff

bzcmp и bzdiff позволяют использовать cmp и diff для файлов, сжатых bzip2.

bzegrep, bzfgrep, bzgrep

bzegrep, bzfgrep, и bzgrep позволяют использовать egrep, fgrep, or grep для файлов, сжатых bzip2.

bzip2

bzip2 сжимает файлы, используя Burrows-Wheeler block sorting алгоритм сжатия текста и код Huffman. Сжатие, обычно: значительно лучше, чем достигаемое традиционными архиваторами, основанными на LZ77/LZ78, и достигает производительности PPM семейства статистических архиваторов.

bzip2recover

bzip2recover восстанавливает данные из поврежденных файлов bzip2.

bzless

bzless – подобный less фильтр, позволяющий поэкранный просмотр сжатых или текстовых файлов.

bzmore

bzmore – подобный more фильтр, позволяющий поэкранный просмотр сжатых или текстовых файлов.

Библиотеки

libbz2.a, libbz2.so (ссылка на libbz2.so.1.0), libbz2.so.1.0 (ссылка на libbz2.so.1.0.2) и libbz2.so.1.0.2

libbz2

libbz2 – библиотека, реализующая сжатие данных без потерь, используя block-sorting алгоритм Burrows-Wheeler.

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

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

Bash: sh Binutils: ar, as, ld, ranlib Fileutils: cp, ln, rm Gcc: cc1, collect2, cpp0, gcc Make: make

Установка Diffutils-2.8.1

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

Инсталляция Diffutils

Для инсталляции Diffutils выполните:

LDFLAGS=-static CPPFLAGS=-Dre_max_failures=re_max_failures2 \ ./configure –prefix=$LFS/static –disable-nls && make && make install

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

CPPFLAGS=-Dre_max_failures=re_max_failures2: Переменная CPPFLAGS считывается программой cpp (препроцессор Си). Значение этой переменной дает указание препроцессору заменить re_max_failures на re_max_failures2 во всех случаях перед тем, как передать файл исходного кода компилятору для компиляции. Известны случаи, когда этот пакет ведет себя некорректно при попытке использовать статические ссылки на системах со старой версией Glibc. Данная конструкция устраняет проблему.

Содержимое Diffutils

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

Программы

cmp, diff, diff3 и sdiff

Описания

cmp и diff

cmp и diff сравнивают пару файлов и сообщают об их различиях. Обе программы имеют дополнительные опции сравнения файлов в различных ситуациях.

diff3

Разница между diff и diff3 состоит в том, что diff сравнивает 2 files, а diff3 – 3.

sdiff

sdiff выполняет слияние 2 файлов и интерактивно выводит результаты.

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

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

Bash: sh Binutils: ld, as Diffutils: cmp Fileutils: chmod, cp, install, mv, rm Gcc: cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Sed: sed Sh-utils: date, hostname Textutils: cat, tr

Установка Fileutils-4.1

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

Инсталляция Fileutils

Некоторые программы из статически слинкованного пакета Fileutils могут вызвать ошибку сегментации на системах, где используется Glibc-2.2.3. Чаще всего эта проблема встречается на системах с процессорами AMD, однако было зафиксировано несколько случаев на Intel-системах. Если ваша система попадает под данную категорию, примените патч.

В некоторых случаях после применения патча компиляция пакета будет невозможна, даже если у вас процессор AMD и библиотеки Glibc-2.2.3 (или новее). В таком случае удалите директорию fileutils-4.1 и заново распакуйте tar-архив. Предполагается, что это связано с тем, что ваш базовый дистрибутив каким-то образом изменил библиотеки Glibc-2.2.3, однако на данный момент подробности недоступны.

Для того чтобы данный пакет корректно компилировался на системах с процессорами AMD и библиотеками Glibc-2.2.3, выполните следующую команду. Не делайте этого, если у вас не установлена Glibc-2.2.3. Более чем вероятно, это вызовет различные сбои при компиляции.

patch -Np1 -i ../fileutils-4.1.patch

Для инсталляции Fileutils выполните:

LDFLAGS=-static \ ./configure –disable-nls –prefix=$LFS/static && make && make install

Теперь можно проверить, удалось ли избежать проблемы с ошибкой сегментации. Выполните $LFS/static/bin/ls. Если программа работает, все в порядке. Если нет, повторите инсталляцию с применением патча, если вы инсталлировали пакет без него, или без применения патча, если до этого вы инсталлировали пакет с его применением.

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

patch -Np1 -i ../fileutils-4.1.patch: Эта команда решает проблему компиляции fileutils с использованием статических ссылок на системах с библиотеками glibc 2.2.3. Если этого не сделать, то впоследствии вы вероятно столкнетесь с ошибками сегментации при выполнении программ из пакета fileutils, когда войдете в систему LFS с помощью chroot в Главе 6.

Содержимое Fileutils

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

Программы

chgrp, chmod, chown, cp, dd, df, dir, dircolors, du, install, ln, ls, mkdir, mkfifo, mknod, mv, rm, rmdir, shred, sync, touch и vdir

Описания

chgrp

chgrp группу владельца указанных файлов, возможно указание как имени группы, так и ее номера.

chmod

chmod изменяет права доступа к указанному файлу, в соответствии с параметрами, заданными символьно или в восьмеричном представлении двоичного выражения новых прав.

chown

chown изменяет владельца и/или группу указанных файлов.

cp

cp копирует файлы.