Текст книги "Linux From Scratch"
Автор книги: Gerard Beekmans
Жанр:
ОС и Сети
сообщить о нарушении
Текущая страница: 5 (всего у книги 18 страниц)
Приблизительное время компиляции: 0.12 SBU Необходимое дисковое пространство: 8 MB
Инсталляция Findutils
Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.
Для инсталляции Findutils выполните:
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, который мы задаем для использования статических ссылок при компиляции.
ln -s gcc $LFS/static/bin/cc: Создание символической ссылки $LFS/static/bin/gcc, необходимой для некоторых пакетов.
Содержимое 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
Установка Grep-2.5Estimated build time: 0.26 SBU Estimated required disk space: 5 MB
Установка Grep
Установка Grep осуществляется следующей командой:
LDFLAGS=-static CPPFLAGS=-Dre_max_failures=re_max_failures2 ./configure –prefix=$LFS/static –disable-nls –disable-perl-regexp && make && make install
Содержимое Grep
Последняя проверка: версия 2.5.
Программы
egrep (ссылка на grep), fgrep (ссылка на grep) и grep
Описания
egrep
egrep выводит строки файлов, совпадающие с образцом, заданном в виде расширенного регулярного выражения.
fgrep
fgrep выводит строки файлов, соответствующие списку заданных строк.
grep
grep выводит строки файлов, соответствующие регулярному выражению.
Зависимости Grep
Последняя проверка: версия 2.4.2.
Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: as, ld Diffutils: cmp Fileutils: chmod, install, ls, mkdir, mv, rm Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, uname Texinfo: install-info, makeinfo Textutils: cat, tr
Установка Gzip-1.2.4aПриблизительное время компиляции: 0.04 SBU Необходимое дисковое пространство: 2 MB
Инсталляция Gzip
Для инсталляции Gzip выполните:
./configure –prefix=$LFS/static && make LDFLAGS=-static && make install
Содержимое Gzip
Последняя проверка: версия 1.2.4a.
Программы
gunzip (ссылка на gzip), gzexe, gzip, uncompress (ссылка на gunzip), zcat (ссылка на gzip), zcmp, zdiff, zforce, zgrep, zmore и znew
Описание
gunzip, uncompress
gunzip и uncompress распаковывают файлы, сжатые gzip.
gzexe
gzexe позволяет сжать исполняемые файлы и автоматически распаковывать их при запуске (уменьшается производительность ).
gzip
gzip уменьшает размер указанных файлов используя код Lempel-Ziv (LZ77).
zcat
zcat распаковывает и выводит на стандартный вывод либо файлы из заданного списка, либо файл со стандартного ввода.
zcmp
zcmp применяет cmp к сжатым файлам.
zdiff
zdiff применяет diff к сжатым файлам.
zforce
zforce присваивает расширение .gz всем файлам gzip, так что они не будут сжаты дважды. Может быть полезно для файлов, чьи имена были изменены после их передачи.
zgrep
zgrep применяет grep к сжатым файлам.
zmore
zmore – фильтр, позволяющий поэкранный просмотр (не)сжатых текстовых файлов (вроде more).
znew
znew конвертирует файлы формата .Z (compress) в .gz (gzip).
Зависимости Gzip
Последняя проверка: версия 1.2.4a.
Bash: sh Binutils: as, ld, nm Fileutils: chmod, cp, install, ln, mv, rm Gcc: cc1, collect2, cpp, cpp0, gcc Grep: egrep, grep Make: make Sed: sed Sh-utils: hostname Textutils: cat, tr
Установка Make-3.79.1Приблизительное время компиляции: 0.26 SBU Необходимое место на диске: 8 MB
Инсталляция Make
Для инсталляции Make выполните:
./configure –prefix=$LFS/static –disable-nls && make LDFLAGS=-static && make install
Во время стадии make install на экран будет выведено следующее предупреждение:
chgrp: changing group of `/mnt/lfs/static/bin/make': Operation not permitted /mnt/lfs/static/bin/make needs to be owned by group kmem and setgid; otherwise the `-l' option will probably not work. You may need special privileges to complete the installation of /mnt/lfs/static/bin/make.
Не обращайте на него внимания. Программа make не должна принадлежать группе kmem и setgid для выполнения опции –l . (Данная опция говорит команде make не начинать новых заданий, если загрузка системы достигла определенного уровня.)
Содержимое Make
Последняя проверка: версия 3.79.1.
Программы
make
Описания
make
make автоматически определяет, какие части объемной программы нуждаются в рекомпиляции, и выполняет все необходимые для этого команды.
Зависимости Make
Последняя проверка: версия 3.79.1.
Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: as, ld Diffutils: cmp Fileutils: chgrp, chmod, install, ls, mv, rm Gcc: cc, cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, uname Texinfo: install-info, makeinfo Textutils: cat, tr
Установка Patch-2.5.4Приблизительное время компиляции: 0.10 SBU Необходимое дисковое пространство: 3 MB
Инсталляция Patch
Для инсталляции Patch выполните:
CPPFLAGS=-D_GNU_SOURCE ./configure –prefix=$LFS/static && make LDFLAGS=-static && make install
Пояснения команд
CPPFLAGS=-D_GNU_SOURCE: Установка этого параметра исправляет ошибки инсталляции на платформах PPC и m68k. Этот параметр не помешает компиляции на других платформах, например на x86, поэтому мы устанавливаем его по умолчанию.
Содержимое Patch
Последняя проверка: версия 2.5.4.
Программы
patch
Описания
patch
patch модифицирует файл в соответствии с патчем. Патч обычно является списком, созданным diff, содержащим инструкции к изменению. Patch часто используется для исправлений в исходном коде, поскольку сохраняет время и место на диске. Например, имеется пакет объемом 1 MB. Следующая версия пакета имеет изменения только в 2 файлах. Новая версия может быть как новым пакетом в 1 MB или патчем в 1 KB. Таким образом, патчи позволяют избежать объемных загрузок.
Зависимости Patch
Последняя проверка: версия 2.5.4.
Bash: sh Binutils: as, ld Diffutils: cmp Fileutils: chmod, install, mv, rm Gcc: cc, cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, grep Make: make Sed: sed Sh-utils: echo, expr, hostname, uname Textutils: cat, tr
Установка Sed-3.02Приблизительное время компиляции: 0.09 SBU Необходимое дисковое пространство: 2 MB
Инсталляция Sed
Для инсталляции Sed выполните:
CPPFLAGS=-Dre_max_failures=re_max_failures2 ====./configure –prefix=$LFS/static && make LDFLAGS=-static && make install
Содержимое Sed
Последняя проверка: версия 3.02.
Программы
sed
Описания
sed
sed – редактор потоков. Он используется для основных преобразований текста на потоке ввода (файл или ввод из другого процесса).
Зависимости Sed
Последняя проверка: версия 3.02.
Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, install, ls, mv, rm Gcc: cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: echo, expr, hostname, sleep Texinfo: install-info, makeinfo Textutils: cat, tr
Установка Sh-utils-2.0Приблизительное время компиляции: 0.47 SBU Необходимое дисковое пространство: 42 MB
Инсталляция Sh-utils
Перед инсталляцией Sh-utils необходимо применить патч, необходимый для избегания конфликта имен переменных с некоторыми версиями Glibc (обычно glibc-2.1.x) при компиляции sh-utils с использованием статических ссылок. Рекомендуем воспользоваться данным патчем вне зависимости от используемой версии glibc.
patch -Np1 –I ../sh-utils-2.0.patch
Для инсталляции Sh-utils выполните:
./configure –prefix=$LFS/static –disable-nls && make LDFLAGS=-static && make install
На стадии make install следующее предупреждение будет выведено на экран:
WARNING: insufficient access; not installing su NOTE: to install su, run 'make install-root' as root
Не обращайте на него внимание. В соответствии с требованиями Sh-utils для установки программы su, вы должны находиться в системе в режиме пользователя root. Смело проигнорируйте это предупреждение, т.к. на данном этапе команда su не нужна, мы установим ее должным образом при перекомпилировании пакета Sh-utils в Главе 6.
Содержимое Sh-utils
Последняя проверка: версия 2.0.
Программы
basename, chroot, date, dirname, echo, env, expr, factor, false, groups, hostid, id, logname, nice, nohup, pathchk, pinky, printenv, printf, pwd, seq, sleep, stty, su, tee, test, true, tty, uname, uptime, users, who, whoami и yes
Описания
basename
basename удаляет каталоги и суффиксы из имен файлов.
chroot
chroot запускает команду или оболочку в указанном корневом каталоге.
date
date выводит текущее время в указанном формате или устанавливает.
dirname
dirname удаляет суффиксы, не относящиеся к каталогам, из имен файлов.
echo
echo выводит строку текста.
env
env запускает программу в измененном окружении.
expr
expr вычисляет выражения.
factor
factor выводит разложение на простые множители всех указанных целых чисел.
false
false всегда завершается с кодом «ошибка».
groups
groups выводит группу, к которой принадлежит пользователь.
hostid
hostid выводит числовой идентификатор (шестнадцатеричный) текущего хоста.
id
id выводит пользовательский и групповой ID текущего или заданного пользователя.
logname
logname выводит регистрационное имя текущего пользователя.
nice
nice запускает программу с заданным приоритетом.
nohup
nohup выполняет команду, защищенную от зависаний, с выводом в журнальный файл.
pathchk
pathchk проверяет наличие файла.
pinky
pinky – простая утилита finger, показывающая информацию о конкретном пользователе.
printenv
printenv выводит значения переменных окружения.
printf
printf выводит форматированные данные (аналогично функции printf в C).
pwd
pwd выводит имя текущего каталога.
seq
seq выводит числа в заданном диапазоне с заданным шагом.
sleep
sleep делает задержку на указанное количество времени.
stty
stty выводит и изменяет настройки терминала.
su
su запускает командный интерпретатор с правами указанного пользователя и группы.
tee
tee считывает данные со стандартного ввода и записывает их на стандартный вывод и в файлы.
test
test проверяет типы файлов и сравнивает значения.
true
true всегда завершается с кодом «успех».
tty
tty выводит файловое имя терминала, подключенного к стандартному вводу.
uname
uname выводит информацию о системе.
uptime
uptime сообщает, как долго активна система.
users
users выводит имена пользователей, зарегистрированных на локальном хосте.
who
who показывает зарегистрированных пользователей.
whoami
whoami выводит имя пользователя, ассоциированное с текущим пользовательским ID.
yes
yes выводит 'y' или заданную строку до принудительного завершения.
Зависимости Sh-utils
Последняя проверка: версия 2.0.
Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, chown, install, ls, mv, rm Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Perl: perl Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, uname Tar: tar Texinfo: install-info, makeinfo Textutils: cat, tr
Установка Tar-1.13Приблизительное время компиляции: 0.25 SBU Необходимое дисковое пространство: 10 MB
Инсталляция Tar
Для того чтобы использовать tar с файлами формата bzip2 напрямую, примените патч с FTP-сервера LFS. Этот патч добавляет опцию -j, которая работает с командой tar также как опция -z (которая используется с файлами gzip).
Примените патч следующим образом:
patch -Np1 -i ../tar-1.13.patch
Для инсталляции Tar выполните:
./configure –prefix=$LFS/static –disable-nls && make LDFLAGS=-static && make install
Содержимое Tar
Последняя проверка: версия 1.13.
Программы
rmt и tar
Описания
rmt
rmt используется другими программами для удаленного управления приводом магнитных лент.
tar
tar – программа архивации, сохраняющая и извлекающая файлы из архивов tar.
Зависимости Tar
Последняя проверка: версия 1.13.
Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, install, ls, mv, rm Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Net-tools: hostname Patch: patch Sed: sed Sh-utils: basename, echo, expr, sleep, uname Texinfo: install-info, makeinfo Textutils: cat, tr
Установка Texinfo-4.2Приблизительное время компиляции: 0.47 SBU Необходимое дисковое пространство: 19 MB
Инсталляция Texinfo
Для установки Texinfo выполните:
LDFLAGS=-static ./configure –prefix=$LFS/static –disable-nls && make && make install
Содержимое Texinfo
Последняя проверка: версия 4.2.
Программы
info, infokey, install-info, makeinfo, texi2dvi и texindex
Описания
info
info читает документы Info, обычно находящиеся в /usr/share/info. Документы Info documents схожи с man pages, но содержат больше, чем простое объяснение опций программы.
infokey
infokey компилирует в бинарный формат исходный файл персонализаций Info.
install-info
install-info обновляет записи info. Когда запускается info, выводится список тем (т.е. доступных документов info). install-info обновляет этот список. Если файлы info удалены вручную, необходимо также удалить тему в оглавлении. Для этого и используется данная программа. Она работает аналогично в случае добавления новых документов.
makeinfo
makeinfo транслирует документы Texinfo в различные форматы. Доступны: файлы info, простой текст и HTML.
texi2dvi
texi2dvi выводит документы Texinfo
texindex
texindex используется для сортировки оглавлений Texinfo.
Зависимости Texinfo
Последняя проверка: версия 4.0.
Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, install, ln, ls, mkdir, mv, rm Gcc: cc1, collect2, cpp0, gcc Grep: egrep, fgrep, grep Make: make Sed: sed Sh-utils: basename, echo, expr, hostname, sleep Texinfo: makeinfo Textutils: cat, tr