355 500 произведений, 25 200 авторов.

Электронная библиотека книг » Gerard Beekmans » Linux From Scratch » Текст книги (страница 5)
Linux From Scratch
  • Текст добавлен: 24 сентября 2016, 07:05

Текст книги "Linux From Scratch"


Автор книги: Gerard Beekmans


Жанр:

   

ОС и Сети


сообщить о нарушении

Текущая страница: 5 (всего у книги 18 страниц)

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

Приблизительное время компиляции: 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.5

Estimated 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


    Ваша оценка произведения:

Популярные книги за неделю