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, который мы задаем для использования статических ссылок при компиляции.