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

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

Текст книги "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


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

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