Текст книги "Linux From Scratch"
Автор книги: Gerard Beekmans
Жанр:
ОС и Сети
сообщить о нарушении
Текущая страница: 11 (всего у книги 18 страниц)
Приблизительное время компиляции: 0.31 SBU Необходимое дисковое пространство: 6 MB
Инсталляция Diffutils
Для инсталляции Diffutils выполните:
./configure –prefix=/usr && make && make install
Содержимое 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
Установка E2fsprogs-1.27Приблизительное время компиляции: 0.80 SBU Необходимое дисковое пространство: 13 MB
Инсталляция E2fsprogs
Для инсталляции E2fsprogs выполните:
mkdir ../e2fsprogs-build && cd ../e2fsprogs-build && ../e2fsprogs-1.27/configure –prefix=/usr –with-root-prefix="" –enable-elf-shlibs && make && make install && make install-libs && install-info /usr/share/info/libext2fs.info /usr/share/info/dir
Пояснения команд
–with-root-prefix="": Причина использования данной опции – настройка файла Makefile. Выполнение некоторых программ, когда к примеру, /usr еще не монтирован, жизненно важно. (например выполнение программы e2fsck). Соответственно, такие программы и библиотеки должны находиться в каталогах /lib и /sbin. Если не использовать данную опцию, эти программы по умолчанию помещаются в каталог /usr, что нас не устраивает.
–enable-elf-shlibs: Создает shared-библиотеки для некоторых программ пакета
make install-libs: Инсталлирует скомпилированные библиотеки.
Содержимое E2fsprogs
Последняя проверка: версия 1.27.
Программы
badblocks, chattr, compile_et, debugfs, dumpe2fs, e2fsck, e2image, e2label, fsck, fsck.ext2, fsck.ext3, lsattr, mk_cmds, mke2fs, mkfs.ext2, mkfs.ext3, mklost+found, resize2fs, tune2fs и uuidgen
Описания
badblocks
badblocks используется для поиска сбойных блоков на устройстве (обычно, дисковом разделе).
chattr
chattr изменяет атрибуты файлов в файловых системах Linux second extended.
compile_et
compile_et используется для преобразования таблицы, листинга кодов ошибок и связанных сообщений в исходный код C, что удобно для использования с библиотекой com_err.
debugfs
debugfs – файловый отладчик. Используется для исследования и изменения состояния файловой системы ext2.
dumpe2fs
dumpe2fs выводит superblock и информацию о группе блоков для файловой системы, присутствующей на указанном устройстве.
e2fsck and fsck.ext2
e2fsck и fsck.ext2 используются для проверки и исправления файловых систем Linux second extended.
e2image
e2image используется для сохранения критичных данных файловой системы ext2в файл.
e2label
e2label выводит и изменяет метку файловой системы ext2 filesystem, расположенной на указанном устройстве.
fsck
fsck используется для проверки и исправления файловых систем Linux.
fsck.ext3
fsck.ext3 используется для проверки и исправления файловых систем Linux ext3.
lsattr
lsattr выводит атрибуты файла на second extended file system.
mk_cmds
mk_cmd, получая таблицу команд на входе, выводит исходный код C, который задается для использования с подсистемной библиотекой, libss.
mke2fs and mkfs.ext2
mke2fs используется для создания Linux second extended file system на устройстве (обычно, разделе диска). mkfs.ext2 выполняет те же функции, что и mke2fs.
mkfs.ext3
mkfs.ext3 используется для создания файловой системы ext3.
mklost+found
mklost+found создает каталог lost+found в текущем рабочем каталогу в Linux second extended file system. mklost+found заранее выделяет блоки диска для этого каталога, делая его доступным для e2fsck.
resize2fs
resize2fs используется для изменения размеров файловой системы ext2.
tune2fs
tune2fs изменяет настраиваемые параметры Linux second extended filesystem.
uuidgen
uuidgen создает новый универсальный уникальный идентификатор (UUID), используя библиотеку libuuid. Новый UUID будет уникален среди всех созданных UUID на любой системе и в любое время.
Библиотеки
libcom_err.[a,so], libe2p.[a,so], libext2fs.[a,so], libss.[a,so], libuuid.[a,so]
Описания
libcom_err
Вывод стандартных ошибок.
libe2p
libe2p используется dumpe2fs, chattr и lsattr.
libext2fs
Библиотека ext2fs создана для работы пользовательских программ с файловыми системами ext2.
libss
libss используется debugfs.
libuuid
Библиотека libuuid используется для генерации уникальных идентификаторов для объектов, которые могут быть доступны извне.
Зависимости E2fsprogs
Последняя проверка: версия 1.25.
Bash: sh Binutils: ar, as, ld, ranlib, strip Diffutils: cmp Fileutils: chmod, cp, install, ln, mkdir, mv, rm, sync Gcc: cc, cc1, collect2, cpp0 Glibc: ldconfig Grep: egrep, grep Gzip: gzip Make: make Gawk: awk Sed: sed Sh-utils: basename, echo, expr, hostname, uname Texinfo: makeinfo Textutils: cat, tr
Установка Grep-2.5Приблизительное время компиляции: 0.22 SBU Необходимое дисковое пространство: 5 MB
Инсталляция Grep
Для инсталляции Grep выполните:
./configure –prefix=/usr –bindir=/bin && 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.03 SBU Необходимое дисковое пространство: 2 MB
Инсталляция Gzip
Для инсталляции Gzip выполните:
patch -Np1 -i ../gzip-1.2.4b.patch && ./configure –prefix=/usr && cp gzexe.in{,.backup} && sed 's%"BINDIR"%/bin%' gzexe.in.backup > gzexe.in && make && make install && mv /usr/bin/gzip /bin && rm /usr/bin/{gunzip,zcat} && ln -s gzip /bin/gunzip && ln -s gzip /bin/zcat && ln -s gunzip /bin/uncompress
Пояснения команд
patch -Np1 -i ../gzip-1.2.4b.patch: Этот патч устраняет возможную ошибку переполнения буфера, возникающую когда имя файла превышает 1020 символов.
Содержимое 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
Установка Man-1.5kПриблизительное время компиляции: 0.05 SBU Необходимое дисковое пространство: 2 MB
Инсталляция Man
Для установки man выполните:
patch -Np1 -i ../man-1.5k.patch && PATH=$PATH:/usr/bin:/bin ./configure -default -confdir=/etc && make && make install
Примечание: Если вы хотите отключить последовательность выхода SGR, отредактируйте файл man.conf и добавьте к команде nroff аргумент -c.
Для получения информации по форматированию и сжатию страниц руководства (man pages), см. http://hints.linuxfromscratch.org/hints/man.txt.
Пояснения команд
PATH=$PATH:/usr/bin:/bin ./configure -default: В файлы man прописываются пути к некоторым программам. К сожалению, скрипт configure выбирает не первое (где находится программа), а последнее местонахождение программы в PATH. С помощью добавления /usr/bin:/bin к PATH для команды ./configure, вероятность использования командой man статических версий программ будет устранена.
patch -Np1 -i ../man-1.5k.patch: Данный патч убирает один из файлов в man.conf (MANPATH /usr/man), т.к. он создает избыточные результаты при использовании программ типа whatis. Для корректного отображения страниц руководства, патч также добавляет к переменной PAGER опцию –R.
Содержимое Man
Последняя проверка: версия 1.5k.
Программы
apropos, makewhatis, man, man2dvi, man2html и whatis
Описания
apropos
apropos ищет ключевые слова в базах данных, содержащих кратное описание системных команд, и отображает результат на стандартный вывод.
makewhatis
makewhatis читает страницы руководства, находящиеся в заданных частях manpath, или преформатированные страницы, находящиеся в заданных частях catpath. Для каждой страницы делается запись в базе whatis. Каждая запись состоит из имени страницы и краткого описания, разделенных дефисом. Описание извлекается, используя содержимое секции NAME страницы руководства.
man
man форматирует и выводит запрашиваемые страницы руководства.
man2dvi
man2dvi конвертирует страницу руководства в формат dvi.
man2html
man2html конвертирует страницу руководства в гипертекст.
whatis
whatis ищет ключевые слова в базах данных, содержащих кратное описание системных команд, и отображает результат на стандартный вывод. Выводятся лишь полностью совпадающие сочетания.
Зависимости Man
Последняя проверка: версия 1.5i2.
Bash: sh Binutils: as, ld Fileutils: chmod, cp, install, mkdir, rm Gcc: c11, collect2, cpp0, gcc Grep: grep Make: make Gawk: awk Sed: sed Sh-utils: echo Textutils: cat
Установка Lilo-22.2Приблизительное время компиляции: 0.08 SBU Необходимое дисковое пространство: 3 MB
Инсталляция Lilo
Мы выбрали LILO в качестве загрузчика, потому что с ним на комфортно, однако вы можете выбрать другой. Fabio Fracassi написал руководство по установке GRUB, см. http://hints.linuxfromscratch.org/hints/grub-howto.txt.
Для инсталляции Lilo выполните:
make && make install
При компиляции этого пакета с опцией -g на некоторых компьютерах возникают проблемы. В случае если LILO не компилируется, удалите -g из значения переменной CFLAGS в файле Makefile.
В самом конце инсталляции, процедура make install выведет на экран сообщение о том, что необходимо выполнить команду /sbin/lilo для обновления. Не делайте этого, т.к. на данной стадии это бессмысленно: не существует файла /etc/lilo.conf. Завершение процесса установки LILO описано в Главе 8.
Стандартное приглашение (меню) LILO можно заменить логотипом LFS или любым другим по вашему усмотрению. См. руководство Мартина Имоберстега на http://hints.linuxfromscratch.org/hints/bootlogo.txt.
Содержимое Lilo
Последняя проверка: версия 22.2.
Программы
lilo, mkrescue и keytab-lilo.pl
Описания
lilo
lilo устанавливает загрузчик Linux, используемый для старта системы.
mkrescue
mkrescue создает загрузочную дискету, используя существующее ядро и любой инициализационный ramdisk.
keytab-lilo.pl
keytab-lilo.pl компилирует определения keytable в формат, который lilo может использовать для настройки клавиатуры во время загрузки.
Зависимости Lilo
Последняя проверка: версия 22.1.
Bash: sh Bin86: as86, ld86 Binutils: as, ld, strip Fileutils: cp, dd, ln Gcc: cc, cc1, collect2, cpp0 Make: make Sed: sed Textutils: cat
Установка Make-3.79.1Приблизительное время компиляции: 0.22 SBU Необходимое дисковое пространство: 6 MB
Инсталляция Make
Для инсталляции Make выполните:
./configure –prefix=/usr && make && make install && chgrp root /usr/bin/make && chmod 755 /usr/bin/make
Пояснения команд
По умолчанию, /usr/bin/make принадлежит к той же группе kmem. На некоторых системах это необходимо для проверки средней загрузки системы командой /dev/kmem. Однако, для Linux-систем это не нужно, и мы удаляем make из группы kmem. Это также решает проблему игнорирования командой make переменных типа LD_LIBRARY_PATH.
Содержимое 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
Установка Modutils-2.4.19Приблизительное время компиляции: 0.13 SBU Необходимое дисковое пространство: 3 MB
Инсталляция Modutils
Для инсталляции Modutils выполните:
./configure && make && make install
Содержимое Modutils
Последняя проверка: версия 2.4.16.
Программы
depmod, genksyms, insmod, insmod_ksymoops_clean, kallsyms (ссылка на insmod), kernelversion, ksyms (ссылка на insmod), lsmod (ссылка на insmod), modinfo, modprobe (ссылка на insmod) и rmmod (ссылка на insmod)
Описания
depmod
depmod управляет деревьями зависимостей загружаемых модулей.
genksyms
genksyms читает вывод от gcc -E source.c и генерирует файл, содержащий информацию о версиях.
insmod
insmod включает модуль в ядро.
insmod_ksymoops_clean
insmod_ksymoops_clean удаляет сохраненные ksym'ы и модули, не использующиеся минимум 2 дня.
kallsyms
kallsyms извлекает символы ядра для отладки.
kernelversion
kernelversion выводит номер основной версии ядра.
ksyms
ksyms показывает экспортированные символы ядра.
lsmod
lsmod показывает информацию о загруженных модулях.
modinfo
modinfo просматривает объектный файл, ассоциированный с модулем ядра, и выводит любую доступную информацию.
modprobe
modprobe использует файл зависимостей вроде Makefile, созданный depmod, для автоматической загрузки необходимых модулей из набора в предварительно заданном дереве каталогов.
rmmod
rmmod выгружает модули из ядра.
Зависимости Modutils
Последняя проверка: версия 2.4.12.
Bash: sh Binutils: ar, as, ld, ranlib, strip Bison: bison Diffutils: cmp Fileutils: chmod, install, ln, mkdir, mv, rm Flex: flex Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Sed: sed Sh-utils: basename, expr, hostname, uname Textutils: cat, tr
Установка Netkit-base-0.17Приблизительное время компиляции: 0.03 SBU Необходимое дисковое пространство: 1 MB
Инсталляция Netkit-base
Для инсталляции Netkit-base выполните:
./configure && make && make install && cp etc.sample/{services,protocols} /etc
В директории etc.sample расположены другие занятные файлы, которые могут вас заинтересовать.
Содержимое Netkit-base
Последняя проверка: версия 0.17.
Программы
inetd и ping
Описания
inetd
inetd – родитель всех демонов. Прослушивает соединения и передает вызов соответствующему демону.
ping
ping посылает ICMP пакеты ECHO_REQUEST хосту и определяет время ответа.
Зависимости Netkit-base
Последняя проверка: версия 0.17.
Bash: sh Binutils: as, ld, strip Fileutils: cp, install, rm Make: make Gcc: cc1, collect2, cpp0, gcc Sed: sed Sh-utils: date Textutils: cat
Установка Patch-2.5.4Приблизительное время компиляции: 0.10 Необходимое дисковое пространство: 2 MB
Инсталляция Patch
Для инсталляции Patch выполните:
CPPFLAGS=-D_GNU_SOURCE ./configure –prefix=/usr && make && make install
Содержимое 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
Установка Procinfo-18Приблизительное время компиляции: 0.02 SBU Необходимое дисковое пространство: 168 KB
Инсталляция Procinfo
Для инсталляции Procinfo выполните:
make LDLIBS=-lncurses && make install
Пояснения команд
make LDLIBS=-lncurses : Использовать -lncurses вместо -ltermcap при компиляции procinfo, т.к. libtermcap считается устаревшей по отношению к libncurses.
Содержимое Procinfo
Последняя проверка: версия 18.
Программы
lsdev, procinfo и socklist
Описания
lsdev
lsdev получает информацию об установленном оборудовании из файлов interrupts, ioports и dma в каталоге /proc directory, составляя краткий обзор используемых адресов I/O и каналов IRQ и DMA.
procinfo
procinfo получает системную информацию из каталога /proc и выводит отформатированный результат на стандартный вывод.
socklist
Скрипт Perl, выводящий список открытых сокетов, включающий тип, порт, inode, uid, pid, fd и программу, к которой принадлежит сокет.
Зависимости Procinfo
Последняя проверка: версия 18.
Binutils: as, ld Fileutils: install, mkdir Gcc: cc1, collect2, cpp0, gcc Make: make
Установка Procps-2.0.7Приблизительное время компиляции: 0.14 SBU Необходимое дисковое пространство: 2 MB
Инсталляция Procps
Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.
Для инсталляции Procps выполните:
patch -Np1 -i ../procps-2.0.7.patch && make && make XSCPT="" install && mv /usr/bin/kill /bin
Command explanations
patch -Np1 -i ../procps-2.0.7.patch: Этот патч устраняет проблему локали, когда программа top дает сбой при определенных настройках локали.
make XSCPT="" install: Обнуляет значение переменной XSCPT в Makefile для отключения инсталляции XConsole. В обратном случае, команда «make install» попытается скопировать файл XConsole в каталог /usr/X11R6/lib/X11/app-defaults, который не существует, т.к. X Window System не установлена.
Содержимое Procps
Последняя проверка: версия 2.0.7.
Программы
free, kill, oldps, pgrep, pkill, ps, skill, snice, sysctl, tload, top, vmstat, w и watch
Descriptions
free
free показывает количество свободной и занятой физической и виртуальной памяти системы, а также разделяемой памяти и буферы ядра.
kill
kills посылает сигналы процессам.
oldps and ps
ps выводит список процессов.
pgrep
pgrep выводит список процессов, основываясь на заданных именах и атрибутах.
pkill
pkill посылает сигналы процессам, основываясь на заданных именах и атрибутах.
skill
skill посылает сигналы процессам, попадающим под критерий.
snice
snice меняет приоритет процесса, попадающего под критерий.
sysctl
sysctl меняет параметры ядра во время его работы.
tload
tload выводит статистику загрузки системы на указанный tty (или текущий, если не).
top
top позволяет отслеживать активность процессора в реальном времени.
vmstat
vmstat выводит информацию о процессах, памяти, разделе подкачки, блоках IO, и активности процессора.
w
w показывает информацию о зарегистрировавшихся пользователях и их процессах.
watch
watch многократно выполняет команду, отображая ее вывод.
Библиотеки
libproc.so
Описания
libproc
libproc – библиотека, с которой связано большинство программ из этого пакета.
Зависимости Procps
Последняя проверка: версия 2.0.7.
Bash: sh Binutils: as, ld, strip Fileutils: install, ln, mv, rm Gcc: cc1, collect2, cpp0, gcc Grep: grep Make: make Gawk: awk Sed: sed Sh-utils: basename, pwd Textutils: sort, tr