Какой сетевой интерфейс будет запускаться и останавливаться сетевыми скриптами зависит от файлов расположенных в директории /etc/sysconfig/network-devices. Эта директория должна содержать файлы в формате ifconfig.xyz, где xyz– имя сетевого интерфейса (например eth0 или eth0:1).
   Если вы решили переименовать или переместить директорию /etc/sysconfig/network-devices , убедитесь, что вы поправили файлы в /etc/sysconfig/rc на предмет новых путей к сетевым устройствам в скриптах.
   Теперь, новые файлы созданные в директории /etc/sysconfig/network-devices содержат следующее. Этой командой создадим пример файла ifconfig.eth0 Now, new files are created in that directory containing the following. :
    cat > /etc/sysconfig/network-devices/ifconfig.eth0 << «EOF»
   ONBOOT=yes
   IP=192.168.1.1
   NETMASK=255.255.255.0
   BROADCAST=192.168.1.255
    EOF
 
   Естественно, значения этих переменных должны быть изменены в каждом файле на правильные настройки. Если переменная ONBOOT установлена yes, то скрипт выполнится при загрузке системы. Если установлено что нить отличное от yes, то скрипт не выполнится.

Глава 8. Делаем систему LFS загрузочной.

Введение

   Эта глава описывает шаги, необходимые для того, чтобы сделать вашу систему загрузочной. Здесь рассказывается о создании файла fstab, компиляции нового ядра для LFS системы, добавления необходимых значений в LILO, дабы вы увидели в строке приглашения возможность выбора LFS системы из списка.

Создание файла /etc/fstab

   Система должна знать о разделах, которые есть в системе и о порядке их монтирования. Все разделы и порядок их монтирования перечисляется в файле /etc/fstab. Создадим такой файл /etc/fstab содержащий следующее:
    cat > /etc/fstab << «EOF»
   # Begin /etc/fstab
 
   # filesystem mount-point fs-type options dump fsck-order
 
   /dev/*LFS* / *fs-type* defaults 1 1
   /dev/*swap* swap swap pri=1 0 0
   proc /proc proc defaults 0 0
 
   # End /etc/fstab
    EOF
 
    *LFS*, *swap*and *fs-type*должны быть заменены правильными значениями (например /dev/hda2, /dev/hda5 и reiserfs).
   Когда добавляется раздел reiserfs, то значение 1 1в конце строки должно быть заменено на 0 0.
   Для более детальной информации значения полей в файле fstab смотрите man 5 fstab.
   Рассмотрим другие строки, которые, возможно, вам придется добавить в ваш файл fstab . Для примера рассмотрим возможность включения devpts:
   devpts /dev/pts devpts gid=4,mode=620 0 0
 
   Другой пример, строка, позволяющая использовать устройства USB :
   usbdevfs /proc/bus/usb usbdevfs defaults 0 0
 
   Обе опции будут работать только в случае, если вы вкомпилировали в ядро возможность подключения данных устройств.

Установка ядра Linux-2.4.19

   Приблизительное время компиляции со всеми опциями по умолчанию: 4.20 SBU Необходимое дисковое пространство со всеми опциями по умолчанию: 181 MB
 
   Построение ядра включает в себя несколько шагов: конфигурация и компиляция ядра. Есть несколько путей для конфигурации ядра. Если вам не нравится путь, описываемый здесь, то читайте README поставляемый с исходниками нового ядра, и ищите другие опции.
   Необходимые телодвижения, которые вы должны совершить, это взять файл .config из дистрибутива исходников ядра и скопировать его в $LFS/usr/src/linux-2.4.19. В этом случае вам нет необходимости конфигурировать отдельные опции, и воспользоваться значениями по умолчанию. Если вы хотите сделать так, то сначала запустите команду make mrproperзатем скопируйте файл .config снова, и запустите make menuconfig; далее запустите команду make oldconfig(может быть лучше в некоторых ситуациях. Смотрите README для более детальной информации по использованию make oldconfig).
   Если вы внимательно используете модули для ядра, то вы должны подправить файл /etc/modules.conf. Информация имеющая отношение к модулям и конфигурации ядра в основном находится в документации к ядру, которая находится в каталоге /usr/src/linux-2.4.19/Documentation. Страница man page по modules.conf и файлы документации kernel HOWTO в http://www.tldp.org/HOWTO/Kernel-HOWTO.html могут также быть полезными.
   Необходимо запустить следующие команды для построения нового ядра:
    make mrproper && make menuconfig && make dep && make bzImage && make modules && make modules_install && cp arch/i386/boot/bzImage /boot/lfskernel && cp System.map /boot
 
   Примечание: путь arch/i386/boot/bzImage может различаться в зависимости от платформы.
   Зависимости Linux
   Последняя проверка на версии 2.4.17.
   Bash: sh Binutils: ar, as, ld, nm, objcopy Fileutils: cp, ln, mkdir, mv, rm, touch Findutils: find, xargs Gcc: cc1, collect2, cpp0, gcc Grep: grep Gzip: gzip Make: make Gawk: awk Modutils: depmod, genksyms Net-tools: dnsdomainname, hostname Sed: sed Sh-utils: basename, date, expr, pwd, stty, uname, whoami, yes Textutils: cat, md5sum, sort, tail

Делаем систему LFS загрузочной.

   Для того, что бы иметь возможность запускать LFS систему мы должны обновить наш загрузчик. Мы предполагаем, что ваша системы использует Lilo (наиболее распространенный загрузчик на данный момент).
   Мы не будем запускать программу lilo из-под chroot. Запуск lilo под chroot может вызвать фатальные последствия с уничтожением или повреждением MBR, и мы будем использовать загрузочную дискету для запуска любых LFS систем .
   Первое, мы должны выйти из режима chroot и скопировать файл ядра lfskernel в основную систему :
    logout
    cp $LFS/boot/lfskernel /boot
 
   Следующий шаг – добавление записи в файл /etc/lilo.conf дабы мы могли выбрать нашу LFS систему при загрузке компьютера:
    cat >> /etc/lilo.conf << «EOF»
   image=/boot/lfskernel
   label=lfs
   root=<partition>
   read-only
    EOF
 
   Значение <partition> должно быть заменено значением раздела на котором размещено ядро LFS .
   Так же, если вы используете reiserfs для основного раздела, что значение read-onlyнадо заменить на read-write.
   Теперь обновим загрузчик запустив следующее:
    /sbin/lilo -v
 
   Последний шаг – синхронизация конфигурации lilo на дискете и на LFS системе:
    cp /etc/lilo.conf $LFS/etc && cp $(grep «image.*=» /etc/lilo.conf | cut -f 2 -d "=") $LFS/boot

Глава 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