Примечание: инсталляция других компиляторов не тестировалась разработчиками проекта LFS.
patch -Np1 -i ../gcc-3.2.patch && mkdir ../gcc-build && cd ../gcc-build && ../gcc-3.2/configure –prefix=/usr –enable-shared \ –enable-languages=c,c++ –enable-threads=posix \ –with-slibdir=/lib –enable-__cxa_atexit \ –enable-clocale=gnu && make bootstrap && make install && ln -s ../usr/bin/cpp /lib && ln -s ../bin/cpp /usr/lib && ln -s gcc /usr/bin/cc
Пояснение команд
–enable-threads=posix: Эта опция включает обработку исключений в многопоточном коде на С++.
–enable-__cxa_atexit: Эта опция позволит использовать shared-библиотеки C++ и программы, написанные на C++, с другими дистрибутивами Linux.
–enable-clocale=gnu: Существует опасность, что у некоторых пользователей будут компилироваться ABI-несовместимые библиотеки С++, если glibc localedata не установлен полностью. Использование опции –enable-clocale=gnu гарантирует корректную компиляцию во всех случаях. Если вы не хотите использовать эту опцию, удостоверьтесь, что по крайней мере, устанавливается локаль de_DE. Когда GCC находит эту конкретную локаль, выполняется верный режим локали (gnu).
Содержимое GCC
Последняя проверка: версия 3.1.
Программы
c++, c++filt, cc (link to gcc), cc1, cc1plus, collect2, cpp, cpp0, g++, gcc, gccbug, gcov и tradcpp0
Описания
cc, cc1, cc1plus, gcc
Компилятор C. Компилятор переводит код из текстового формата в формат, понятный компьютеру. После того, как исходный код скомпилирован в объектный файл, линкер создаст исполняемый файл из одного или нескольких объектных.
c++, cc1plus, g++
Компилятор C++, эквивалент cc, gcc etc.
c++filt
Язык C++ позволяет осуществлять перезагрузку функций, делая возможным написание многих функций с одним именем (с разным набором параметром). Все имена функций C++ закодированы в низкоуровневые метки ассемблера (этот процесс известен как mangling). c++filt совершает обратное действие: низкоуровневые имена переводятся (demangling) в имена, понятные пользователю, так что линкер избегает конфликта между перезагруженными функциями.
collect2
collect2 помогает в компиляции конструкторов.
cpp, cpp0
cpp осуществляет препроцессинг исходных файлов, например включает в них содержимое заголовочных файлов. Просто добавьте в ваш исходный файл строку вроде #include . Препроцессор вставит содержимое заголовочного файла.
gccbug
gccbug – скрипт, облегчающий создание сообщений об ошибках.
gcov
gcov анализирует программы, чтобы помочь в создании более эффективного и быстрого кода путем его оптимизации.
tradcpp0
На данный момент описания нет.
Библиотеки
libgcc.a, libgcc_eh.a, libgcc_s.so, libiberty.a, libstdc++.[a,so], libsupc++.a
Описания
libgcc, libgcc_eh, libgcc_s
Файлы поддержки gcc времени исполнения.
libiberty
libiberty – коллекция подпрограмм, используемых различными программами GNU, включая getopt, obstack, strerror, strtol и strtoul.
libstdc++
libstdc++ – библиотека C++. Она используется программами на C++ и содержит часто используемые функции. Таким образом, программисту не нужно писать стандартные функции (например, вывод строки текста на экран) с нуля при каждом создании программы.
libsupc++
libsupc++ предоставляет поддержку языка программирования C++. Помимо прочего, libsupc++ содержит функции для обработки исключений.
Зависимости GCC
Последняя проверка: версия 2.95.3.
Bash: sh Binutils: ar, as, ld, nm, ranlib Diffutils: cmp Fileutils: chmod, cp, ln, ls, mkdir, mv, rm, touch Find: find Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Patch: patch Sed: sed Sh-utils: basename, dirname, echo, expr, hostname, sleep, true, uname Tar: tar Texinfo: install-info, makeinfo Textutils: cat, tail, tr
Установка Zlib-1.1.4
Приблизительное время компиляции: 0.07 SBU Необходимое дисковое пространство: 1 MB
Инсталляция Zlib
Для инсталляции Zlib выполните:
./configure –prefix=/usr –shared && make LIBS="libz.so.1.1.4 libz.a" && make LIBS="libz.so.1.1.4 libz.a" install && mv /usr/lib/libz.so.* /lib && ln -sf ../../lib/libz.so.1 /usr/lib/libz.so && cp zlib.3 /usr/share/man/man3
Содержимое Zlib
Последняя проверка: версия 1.1.4.
Библиотеки
libz[a,so]
Описания
libz
Библиотека zlib, используемая многими программами, и реализующая методы (де)компрессии данных.
Зависимости Zlib
Зависимости еще не проверялись.
Установка Findutils-4.1
Приблизительное время компиляции: 0.10 SBU Необходимое место на диске: 3 MB
Инсталляция Findutils
Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.
Для инсталляции Findutils выполните:
patch -Np1 -i ../findutils-4.1.patch && ./configure –prefix=/usr && make libexecdir=/usr/bin && make libexecdir=/usr/bin install
Замечания по соответствию FHS
По умолчанию, база данных updatedb находится /usr/var. Если вы хотите полного соответствия со стандартом FHS, установите ее в другом месте. Приведенные ниже команды используют совместимый с FHS файл базы данных /var/lib/misc/locatedb.
patch -Np1 -i ../findutils-4.1.patch && ./configure –prefix=/usr && make localstatedir=/var/lib/misc libexecdir=/usr/bin && make localstatedir=/var/lib/misc libexecdir=/usr/bin 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