Linux From Scratch
Linux From Scratch читать книгу онлайн
Gerard Beekmans
Copyright © 1999-2002 by Gerard Beekmans
Перевод: Денис Каледин, Ник Фролов, Алекс Казанков.
Версия 4.0
Эта книга описывает процесс создания Linux системы с нуля, используя лишь исходные коды необходимого программного обеспечения.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
Установка 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
Установка Psmisc-21
Приблизительное время компиляции: 0.11 SBU Необходимое дисковое пространство: 2 MB
Инсталляция Psmisc
Для инсталляции Psmisc выполните:
./configure –prefix=/usr –exec-prefix=/ && make && make install
Psmisc инсталлирует страницу руководства man в /usr/share/man/man1/pidof.1, однако сама программа pidof по умолчанию не устанавливается. Обычно это не вызывает проблем, потому что позже мы установим пакет Sysvinit, предлагающий улучшенную версию программы pidof.
Однако вам решать – использовать пакет Sysvinit, предлагающий улучшенную версию программы pidof, или нет. Если да, то удалите страницу руководства Рsmisc pidof, выполнив следующую команду:
rm /usr/share/man/man1/pidof.1
Если вы не собираетесь использовать Sysvinit, завершите инсталляцию данного пакета и создайте символическую ссылку /bin/pidof :
ln -s killall /bin/pidof
Пояснения команд
–exec-prefix=/: Устанавливаем программы в /bin, а не в /usr/bin . Программы, входящие в данный пакет, часто используются при загрузке системы, следовательно, они должны быть доступны в директории /bin до монтирования раздела /usr.
Содержимое Psmisc
Последняя проверка: версия 21.
Программы
fuser, killall и pstree
Заметьте, что в LFS мы не создаем ссылку на pidof по умолчанию, поскольку мы используем pidof из sysvinit.
Описания
fuser
fuser выводит PID процессов, которые использует определенные файлы или файловые системы.