WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
Пожалуйста, внимательно прочитайте этот раздел. В этой книге будет часто
использоваться переменная LFS. $LFS должно будет всегда заменяться на каталог
примонтированого раздела для будущей системы LFS. О том, как создать такой
раздел, будет подробно написано в главе 3. К
примеру, пусть раздел LFS будет смонтирован в /mnt/lfs. Когда Вас попросят выполнить команду
./configure --prefix=$LFS/tools, следует выполнить
./configure --prefix=/mnt/lfs/tools. Важно всегда использовать ее подобным образом: в командной строке
или в создаваемых файлах. Но можно облегчить задачу, задав переменную окружения LFS. Таким образом,
$LFS будет автоматически восприниматься системой как /mnt/lfs.
Это достигается командой: Теперь, когда Вас просят выполнить команду
./configure --prefix=$LFS/tools, надо набрать ее как есть. Ваш
интерпритатор сам заменит "$LFS" на "/mnt/lfs" когда Вы нажмете Enter
после ввода команды. Многие люди хотят заранее знать. сколько займет сборка и установка того
или иного пакета. Но "Linux from Scratch" собирается на разных системах. и
невозможно точно указать этот отрезок времени: самый большой пакет (Glibc)
может собраться менее чем за 20 минут на быстрой системе, но может собираться
и больше трех дней на медленной. В связи с этим я решил использовать для
указания времени сборки и установки пакета SBU (Static Binutils
Unit): время статической сборки и установки пакета Binutils. Это используется следующим образом: первым пакетом, который надо будет
собрать в этой книге, является статически скомпонованый Binutils в главе 5, и
время его компиляции берется за "Static Binutils Unit" или "SBU". Время
компиляции всех других пакетов выражается через эту единицу. К примеру, сборка статически скомпонованной версии GCC занимает 4.4 SBU.
Это значит, что если Вашей системе понадобилось 10 минут на сборку
статической версии Binutils, то сборка GCC займет 44 минуты. Как Вы увидите,
время сборки большинства пакетов меньше, чем у Binutils. Примите к сведению, что если системный компилятор основной системы
базируется на GCC-2, то указанный SBU будет неверным. Это происходит по
причине того, что SBU основан на самом первом из скомпилированых пакетов,
который собран с помощью старого GCC, а при сборке остальной части системы
будет использоваться GCC-3.3.1 который работает на 30% медленнее. Также SBU нельзя будет использовать на SMP-машинах. Если Вы являетесь
обладателем многопроцессорного компьютера, то эта единица будет неточной, за
счет распараллеливания выполняемых процессов на разные процессоры. Многие из пакетов поддерживают тестирование. Запуск его для только что
собранного пакета будет хорошей идеей, так как можно будет проверить
корректность компиляции. Тестирование содержит несколько тестов для проверки
функциональности пакета. Это в какой-то мере может гарантировать полное
отсутствие ошибок в программе. Некоторые тестирования более важны. чем другие. К примеру, тестирование
пакетов с основными средствами, GCC, Binutils и Glibc (библиотека C), которые
играют решающую роль для общей функциональности системы. Но учтите, что
тестирование GCC и Glibc может занять весьма продолжительное время, особенно
на медленном оборудовании. В процессе чтения книги Вам встретятся команды запуска различных тестов.
Вам решать, стоит ли их запускать или нет. Каждый раз будут приводится
аргументы за и против запуска этих команд и их важность для системы. Примечание: Общей проблемой при запуске тестов для
Binutils и GCC является запуск вне терминала (PTY, для краткоти). Симптомом
ее является большое количество неудачных тестов. Это может происходить по
многим причинам. Наиболее распространенная: Ваша основная система не имеет
корректно установленной файловой системы devpts. Я более подробно
опишу это в главе 5. Если Вы столкнетесь с проблемой при использовании этой книги, и Ваша
проблема не будет описана в ЧАВО
(
http://www.linuxfromscratch.org/faq), то множество людей в Internet Relay
Chat (IRC) и в списках рассылки будут рады Вам помочь. Обзор списков рассылки
LFS Вы можете найти в главе 1. Для
получения помощи в диагностике и устранении проблемы надо будет дать наиболее
полную информацию о ней в своем вопросе. Помимо краткого сообщения об ошибке, не забудьте
привести следующую информацию: Имейте в виду, что если Вы скажете, что отклонялись от действий,
описанных в книге, то это еще не значит, что Вам не помогут. Все-таки LFS
это выбор. Просто это поможет решить Вашу проблему. Если что-то пошло не так при выполнении скрипта configure, то посмотрите в
файле config.log. Этот файл содержит ошибки, которые не были
выведены на экран. Включите информацию из этого файла в просьбу о помощи. Для того, чтобы помочь найти причину проблемы, важен как вывод на экране,
так и содержание некоторых файлов. Вывод на экране из скрипта ./configure и
команды make содержат много полезной информации. Не стоит слепо включать
в свое сообщение весь вывод, но и не следует включать слишком мало
информации. Ниже приведен вывод на экран команды make: В этом случае большинство людей включают в сообщение строку: и все, что после нее. Но этого недостаточно для решения проблемы потому,
что это только скажет что что-то не так, но не скажет что
именно не так. В сообщение с просьбой помочь необходимо включить всю
секцию вывода, так как она содержит выполненные команды и их
сообщения об ошибках. В Интернете есть отличная статья о том, как надо правильно задавать
вопросы, написанная Эриком С. Раймондом. Ее можно найти на
http://catb.org/~esr/faqs/smart-questions.html. Прочтите эту статью и
примите ее к сведению при задавании вопросов, тогда шансы получить полный и
квалифицированный ответ значительно возрастут. Многие пакеты поддерживают тестирование, и я, в зависимости от его
важности, буду советовать Вам запускать его. Иногда пакеты выдают ошибки.
Если это случилось, посмотрите страничку LFS Wiki на
http://wiki.linuxfromscratch.org
, возможно, там уже нашли способ ее решения. Если там уже знают о
проблеме, Вам не стоит беспокоится.
Глава 2. Важная информация
О $LFS
export LFS=/mnt/lfs
О SBU
О тестировании
Как просить о помощи
Что необходимо указать
Проблемы конфигурации
Проблемы при компиляции
gcc -DALIASPATH=\"/mnt/lfs/usr/share/locale:.\"
-DLOCALEDIR=\"/mnt/lfs/usr/share/locale\" -DLIBDIR=\"/mnt/lfs/usr/lib\"
-DINCLUDEDIR=\"/mnt/lfs/usr/include\" -DHAVE_CONFIG_H -I. -I.
-g -O2 -c getopt1.c
gcc -g -O2 -static -o make ar.o arscan.o
commands.o dir.o expand.o file.o function.o getopt.o implicit.o job.o main.o
misc.o read.o remake.o rule.o signame.o variable.o vpath.o default.o
remote-stub.o version.o opt1.o
-lutil job.o: In function `load_too_high':
/lfs/tmp/make-3.79.1/job.c:1565: undefined reference to `getloadavg'
collect2: ld returned 1 exit status
make[2]: *** [make] Error 1
make[2]: Leaving directory `/lfs/tmp/make-3.79.1'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/lfs/tmp/make-3.79.1'
make: *** [all-recursive-am] Error 2
make [2]: *** [make] Error 1
Проблемы при тестировании
Найди своих коллег! |