Gerard Beekmans - Linux From Scratch
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