Текст книги "Linux From Scratch"
Автор книги: Gerard Beekmans
Жанр:
ОС и Сети
сообщить о нарушении
Текущая страница: 14 (всего у книги 18 страниц)
Глава 9. Заключение.
ЗаключениеВсе! Вы только что закончили установку вашей LFS системы. Это был долгий процесс, но мы надеемся он завершился благополучно. Мы думаем, вы получили много удовольствия при создании вашей новой linux системы... ;) .
Теперь пришло время убрать из вышей системы все отладочные данные из бинарников вашей LFS системы. Если вы не программист и не планируете использовать отладчик при отладке программ, то вы будете обрадованы возможностью убрать несколько десятков мегабайт, при удалении отладчиков. Перед запуском этого процесса убедитесь, что все необходимое вам ПО полностью настроено, и вы более не захотите его перекомпилировать или отлаживать .
ВНИМАНИЕ: 98% людей не испытывают проблем с методом описанным ниже. Но так или иначе, сделайте архив вашей LFS системы перед запуском этой команды. Это действительно хороший момент, дабы сделать бэкап всей системы и конфигов. После компиляции возможны некоторые необычные моменты (в основном повреждение модулей ядра, dynamic & shared libraries). Могут быть и другие проблемы вызванные данной командой.
Как уже говорилось, опция –strip-debug используется для удаления отладочной информации которая нам никогда не понадобится. Это не вырезает всю ее из файлов. Так же можно попробовать применить опцию –strip-all на обычных программах, не использующих библиотек (не используйте это на libraries – они могут быть уничтожены) но это не безопасно, да и место которое вы выиграете не стоит того. Но если вам важен каждый байт на диске, то используйте это на собственный страх и риск. Перечитайте 7 раз страницу man по strip (и его опциям которые вы хотите использовать). Главная идея не запускать strip на libraries (кроме как –strip-debug) и все будет нормально.
find $LFS/{,usr/,usr/local/}{bin,sbin,lib} -type f ааа-exec /usr/bin/strip –strip-debug '{}' ';'
Хорошая мысль создать файл $LFS/etc/lfs. Имея этот файл вы можете легко определить , какую версию LFS вы используете. Занесите в него текущий номер этого мануала, и вы всегда будете знать, по какой версии документа искать помощь в случае чего... ;-) Создайте файл используя следующую команду :
echo 4.0 > $LFS/etc/lfs
Вписываем себя в пользователи LFSХотите, что бы вас посчитали как пользователя LFS – загляните на страницу счетчика http://linuxfromscratch.org/cgi-bin/lfscounter.cgi и зарегистрируйтесь как пользователь LFS. Введите свое имя и версию вашей системы , которую вы создали и возможно будете пользоваться.
Теперь давайте перезагрузимся в нашу систему...
Перезагрузка системыТеперь все по установлено, загрузочные скрипты созданы, и настало время перезагрузить компьютер Перед этим надо размонтировать $LFS/proc и сам $LFS раздел запустив следующее:
umount $LFS/proc && umount $LFS
Если вы создали систему со множеством разделов, вы должны размонтировать их тоже перед тем, как размонтируете раздел $LFS :
umount $LFS/proc && umount $LFS/usr && umount $LFS/home && umount $LFS
И теперь перезагрузить систему используя что-то типа:
/sbin/shutdown -r now
В строке приглашения LILO, убедитесь, что вы загружаете lfs систему, даже если она загружается и не по умолчанию.
После перезагрузки вы можете начать работу в вашей собственной системе, устанавливать дополнительное ПО и т.д.
Единственная последняя вещь, которую вы, может быть, захотите сделать – это запустить lilo на предмет запуска с вашего HDD. Мы опишем инсталляцию lilo в MBR вашего диска. На разных системах могут быть незначительные отличия. В любом случае, сверяйтесь с документацией, в случае, если вам надо включить дополнительные опции.
В любом случае запустите следующую команду для того, что бы убедиться в том, что lilo установлено:
/sbin/lilo
Возможно вам понадобиться удалить статические директории. Если надо, то перечитайте Главу 5 , затем сохраните статические директории (backup) перед их удалением. Для удаления статических директорий выполните следующее:
rm -rf /static
Ну вот, вы закончили создание вашей собственной LFS системы, и, теперь хотите поставить дополнительное ПО, например веб-браузер или почтовый клиент. Первое, посмотрите проект Beyond Linux From Scratch в котором можете найти разные примеры: http://beyond.linuxfromscratch.org/. Всякие примочки и дополнительные описания могут быть найдены здесь: http://hints.linuxfromscratch.org/hints.shtml. В случае, если вы новичок не только в LFS, но и в Linux системах вообще, то есть смысл почитать советы для новичков: http://hints.linuxfromscratch.org/hints/newbie.txt – очень интересно.
Помните, что существуют списки рассылки по системам LFS, на которые вы можете подписаться для получения помощи. Смотрите Глава 1 – Списки рассылки и архивы для детальной информации .
Теперь, мы благодарим вас за использование книги по LFS и надеемся, что вы нашли ее полезной в использовании и сохранили ваше (да и наше) время ... ;-)
III. Часть III – Приложения
Приложение A. Описания пакетов и зависимостей
ВступлениеВ этом приложении рассмотрены следующие аспекты пакетов, описанных в этой книге:
официальная ссылка для загрузки пакета
содержимое пакета,
что делает каждая программа пакета,
что необходимо для компиляции пакета.
Большинство информации о пакетах (в особенности, их описания) взяты из их man pages. Мы приводим не полные man pages, а некоторые ключевые элементы для облегчения понимания функций программ. Для получения более детальной информации о программах, обращайтесь к их man или info pages.
Некоторые пакеты более глубоко освещены чем другие лишь потому, что нам необходимо знать о них больше чем о прочих. Если вы считаете, что что-то должно быть добавлено к описаниям, сообщайте об этом в списки рассылки. Мы стремимся к наибольшей полноте описаний пакетов, но без вашей помощи ничего не выйдет.
Заметьте, что в текущей версии книги описано лишь то, что делает пакет, а не почему его необходимо установить. Возможно, позже это будет добавлено.
Также перечислены все зависимости для всех пакетов, перечисленных в этой книге. Описано, какие программы из каких пакетов необходимы для успешной компиляции.
Приведенные зависимости указывают лишь на пакеты, необходимые для компиляции, а не исполнения программ.
Список зависимостей, со временем, устаревает относительно текущей версии пакета. У нас нет времени на проверку зависимостей при каждом обновлении, так что реальный их список может отличаться. Но при небольших обновлениях зависимости редко изменяются, так что они будут соответствовать в большинстве случаев. При внесении крупных изменений в пакеты, зависимости обязательно будут проверены.
AutoconfОфициальная ссылка
Autoconf (2.53): ftp://ftp.gnu.org/gnu/autoconf/
Содержание Autoconf
Последняя проверка: версия 2.53.
Программы
autoconf, autoheader, autom4te, autoreconf, autoscan, autoupdate и ifnames
Описания
autoconf
autoconf – инструмент для создания скриптов командного интерпретатора, автоматически конфигурирующих пакеты с исходным кодом для адаптации ко многим Unix системам. Настроечные скрипты, созданные autoconf, независимы от autoconf во время их исполнения, так что пользователям необязательно использование autoconf.
autoheader
autoheader создает шаблонный файл, состоящий из выражений C #define для использования configure.
autom4te
autom4te запускает GNU M4 для обработки заданных файлов.
autoreconf
При наличии множества настроечных скриптов, созданных autoconf, autoreconf может сэкономить время. Утилита повторно запускает autoconf and autoheader (когда необходимо) для повторной генерации настроечных скриптов autoconf и настройки шаблонов заголовков рекурсивно, начиная с текущего каталога.
autoscan
autoscan может помочь в написании configure.in для программного пакета. autoscan просматривает исходные файлы в дереве каталогов. Если не указан каталог, то используется текущий. Исходный код проверяется на наличие распространенных проблем переносимости, создаваемый configure.scan служит предварительным configure.in для пакета.
autoupdate
autoupdate обновляет имена вызова макросов autoconf в configure.in.
ifnames
ifnames может помочь во время написания configure.in для программного пакета. Выводятся идентификаторы, которые пакет уже использует в условиях препроцессора C. Если пакет уже настроен для некоторой переносимости, программа может помочь в определении, что необходимо проверить configure. Она также может заполнить некоторые пропуски в configure.in, вставленные autoscan.
Зависимости Autoconf
Последняя проверка: версия 2.52.
Bash: sh Diffutils: cmp Fileutils: chmod, install, ln, ls, mkdir, mv, rm Grep: fgrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: echo, expr, hostname, sleep, uname Texinfo: install-info Textutils: cat, tr
AutomakeОфициальная ссылка
Automake (1.6.3): ftp://ftp.gnu.org/gnu/automake/
Содержание Automake
Последняя проверка: версия 1.6.2.
Программы
acinstall, aclocal, aclocal-1.6, automake, automake-1.6, compile, config.guess, config.sub, depcomp, elisp-comp, install-sh, mdate-sh, missing, mkinstalldirs, py-compile, ylwrap
Описания
acinstall
acinstall – сценарий, устанавливающий файлы aclocal-style M4.
aclocal, aclocal-1.6
automake включает несколько макросов autoconf, используемых в пакетах, часть которых необходима automake в ряде случаев. Эти макросы должны быть определены в aclocal.m4, иначе autoconf не сможет их использовать.
aclocal program автоматически создаст aclocal.m4, основываясь на содержимом configure.in. Это дает возможность получения предоставленных automake макросов без их поиска. Также. механизм aclocal расширяем для использования другими пакетами.
automake, automake-1.6
Для создания всех файлов Makefile.in пакета, запустите automake в каталоге верхнего уровня без параметров. automake найдет все соответствующие Makefile.am (просматривая configure.in) и создаст Makefile.in.
compile
compile – cценарий-обертка для компиляторов.
config.guess
config.guess – сценарий, определяющий каноническое имя системы.
config.sub
config.sub – скрипт проверки конфигурации.
depcomp
depcomp – cкрипт, компилирующий программу вместе с генерацией зависимостей.
elisp-comp
elisp-comp – скрипт для байт-компиляции файлов .el.
install-sh
install-sh – скрипт, устанавливающий программу, скрипт или файл данных.
mdate-sh
mdate-sh – скрипт, выводящий время изменения файла или каталога.
missing
missing – заменяющий некоторые отсутствующие программы GNUво время инсталляции.
mkinstalldirs
mkinstalldirs – скрипт для иерархической сборки каталога.
py-compile
py-compile – скрипт, собирающий программу на Python.
ylwrap
ylwrap – скрипт-обертка для вызовов lex/yacc.
Зависимости Automake
Последняя проверка: версия 1.5.
Bash: sh Diffutils: cmp Fileutils: chmod, install, ls, mkdir, mv, rm, rmdir Grep: fgrep, grep Make: make Perl: perl Sed: sed Sh-utils: echo, expr, hostname, sleep Texinfo: install-info Textutils: cat, tr
BashОфициальная ссылка
Bash (2.05a): ftp://ftp.gnu.org/gnu/bash/
Содержание Bash
Последняя проверка: версия 2.05a.
Программы
bash, sh (ссылка на bash) и bashbug
Описания
bash
bash – Bourne-Again SHell, широко используемый в Unix системах командный интерпретатор. Bash считывает данные со стандартного ввода, клавиатуры. Пользователь вводит что-либо, интерпретатор распознает введенное и выполняет это, например запускает программу.
bashbug
bashbug – скрипт, помогающий пользователю составлять и отправлять сообщения об ошибках bash в стандартном формате.
sh
sh – символическая ссылка на bash. Будучи вызванным как sh, bash имитирует запуск старых версий sh, для лучшего соответствия стандартам POSIX.
Зависимости Bash
Последняя проверка: версия 2.05a.
Bash: bash, sh Binutils: ar, as, ld, ranlib, size Diffutils: cmp Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Gawk: awk Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, uname Texinfo: install-info Textutils: cat, tr, uniq
Bin86Официальная ссылка
Bin86 (0.16.3): http://www.cix.co.uk/~mayday/
Содержание Bin86
Последняя проверка: версия 0.16.3
Программы
as86, as86_encap, ld86, nm86 (ссылка на objdump86), objdump86 и size86 (ссылка на objdump86)
Описания
as86
as86 – ассемблер для процессоров 8086...80386.
as86_encap
as86_encap – скрипт для вызова as86 и конвертирования полученного кода в код C (prog.v) для включения или слинковки с программами вроде инсталляторов загрузочных секторов.
ld86
ld86 понимает только объектные файлы, полученные от ассемблера as86. Возможна линковка как в смешанный, так и раздельный исполняемый код I&D.
nm86
Таблица символов для бинарного файла.
objdump86
Сохраняет детальную информацию о бинарном файле.
size86
Выводит общий объем данных в бинарном файле.
Зависимости Bin86
Последняя проверка: версия 0.16.0.
Bash: sh Binutils: as, ld, strip Fileutils: chmod, install, ln, mv Gcc: cc, cc1, collect2, cpp0 Make: make Sed: sed
BinutilsОфициальная ссылка
Binutils (2.13): ftp://ftp.gnu.org/gnu/binutils/
Содержимое Binutils
Последняя проверка: версия 2.12.1.
Программы
addr2line, ar, as, gasp, gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings and strip
Описания
addr2line
addr2line переводит программные адреса в имена файлов и номера строк. Given an address and an executable, используется отладочная информация исполняемого файла, чтобы определить, какое имя файла и номер строки связаны с данным адресом.
ar
ar создает и изменяет архивы, а также производит их распаковку. Архив – файл, содержащий несколько файлов в виде, позволяющем восстановить оригинал.
as
as используется для ассемблирования вывода the GNU C Compiler, gcc для использования с линкером ld.
gasp
gasp – Assembler Macro Preprocessor.
gprof
gprof отображает статистику системных вызовов.
ld
ld объединяет несколько объектных и архивных файлов и устанавливает символьные отношения. Последний шаг в сборке скомпилированной программы – запуск ld.
nm
nm перечисляет символы из объектных файлов.
objcopy
objcopy utility копирует содержимое одного объектного файла в другой. objcopy использует библиотеку GNU BFD для чтения/записи объектных файлов. Возможна запись конечного объектного файла в формате, отличном от исходного.
objdump
objdump выводит информацию об одном или нескольких объектных файлах. Опции указывают, какую информацию выводить. Эта информация полезна для программистов, разрабатывающих компиляторы, в противоположность тем, кому нужно просто скомпилировать и запустить программу.
ranlib
ranlib генерирует оглавление содержимого архива и сохраняет его в архиве. Список будет содержать все символы, определенные членами архива, that is a relocatable object file.
readelf
readelf выводит информацию об бинарных файлах типа elf.
size
size выводит размеры секций –и общий размер– каждого указанного объектного файла. По умолчанию, генерируется одна строка для каждого объектного файла или модуля в архиве.
strings
Для каждого заданного файла strings выводит последовательность отображаемых символов длиной минимум 4 знака (или указанной длины), завершающуюся непечатным символом. По умолчанию, выводятся лишь строки из инициализированных и загруженных частей объектных файлов. Для других типов файлов выводятся строки из всего файла.
strings зачастую используется для определения содержимого нетекстовых файлов.
strip
strip удаляет все или указанные символы из объектных файлов. Список объектных файлов может включать архивы. Должен быть задан как минимум один объектный файл. Модификация указанных файлов приоритетнее, чем запись модифицированных копий под другими именами.
Библиотеки
libbfd.[a,so] и libopcodes.[a,so]
Описания
libbfd
libbfd – библиотека Binary File Descriptor.
libopcodes
libopcodes – библиотека для работы с опкодами, используется в сборке утилит вроде objdump. Опкоды – «читаемые» версии инструкций процессора.
Зависимости Binutils
Последняя проверка: версия 2.11.2.
Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, nm, ranlib, strip Diffutils: cmp Fileutils: chmod, cp, ln, ls, mkdir, mv, rm, rmdir, touch Flex: flex Gcc: cc, cc1, collect2, cpp0, gcc Glibc: ldconfig Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, true, uname Texinfo: install-info, makeinfo Textutils: cat, sort, tr, uniq
BisonОфициальная ссылка
Bison (1.35): ftp://ftp.gnu.org/gnu/bison/
Содержимое Bison
Последняя проверка: версия 1.35.
Программы
bison и yacc
Описания
bison
bison – генератор анализаторов синтаксиса (parser) выражений (заменяет yacc – Yet Another Compiler Compiler). Что же делает bison? Это программа, генерирующая программу, анализирующую структуру текстового файла. Вместо написания собственной программы пользователь указывает, как соотносятся объекты, и основываясь на данных правилах, создается анализатор. Существует множество примеров анализа синтаксиса, например калькулятор.
Дано выражение:
1 + 2 * 3
Человек легко получит результат 7. Почему? Because of the structure. Наш мозг знает, как интерпретировать выражение. Компьютер этого не знает, и bison инструмент, представляющий выражение компьютеру в следующем виде:
+ / * 1 / 2 3
Начиная с вершины дерева и обрабатывая 2 and 3, соединенных знаком умножения, компьютер перемножает 2 и 3. Результат умножения запоминается и следующее, что обрабатывается – 2*3 и 1, соединенные знаком сложения. Сложение 1 и предыдущего результата дает 7. Все составные выражения могут быть преобразованы в подобное дерево и вычислены. Конечно же, bison используется не только в калькуляторах.
yacc
Мы написали скрипт bash с именем yacc, вызывающий bison с опцией -y. Это необходимо для совместимости с программами, использующими yacc вместо bison.
Зависимости Bison
Последняя проверка: версия 1.31.
Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm, rmdir Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, fgrep, grep Make: make Sed: sed Sh-utils: basename, dirname, echo, expr, hostname, sleep, uname Texinfo: install-info Textutils: cat, head, tr, uniq
Bzip2Официальная ссылка
Bzip2 (1.0.2): ftp://sourceware.cygnus.com/pub/bzip2/
Содержимое Bzip2
Последняя проверка: версия 1.0.2
Программы
bunzip2 (ссылка на bzip2), bzcat (ссылка на bzip2), bzcmp, bzdiff, bzegrep, bzfgrep, bzgrep, bzip2, bzip2recover, bzless и bzmore
Описания
bunzip2
bunzip2 распаковывает файлы, сжатые bzip2.
bzcat
bzcat (или bzip2 -dc) распаковывает указанные файлы на стандартный вывод.
bzcmp, bzdiff
bzcmp и bzdiff позволяют использовать cmp и diff для файлов, сжатых bzip2.
bzegrep, bzfgrep, bzgrep
bzegrep, bzfgrep, и bzgrep позволяют использовать egrep, fgrep, or grep для файлов, сжатых bzip2.
bzip2
bzip2 сжимает файлы, используя Burrows-Wheeler block sorting алгоритм сжатия текста и код Huffman. Сжатие, обычно: значительно лучше, чем достигаемое традиционными архиваторами, основанными на LZ77/LZ78, и достигает производительности PPM семейства статистических архиваторов.
bzip2recover
bzip2recover восстанавливает данные из поврежденных файлов bzip2.
bzless
bzless – подобный less фильтр, позволяющий поэкранный просмотр сжатых или текстовых файлов.
bzmore
bzmore – подобный more фильтр, позволяющий поэкранный просмотр сжатых или текстовых файлов.
Библиотеки
libbz2.a, libbz2.so (ссылка на libbz2.so.1.0), libbz2.so.1.0 (ссылка на libbz2.so.1.0.2) и libbz2.so.1.0.2
libbz2
libbz2 – библиотека, реализующая сжатие данных без потерь, используя block-sorting алгоритм Burrows-Wheeler.
Зависимости Bzip2
Последняя проверка: версия 1.0.1.
Bash: sh Binutils: ar, as, ld, ranlib Fileutils: cp, ln, rm Gcc: cc1, collect2, cpp0, gcc Make: make
DiffutilsОфициальная ссылка
Diffutils (2.8.1): ftp://ftp.gnu.org/gnu/diffutils/
Содержимое Diffutils
Последняя проверка: версия 2.8.1.
Программы
cmp, diff, diff3 и sdiff
Описания
cmp и diff
cmp и diff сравнивают пару файлов и сообщают об их различиях. Обе программы имеют дополнительные опции сравнения файлов в различных ситуациях.
diff3
Разница между diff и diff3 состоит в том, что diff сравнивает 2 files, а diff3 – 3.
sdiff
sdiff выполняет слияние 2 файлов и интерактивно выводит результаты.
Зависимости Diffutils
Последняя проверка: версия 2.7.
Bash: sh Binutils: ld, as Diffutils: cmp Fileutils: chmod, cp, install, mv, rm Gcc: cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Sed: sed Sh-utils: date, hostname Textutils: cat, tr