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

patch -Np1 -i ../findutils-4.1.patch && CPPFLAGS=-Dre_max_failures=re_max_failures2 \ ./configure –prefix=$LFS/static && make LDFLAGS=-static && make install

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

patch -Np1 -i ../findutils-4.1.patch: Этот патч исправляет некоторые ошибки при компиляции, избегая конфликта переменных и исправляя синтаксис.

Содержимое Findutils

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

Программы

bigram, code, find, frcode, locate, updatedb и xargs

Описания

bigram

bigram используется вместе с code для создания поисковых баз старого типа. Больше информации об этих программах приведено на locatedb.5 man page.

code

code – предшественник frcode. Он использовался в старых поисковых базах.

find

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

frcode

frcode вызывается updatedb для сжатия списка файлов, используя front-compression и уменьшая размер базы данных в 4-5 раз.

locate

locate просматривает базу данных, содержащую сведения обо всех файлах и каталогах на файловой системе. Программа выводит имена файлов и каталогов в базе, совпадающие с заданным критерием. Если пользователь ищет файлы, программа просмотрит базу и сообщит, где находятся запрошенные файлы. Поиск даст результаты, только если база часто обновляется, иначе будет выдана устаревшая информация.

updatedb

updatedb обновляет поисковую базу. Просматривается вся файловая система (включая все смонтированные, если не указано обратное), каждый найденный файл и каталог записывается в базу, используемую locate. Неплохо обновлять базу хотя бы раз в день, чтобы избежать ее устаревания.

xargs

xargs выполняет команду относительно списка файлов. Список должен содержать одно имя в строке.

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

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

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

Установка Gawk-3.1.1

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

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

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

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

Содержимое Gawk

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

Программы

awk, gawk, gawk-3.1.1, grcat, igawk, pgawk, pgawk-3.1.1, pwcat

Описания

awk

awk – символьная ссылка на gawk.

gawk, gawk-3.1.1

gawk – GNU реализация awk, языка поиска и обработки текстовых образцов.

grcat

grcat выполняет слияние базы групп, /etc/group.

igawk

igawk – скрипт, дающий gawk возможность включения файлов.

pgawk, pgawk-3.1.1

pgawk – профильная версия gawk.

pwcat

pwcat выполняет слияние базы паролей, /etc/passwd.

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

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

(Зависимости пока не проверены)

Установка GCC-3.2

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

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

Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.

Этот пакет известен своим нестабильным поведением при компиляции с измененными опциями оптимизации (включая опции -march и -mcpu). GCC рекомендуется компилировать с настройками по умолчанию. Следовательно, если вы задали переменные такие как CFLAGS или CXXFLAGS, изменяющие уровень оптимизации по умолчанию, рекомендуется убрать их при сборке пакета GCC. Изменяя оптимизации для GCC, вы действуете на свой страх и риск.

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

patch -Np1 -i ../gcc-3.2.patch && patch -Np1 -i ../gcc-3.2-nofixincludes-2.patch && mkdir ../gcc-build && cd ../gcc-build && ../gcc-3.2/configure –prefix=/static –enable-languages=c \ –disable-nls –disable-shared && echo «#define HAVE_GAS_HIDDEN 1» >> gcc/auto-host.h && make BOOT_LDFLAGS=-static bootstrap && make prefix=$LFS/static install && ln -s gcc $LFS/static/bin/cc

Объяснения команд

patch -Np1 -i ../gcc-3.2.patch: Этот патч исправляет некоторые ошибки, в частности содержит «copy fix» и «var fix», документированные на сайте http://www.zipworld.com.au/~gschafer/lfs-tweaks.html.

patch -Np1 -i ../gcc-3.2-nofixincludes-2.patch: Предотвращает запуск скрипта fixincludes.

–prefix=/static: Это НЕ опечатка. При компиляции, GCC жестко прописывает пути, и нам необходимо передать путь /static в качестве префикса к скрипту ./configure. Реальный путь инсталляции мы укажем команде make install.

–enable-languages=c: Указание собрать компилятор Си. Компилятор C++ будет собран позже, в Главе 6, когда мы будем перекомпилировать GCC. Для сборки других компиляторов, опустите параметр –enable-languages.

echo «#define HAVE_GAS_HIDDEN 1»: Определим директиву ассемблера .hidden, для того чтобы впоследствии скомпилировать Glibc правильно.

make BOOT_LDFLAGS=-static: Это эквивалент опции LDFLAGS=-static, который мы задаем для использования статических ссылок при компиляции.