Linux From Scratch — страница 5 из 9

Вступление

В этой главе мы всерьез займемся установкой системы LFS. Сначала мы войдем в созданную в предыдущей главе мини-систему Linux, создадим несколько вспомогательных вещей и перейдем к поочередной инсталляции всех пакетов.

Инсталляция программ довольно однообразна. Вероятно, можно было бы дать общие инструкции установки, а более подробно пояснять установку тех пакетов, которые требуют иного подхода. Однако мы решили предоставить полное руководство по установке для каждого пакета с целью минимизации возможных ошибок.

Если вы собираетесь воспользоваться оптимизациями компилятора в данной главе, см. соответствующее руководство по адресу http://hints.linuxfromscratch.org/hints/optimization.txt. Оптимизации компилятора позволяют ускорить выполнение той или иной программы, однако иногда они создают трудности при компиляции. В случае если пакет не компилируется с использованием оптимизаций, попробуйте скомпилировать его без них.

Настоятельно рекомендуется строго соблюдать порядок инсталляции пакетов в данной главе для того, чтобы не включить в программу ссылку на каталог /static. По той же причине, ни в коем случае не компилируйте несколько пакетов одновременно. Параллельная компиляция хоть и позволяет сэкономить время (особенно на двухпроцессорных системах), однако в этом случае в программу может быть встроена ссылка на каталог /static. После удаления данного каталога, программа будет давать сбои.

Отладочные символы

Большинство программ и библиотек по умолчанию компилируются с символами отладки. ( с опцией gcc -g).

При отладке программы или библиотеки, скомпилированной с отладочной информацией, отладчик предоставляет не только адреса в памяти, но и имена алгоритмов и переменных.

Однако включение символов отладки значительно увеличивает размер программы или библиотеки. Для того, чтобы получить представление о размере отладочных символов, взглянем на пример:

оболочка bash, скомпилированная с отладочными символами: 1200 KB

оболочка bash, скомпилированная без отладочных символов: 480 KB

файлы glibc и gcc (/lib и /usr/lib) с отладочными символами: 87 MB

файлы glibc и gcc скомпилированная без отладочных символов: 16 MB

Размеры могут различаться в зависимости от использованного компилятора Си и библиотеки. При сопоставлении размера программы, скомпилированной с отладочными символами и без них, разница составляет примерно 2 – 5 раз.

Так как большинство пользователей никогда не используют отладчик, удаление этих символов позволит значительно сэкономить дисковое пространство.

Для удаления символов отладки из бинарного файла (файл a.out или бинарный файл ELF), выполните strip –strip-debug filename. Допускается использование символа * для обработки нескольких файлов (например, strip –strip-debug $LFS/static/bin/*).

Для удобства, в главе 9 описана программа, удаляющая отладочные символы со всех программ и библиотек системы. Для получения дополнительных сведений по оптимизации, см. руководство: http://hints.linuxfromscratch.org/hints/optimization.txt.

Вход в среду chroot

Для последующей инсталляции пакетов необходимо войти в среду chroot. Для этого войдите в систему в режиме пользователя root, т.к. только root он имеет право выполнять команду chroot.

После перехода в режим пользователя root, выполните следующую команду для входа в среду chroot:

chroot $LFS /static/bin/env -i \

HOME=/root TERM=$TERM PS1='\u:\w\$ ' \

PATH=/bin:/usr/bin:/sbin:/usr/sbin:/static/bin \

/static/bin/bash –login


Команда env с опцией -i очистит значения всех переменных среды chroot. Затем только переменные HOME, TERM, PS1 и PATH будут заданы. Конструкция TERM=$TERM устанавливает значение TERM для среды chroot равным значению TERM вне этой среды; эта переменная необходима для корректной работы программ типа vim и less. Если вы нуждаетесь в других переменных, например CFLAGS или CXXFLAGS, самое время задать их снова.

Отныне нет необходимости использовать переменную LFS, т.к. все действия выполняются в файловой системе LFS (то, что оболочка считает / , на самом деле является /mnt/lfs).

Обратите внимание, что все команды, начиная с данной главы, следует выполнять из среды chroot. Если по какой-то причине (например, перезагрузка системы) вы вышли из этой среды, прежде чем возобновить инсталляцию, заново войдите в нее и монтируйте файловую систему proc (см. далее).

Заметьте, что приглашение bash выглядит следующим образом: «I have no name!» Это нормально, т.к. пакет Glibc еще не был установлен.

Изменение прав

Первое что мы сделаем в режиме пользователя root – передадим права файлов и директорий, установленных в Главе 5, пользователю root. Это необходимо, т.к. когда в дальнейшем мы оставим директорию /static добавим несколько пользователей, один из них может оказаться владельцем программы со статическими ссылками, а это не самая лучшая идея.

Выполните следующую команду для передачи прав на все программы, скомпилированные с использованием статических ссылок:

chown -R 0:0 /static


Эта команда использует «0:0» вместо «root:root», т.к. оболочка не может резольвировать имя «root», т.к. пакет glibc еще не был установлен.

Создание директорий

Давайте создадим структуру файловой системы LFS. Начнем с создания более или менее стандартного дерева с помощью следующих команд:

mkdir -p /{bin,boot,dev/pts,etc/opt,home,lib,mnt,proc} &&

mkdir -p /{root,sbin,tmp,usr/local,var,opt} &&

for dirname in /usr /usr/local

do

mkdir $dirname/{bin,etc,include,lib,sbin,share,src}

ln -s share/{man,doc,info} $dirname

mkdir $dirname/share/{dict,doc,info,locale,man}

mkdir $dirname/share/{nls,misc,terminfo,zoneinfo}

mkdir $dirname/share/man/man{1,2,3,4,5,6,7,8}

done &&

mkdir /var/{lock,log,mail,run,spool} &&

mkdir -p /var/{tmp,opt,cache,lib/misc,local} &&

mkdir /opt/{bin,doc,include,info} &&

mkdir -p /opt/{lib,man/man{1,2,3,4,5,6,7,8}} &&

ln -s ../var/tmp /usr


По умолчанию директории создаются с правами доступа 755, однако это подходит не для всех директорий. Мы сделаем два изменения: для домашнего каталога root и для каталога временных файлов.

chmod 0750 /root &&

chmod 1777 /tmp /var/tmp


Первое изменение гарантирует, что не все пользователи имеют доступ к директории /root directory – аналогичные действия выполняет обычный пользователь со своим домашним каталогом. Второе изменение дает любому пользователю право на запись в директории /tmp и /var/tmp, однако не разрешает удалять из них файлы других пользователей. Удаление чужих файлов определяется параметром «sticky bit» – наивысший двоичный знак в двоичной маске 1777.

Итак, после создания директорий переместите tar-архивы исходных кодов пакетов, загруженных по инструкциям Главы 3, в некоторый самостоятельно созданный подкаталог в /usr/src.

Соответствие FHS

При создании директорий мы основывались на стандарте FHS (см. http://www.pathname.com/fhs/). Помимо созданных каталогов данный стандарт ставит условием наличие каталогов /usr/local/games и /usr/share/games, но, по нашему мнению, для базовой системы они не нужны. Однако можете смело привести свою систему к полному соответствию с FHS. Что касается структуры каталога /usr/local/share, стандарт FHS строго не оговаривает его содержимое, так что мы решили создать в нем необходимые, по нашему убеждению, подкаталоги.

Монтирование файловой системы proc

Для обеспечения корректной работы некоторых программ, необходимо установить файловую систему proc в среде chroot. Так как файловая система может быть монтирована сколько угодно раз и в каких угодно местах, проблем с тем, что файловая система proc уже монтирована в вашем базовом дистрибутиве, возникнуть не должно. Тем более, что proc – виртуальная файловая система.

Для монтирования файловой системы proc в /proc, выполните:

mount proc /proc -t proc


Вероятно, следующие предупреждения команды mount будут выведены на экран:

warning: can't open /etc/fstab: No such file or directory

not enough memory


Не обращайте на них особого внимания – наша система полностью не установлена, и некоторые файлы отсутствуют. Само монтирование файловой системы будет выполнено, и на данном этапе нам больше ничего не требуется.

Создание символической ссылки mtab

Следующий шаг – создание символической ссылки /etc/mtab на /proc/mounts. Для этого выполните:

ln -sf /proc/mounts /etc/mtab


Создание этой символической ссылки предотвращает возможные проблемы при монтировании / только для чтения, когда информация в /etc/mtab устарела. Символическая ссылка на /proc/mounts позволяет всегда иметь свежую информацию о монтированных устройствах.

Примечание: Использование данной символической ссылки предполагает, что в ядро вашей системы встроена поддержка файловой системы proc. Данная поддержка встроена по умолчанию, не удаляйте ее, если вы не уверены в своих действиях, т.к. множество других вещей кроме символической ссылки /etc/mtab зависят от нее. Вкратце, убедитесь, что поддержка файловой системы proc включена в ядре.

Создание символических ссылок bash и sh

Некоторые программы при компиляции прописывают ссылки на пока не существующие программы. Для предотвращения связанных с этим проблем, создадим символические ссылки /bin/bash и /bin/sh, указывающие на программу bash, скомпилированную с использованием статических ссылок.

Для создания символических ссылок /bin/bash и /bin/sh, выполните:

ln -s /static/bin/bash /bin/bash &&

ln -s bash /bin/sh

Создание файлов passwd и group

Для возможности входа в систему под учетной записью root и для распознавания оболочкой имени «root», необходимо создать соответствующие записи в файлах /etc/passwd и /etc/group.

Для создания файла /etc/passwd, выполните:

echo «root:x:0:0:root:/root:/bin/bash» > /etc/passwd


Пароль для root ( "x" всего лишь метка заполнения) будет задан позже.

Для создания файла /etc/group, выполните:

cat > /etc/group << «EOF»

root:x:0:

bin:x:1:

sys:x:2:

kmem:x:3:

tty:x:4:

tape:x:5:

daemon:x:6:

floppy:x:7:

disk:x:8:

lp:x:9:

dialout:x:10:

audio:x:11:

EOF


Созданные группы не относятся ни к какому стандарту – их использует скрипт MAKEDEV, см. след. секцию. Помимо группы «root», стандарт LSB рекомендует наличие только группы «bin», с GID <идентификатор группы> равным 1. Все остальные названия групп и их GID пользователю разрешается выбирать произвольно, т.к. грамотно написанные программы не зависят от номеров GID, а используют название группы.

Создание устройств (Makedev-1.7)

Приблизительное время компиляции: 0.07 SBU Необходимое дисковое пространство: 50 KB


Создание файлов устройств

Примите к сведению, что при распаковке архива MAKEDEV-1.7.bz2 не создается директория для перехода, т.к. архив содержит только файл скрипта.

Подготовим создание файлов устройств следующей командой:

cp MAKEDEV-1.7 /dev/MAKEDEV && cd /dev && chmod 754 MAKEDEV


Большинство пользователей захотят сразу же создать файлы устройств командой:

./MAKEDEV -v generic


Однако, если вы планируете использовать devpts, выполните:

./MAKEDEV -v generic-nopty


Если вы не уверены в своих действиях, для создания всех необходимых устройств лучше выполнить команду ./MAKEDEV -v generic. В случае, если вы уверены, что собираетесь использовать devpts, вторая команда пропускает создание ненужных устройств.

MAKEDEV создает устройства с hda[1-20] по hdh[1-20] и многие другие подобные файлы дисковых узлов, однако имейте ввиду, что из-за ограничений ядра на максимальное количество разделов многие из них будут недоступны.

Пояснения команд

./MAKEDEV -v generic: Эта команда создает огромное количество файлов устройств. Обычно, это все, что вам нужно. Однако существует вероятность, что некоторые специфические файлы для ваших аппаратных устройств отсутствуют. Их можно создать командой ./MAKEDEV -v <устройство>. Опция generic-nopty в создает, в основном, те же устройства, что и опция generic, за исключением тех, которые не нужны при использовании devpts.

Содержимое MAKEDEV

Последняя проверка: версия 1.5.

Программы

MAKEDEV

Описания

MAKEDEV

MAKEDEV – скрипт, создающий необходимые статические связи с устройствами, обычно располагающимися в каталоге /dev. Детальная информация о связях с устройствами может быть найдена в дереве исходных кодов ядра Linux в Documentation/devices.txt.

Зависимости MAKEDEV

Последняя проверка: версия 1.5.

Bash: sh Fileutils: chmod, chown, cp, ln, mknod, mv, rm Grep: grep Sh-utils: expr, id

Установка Linux-2.4.19

Приблизительное время компиляции: 0.02 Необходимое место на диске: 142 MB


Установка заголовочных файлов ядра

На данном этапе мы не будем компилировать ядро – мы сделаем это после установки всех пакетов. Однако, в связи с тем, что некоторые пакеты требуют заголовочных файлов ядра, мы распакуем ядро, настроим его и скопируем заголовки туда, где их будут искать пакеты при компиляции.

Скопируем заголовки ядра, выполнив следующие команды:

ln -s /static/bin/pwd /bin/pwd && make mrproper && make include/linux/version.h && make symlinks && mkdir /usr/include/asm && cp include/asm/* /usr/include/asm && cp -R include/asm-generic /usr/include && cp -R include/linux /usr/include && touch /usr/include/linux/autoconf.h && rm /bin/pwd


Пояснения команд

ln -s /static/bin/pwd /bin/pwd: В исходных кодах ядра путь к программе pwd прописан как /bin/pwd, поэтому создадим временную символическую ссылку, а в конце удалим ее.

make mrproper: Выполнение данной команды обеспечивает чистое дерево исходников ядра. Команда разработчиков ядра рекомендует выполнять эту команду перед каждой компиляцией ядра, даже если вы только что распаковали исходные коды из tar-архива.

make include/linux/version.h и make symlinks: Создадим файл include/linux/version.h file и символическую ссылку include/asm для конкретной платформы.

mkdir /usr/include/asm , cp include/asm/* /usr/include/asm и cp -R include/asm-generic /usr/include: Эти команды копируют заголовочные файлы ядра ассемблера для конкретной платформы в /usr/include/asm и /usr/include/asm-generic.

cp -R include/linux /usr/include: Эта команда копирует кросс-платформенные файлы заголовков в /usr/include.

touch /usr/include/linux/autoconf.h: Создаем пустой файл autoconf.h. Так как на данном этапе мы не конфигурируем ядро, необходимо вручную создать этот файл для некоторых заголовочных файлов ядра, использующих его, чтобы избежать ошибок при компиляции.

Почему мы копируем заголовки ядра, а не создаем для них символические ссылки?

Раньше было принято создавать символические ссылки директорий /usr/include/{linux,asm} на /usr/src/linux/include/{linux,asm}. Однако, это была плохая идея, как объясняет Линус Торвальдс в списке рассылки ядра Linux (Linux Kernel Mailing List, отрывок):

Тем, кто компилирует новые ядра, настоятельно рекомендую: – не создавать символических ссылок (кроме той, которую создает само ядро, «linux/include/asm», символическая ссылка, которая используется при внутренней компиляции ядра.) Да, именно так делаю я. В моем каталоге /usr/src/linux есть заголовки старого ядра 2.2.13, несмотря на то, что я не использовал ядро 2.2.13 уже очень давно. Однако именно с этими заголовками компилировался пакет glibc, соответственно именно эти заголовки соответствуют файлам объектов библиотеки. Также именно такое положение вещей являлось рекомендуемым на протяжении последних пяти лет. Я не могу понять, почему вся эта заморочка с символическими ссылками все еще существует, как зомби. Практически во всех дистрибутивах есть эта неработающая символическая ссылка, и люди до сих пор помнят, что исходники ядра Linux должны находится в «/usr/src/linux», несмотря на то, что это уже давно не так.


Наиболее важная часть сообщения Линуса заключается в том, что файлы заголовков должны быть именно теми, с которыми компилировался пакет glibc. Это те заголовки, которые следует использовать в будущем при компиляции других пакетов, т.к. именно они соответствуют файлам библиотек объектного кода. Копируя заголовки, мы удостоверяемся, что они останутся доступными, если позже мы решим обновить ядро.

Заметьте, что нет ничего страшного в том, что исходные коды ядра находятся в директории /usr/src/linux. Главное, чтобы у вас не было символических ссылок /usr/include/{linux,asm}.

Содержимое Linux

Последняя проверка: версия 2.4.18.

Файлы поддержки

Ядро Linux и его заголовочные файлы

Описания

Ядро Linux

Ядро – основа любой системы Linux. Когда компьютер включается и загружает Linux, первое, что загружается – ядро. Ядро инициализирует аппаратные компоненты системы: последовательные и параллельные порты, звуковые и сетевые карты, контроллеры IDE и SCSI и многое другое. In a nutshell the kernel makes the hardware available so that the software can run.

linux kernel headers

Это файлы, которые мы копируем в /usr/include/{linux,asm} в 5-й главе. Они должны соответствовать тем, с которым был скомпилирован glibc, и поэтому не должны быть заменены при смене ядра. Они имеют ключевое значение для компиляции многих программ.

Зависимости 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

Установка Man-pages-1.52

Приблизительное время компиляции: 0.01 SBU Необходимое дисковое пространство: 6 MB


Инсталляция Man-pages

Для инсталляции Man-pages выполните:

make install


Содержимое Man-pages

Последняя проверка: версия 1.52.

Файлы поддержки

Различные страницы руководства, не поставляемые с пакетами

Описания

Страницы руководства

Примеры предоставляемых страниц руководства – описания всех функций C and C++, файлов /dev/ и многое другое.

Зависимости Man-pages

Последняя проверка: версия 1.47.

Bash: sh Fileutils: install Make: make

Установка Glibc-2.2.5

Приблизительное время компиляции: 14.71 SBU Необходимое дисковое пространство: 369 MB


Инсталляция Glibc

Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.

Перед выполнением инсталляционных инструкций войдите в каталог glibc-2.2.5 и распакуйте архив glibc-linuxthreads в каталоге glibc-2.2.5, а не в /usr/src.

Этот пакет известен своим нестабильным поведением при компиляции с измененными опциями оптимизации (включая опции -march и -mcpu). Glibc рекомендуется компилировать с настройками по умолчанию. Следовательно, если вы задали переменные такие как CFLAGS или CXXFLAGS, изменяющие уровень оптимизации по умолчанию, рекомендуется убрать их при сборке пакета Glibc. Изменяя оптимизации для Glibc, вы действуете на свой страх и риск.

Также не стоит запускать скрипт configure с опцией –enable-kernel. Это может вызвать ошибки сегментации при ссылке на него пакетов вроде fileutils, make и tar.

Вообще, чтобы не рисковать, рекомендуем компилировать Glibc в точности как указано в этом разделе.

Для инсталляции Glibc выполните:

patch -Np1 -i ../glibc-2.2.5-2.patch && touch /etc/ld.so.conf && mkdir ../glibc-build && cd ../glibc-build && ../glibc-2.2.5/configure –prefix=/usr –disable-profile \ –enable-add-ons –libexecdir=/usr/bin && echo «cross-compiling = no» > configparms && make && make install && make localedata/install-locales && exec /static/bin/bash –login


Вместо выполнения make localedata/install-locales можно установить только те локали, которые вам необходимы с помощью команды localedef. Более подробную информацию можно найти в файле INSTALL в директории glibc-2.2.5. Не забудьте создать директорию /usr/lib/local, т.к. localedef предполагает ее наличие.

На данном этапе мы не будем инсталлировать страницы руководства потоков (The Linux Threads man pages), т.к. они требуют функционирующего пакета Perl. Мы вернемся к их инсталляции после установки Perl.

Во время стадии configure на экран будет выведено следующее предупреждение:

configure: warning: *** These auxiliary programs are missing or too old: msgfmt *** some features will be disabled. *** Check the INSTALL file for required versions.


Отсутствие файла msgfmt (из пакета gettext, который мы установим позже в данной главе) не вызовет никаких проблем. Файл msgfmt используется для генерирования бинарных файлов перевода, которые позволяют системе общаться на другом языке. Так как эти файлы перевода уже сгенерированы, в использовании msgfmt нет необходимости. Нам понадобился бы msgfmt лишь в том случае, если мы изменили исходники файлов перевода (файлы *.po в подкаталоге po), т.к. нам пришлось бы заново генерировать бинарные файлы.

Пояснения команд

patch -Np1 -i ../glibc-2.2.5-2.patch: Этот патч переводит все упоминания о $(PERL) на /usr/bin/perl в файле malloc/Makefile. Это необходимо, т.к. Glibc не может определить местонахождение программ Perl, так как пакет Perl еще не был установлен. Данный патч также заменяет все упоминания о root на 0 в файле login/Makefile. Это необходимо, потому что сам пакет Glibc еще не установлен, и выявление идентификационного номера пользователя из имени пользователя невозможно. К примеру, команда chown root file не будет работать, в то время как при замене имени пользователя на userid, программа будет выполнена.

Данный патч также устраняет некоторые другие ошибки, например, «errlist», «dns resolver», «xdr_array», «calloc», «thread exit», «udivdi3», «math test», «restrict_arr» и «divbyzero». Для получения более подробной информации, см. http://www.zipworld.com.au/~gschafer/lfs-tweaks.html.

touch /etc/ld.so.conf: Один из заключительных шагов установки Glibc installation – выполнение команды ldconfig для обновления динамического кэша загрузки. Если этот файл не существует, инсталляция завершится с ошибкой, что не может прочесть файл. Для избегания подобной ошибки, мы просто создаем пустой файл (в случае пустого файла, Glibc будет по умолчанию использовать каталоги /lib и /usr/lib).

–disable-profile: Отменяет компиляцию библиотек с профильной информацией. Если вы собираетесь использовать профили, пропустите эту опцию.

–enable-add-ons: Включает дополнительные модули, в нашем случае linuxthreads.

–libexecdir=/usr/bin: Инсталлирует программу pt_chown в каталог /usr/bin.

echo «cross-compiling = no» > configparms: Этой командой мы даем понять, что компилируем пакет только для нашей системы. Кросс-компиляция используется, например, для того, чтобы скомпилировать пакет для системы Apple Power PC на Intel-совместимом компьютере. Glibc по умолчанию полагает, что мы кросс-компилируем, потому что не может скомпилировать тестовую программу для проверки, т.к. сам пакет Glibc еще не установлен.

exec /static/bin/bash –login: Данная программа запустит новый сеанс оболочки bash вместо текущего. Мы, таким образом, избавимся от приглашения «I have no name!» командной строки, которое было вызвано невозможностью bash получить имя пользователя из userid (из-за отсутствия Glibc).

Содержимое Glibc

Последняя проверка: версия 2.2.5.

Программы

catchsegv, gencat, getconf, getent, glibcbug, iconv, iconvconfig, ldconfig, ldd, lddlibc4, locale, localedef, mtrace, nscd, nscd_nischeck, pcprofiledump, pt_chown, rpcgen, rpcinfo, sln, sprof, tzselect, xtrace, zdump и zic

Описания

catchsegv

catchsegv может быть использования для слежения за состоянием стека, когда выполнение программы прерывается из-за ошибки распределения памяти.

gencat

gencat генерирует каталоги сообщений.

getconf

getconf отображает значения переменных, зависящих от системной конфигурации.

getent

getent позволяет получить записи административной базы данных.

glibcbug

glibcbug создает сообщение об ошибке в glibc и отправляет по указанному адресу сообщения об ошибках.

iconv

iconv осуществляет преобразование наборов символов.

iconvconfig

iconvconfig создает конфигурационные файлы для модулей iconv.

ldconfig

ldconfig настраивает привязки времени исполнения динамического линкера.

ldd

ldd выводит список разделяемых библиотек, необходимых заданным программам.

lddlibc4

lddlibc4 используется ldd при работе с объектными файлами.

locale

locale – скрипт на Perl, разрешающий (или запрещающий) компилятору использование локалей POSIX для встроенных операций.

localedef

localedef компилирует спецификации локалей.

mtrace

mtrace выводит путь multicast от источника к получателю (запрос IP trace).

nscd

nscd – демон, предоставляющий кэш для большинства запросов DNS.

nscd_nischeck

nscd_nischeck проверяет нужен или нет защищенный режим для запроса NIS+.

pcprofiledump

pcprofiledump выводит информацию, полученной из профиля PC.

pt_chown

pt_chown устанавливает владельца, группу и права доступа подчиненного псевдотерминала в соответствии с основным псевдотерминалом, переданном в описании `3'. Это вспомогательная программа для функции `grantpt'. Не предназначается для прямого запуска из командной строки.

rpcgen

rpcgen генерирует код C для реализации протокола RPC.

rpcinfo

rpcinfo делает запрос RPC к серверу.

sln

sln символически связывает dest и source. Программа собрана статически. Использование sln полезно для создания символических ссылок на динамические библиотеки, если система динамического связывания по какой-то причине нефункциональна.

sprof

sprof выводит информацию о разделяемом объекте.

tzselect

tzselect получает от пользователя информацию от его местоположении и выводит на стандартный вывод значение текущей временной зоны.

xtrace

xtrace отслеживает исполнение программы, выводя исполняемые в данный момент функции.

zdump

zdump – сохраняет значение временной зоны.

zic

zic – компилятор временных зон.

Библиотеки

ld.so, libBrokenLocale.[a,so], libBrokenLocale_p.a, libSegFault.so, libanl.[a,so], libanl_p.a, libbsd-compat.a, libc.[a,so], libc_nonshared.a, libc_p.a, libcrypt.[a,so], libcrypt_p.a, libdl.[a,so], libdl_p.a, libg.a, libieee.a, libm.[a,so], libm_p.a, libmcheck.a, libmemusage.so, libnsl.a, libnsl_p.a, libnss_compat.so, libnss_dns.so, libnss_files.so, libnss_hesiod.so, libnss_nis.so, libnss_nisplus.so, libpcprofile.so, libpthread.[a,so], libpthread_p.a, libresolv.[a,so], libresolv_p.a, librpcsvc.a, librpcsvc_p.a, librt.[a,so], librt_p.a, libthread_db.so, libutil.[a,so] и libutil_p.a

Описания

ld.so

ld.so – вспомогательная программа для исполняемых файлов разделяемых библиотек.

libBrokenLocale, libBrokenLocale_p

Используется многими программами, например Mozilla, для использования поврежденных локалей.

libSegFault

libSegFault управляет сигналами ошибок распределения памяти, также пытается их перехватить.

libanl, libanl_p

libanl – библиотека асинхронных запросов DNS.

libbsd-compat

libbsd-compat предоставляет переносимость, необходимую для запуска некоторых программ в Linux.

libc, libc_nonshared, libc_p

Эти файлы образуют основную библиотеку C. Библиотека C – набор часто используемых в программах функций. Таким образом, программисту не нужно писать свои функции для каждой задачи. Большинство стандартных операций вроде вывода строки на экран уже готовы к использованию.

Библиотека C (в общем случае, любая библиотека) существует как в динамическом, так и статическом виде. Вкратце, когда программа использует статическую библиотеку, код из библиотеки копируется в исполняемый файл. При использовании динамической библиотеки, код из библиотеки не добавляется в исполняемый файл, а загружается только во время исполнения программы. Это позволяет уменьшить размер программ. За подробностями обращайтесь к документации библиотеки C.

libcrypt, libcrypt_p

libcrypt – криптографическая библиотека.

libdl, libdl_p

libdl – библиотека интерфейсов динамической линковки.

libg

libg – библиотека времени исполнения g++.

libieee

libieee – IEEE библиотека операций с числами с плавающей запятой.

libm, libm_p

libm – математическая библиотека.

libmcheck

libmcheck – содержит код, выполняемый при загрузке.

libmemusage

libmemusage – используется memusage для сбора информации о памяти, используемой программой.

libnsl, libnsl_p

libnsl – библиотека сетевых сервисов.

libnss_compat, libnss_dns, libnss_files, libnss_hesiod, libnss_nis, libnss_nisplus

Основная идея – поместить реализацию различных сервисов доступа к базам данных в отдельные модули. Преимущества:

поставщики могут добавлять новые сервисы, не включая их в C библиотеку GNU,

модули могут быть независимо обновлены,

Библиотека C имеет меньший размер.

libpcprofile

Код, используемый ядром для отслеживания времени, затрачиваемого процессором на исполнение функций, отдельных строк кода и инструкций.

libpthread, libpthread_p

POSIX библиотека потоков.

libresolv, libresolv_p

Библиотека позволяет DNS-серверам создавать, посылать и интерпретировать пакеты.

librpcsvc, librpcsvc_p

Библиотека предоставляет различные сервисы RPC.

librt, librt_p

Библиотека предоставляет большинство интерфейсов, описанных POSIX.1b Realtime Extension.

libthread_db

Библиотека полезна для создания отладчиков для многопотоковых приложений.

libutil, libutil_p

Содержит код «стандартных» функций, используемых многими утилитами Unix.

Зависимости Glibc

Последняя проверка: версия 2.2.5.

Bash: sh Binutils: ar, as, ld, ranlib, readelf Diffutils: cmp Fileutils: chmod, cp, install, ln, mknod, mv, mkdir, rm, touch Gcc: cc, cc1, collect2, cpp, gcc Grep: egrep, grep Gzip: gzip Make: make Gawk: gawk Sed: sed Sh-utils: date, expr, hostname, pwd, uname Texinfo: install-info, makeinfo Textutils: cat, cut, sort, tr

Установка GCC-3.2

Приблизительное время компиляции: 13.26 SBU Необходимое дисковое пространство: 221 MB


Инсталляция GCC

Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.

Этот пакет известен своим нестабильным поведением при компиляции с измененными опциями оптимизации (включая опции -march и -mcpu). GCC рекомендуется компилировать с настройками по умолчанию. Следовательно, если вы задали переменные такие как CFLAGS или CXXFLAGS, изменяющие уровень оптимизации по умолчанию, рекомендуется убрать их при сборке пакета GCC. Изменяя оптимизации для GCC, вы действуете на свой страх и риск.

Для инсталляции GCC выполните приведенные ниже команды, собирающие компиляторы языка Си и С++. Также можно установить компиляторы других языков программирования из пакета GCC. В случае, если вы хотите инсталлировать все компиляторы из пакета GCC, уберите опцию –enable-languages=c,c++ из команды configure. Для получения информации о доступных компиляторах, см документацию пакета GCC.

Примечание: инсталляция других компиляторов не тестировалась разработчиками проекта LFS.

patch -Np1 -i ../gcc-3.2.patch && mkdir ../gcc-build && cd ../gcc-build && ../gcc-3.2/configure –prefix=/usr –enable-shared \ –enable-languages=c,c++ –enable-threads=posix \ –with-slibdir=/lib –enable-__cxa_atexit \ –enable-clocale=gnu && make bootstrap && make install && ln -s ../usr/bin/cpp /lib && ln -s ../bin/cpp /usr/lib && ln -s gcc /usr/bin/cc


Пояснение команд

–enable-threads=posix: Эта опция включает обработку исключений в многопоточном коде на С++.

–enable-__cxa_atexit: Эта опция позволит использовать shared-библиотеки C++ и программы, написанные на C++, с другими дистрибутивами Linux.

–enable-clocale=gnu: Существует опасность, что у некоторых пользователей будут компилироваться ABI-несовместимые библиотеки С++, если glibc localedata не установлен полностью. Использование опции –enable-clocale=gnu гарантирует корректную компиляцию во всех случаях. Если вы не хотите использовать эту опцию, удостоверьтесь, что по крайней мере, устанавливается локаль de_DE. Когда GCC находит эту конкретную локаль, выполняется верный режим локали (gnu).

Содержимое GCC

Последняя проверка: версия 3.1.

Программы

c++, c++filt, cc (link to gcc), cc1, cc1plus, collect2, cpp, cpp0, g++, gcc, gccbug, gcov и tradcpp0

Описания

cc, cc1, cc1plus, gcc

Компилятор C. Компилятор переводит код из текстового формата в формат, понятный компьютеру. После того, как исходный код скомпилирован в объектный файл, линкер создаст исполняемый файл из одного или нескольких объектных.

c++, cc1plus, g++

Компилятор C++, эквивалент cc, gcc etc.

c++filt

Язык C++ позволяет осуществлять перезагрузку функций, делая возможным написание многих функций с одним именем (с разным набором параметром). Все имена функций C++ закодированы в низкоуровневые метки ассемблера (этот процесс известен как mangling). c++filt совершает обратное действие: низкоуровневые имена переводятся (demangling) в имена, понятные пользователю, так что линкер избегает конфликта между перезагруженными функциями.

collect2

collect2 помогает в компиляции конструкторов.

cpp, cpp0

cpp осуществляет препроцессинг исходных файлов, например включает в них содержимое заголовочных файлов. Просто добавьте в ваш исходный файл строку вроде #include . Препроцессор вставит содержимое заголовочного файла.

gccbug

gccbug – скрипт, облегчающий создание сообщений об ошибках.

gcov

gcov анализирует программы, чтобы помочь в создании более эффективного и быстрого кода путем его оптимизации.

tradcpp0

На данный момент описания нет.

Библиотеки

libgcc.a, libgcc_eh.a, libgcc_s.so, libiberty.a, libstdc++.[a,so], libsupc++.a

Описания

libgcc, libgcc_eh, libgcc_s

Файлы поддержки gcc времени исполнения.

libiberty

libiberty – коллекция подпрограмм, используемых различными программами GNU, включая getopt, obstack, strerror, strtol и strtoul.

libstdc++

libstdc++ – библиотека C++. Она используется программами на C++ и содержит часто используемые функции. Таким образом, программисту не нужно писать стандартные функции (например, вывод строки текста на экран) с нуля при каждом создании программы.

libsupc++

libsupc++ предоставляет поддержку языка программирования C++. Помимо прочего, libsupc++ содержит функции для обработки исключений.

Зависимости GCC

Последняя проверка: версия 2.95.3.

Bash: sh Binutils: ar, as, ld, nm, ranlib Diffutils: cmp Fileutils: chmod, cp, ln, ls, mkdir, mv, rm, touch Find: find Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Patch: patch Sed: sed Sh-utils: basename, dirname, echo, expr, hostname, sleep, true, uname Tar: tar Texinfo: install-info, makeinfo Textutils: cat, tail, tr

Установка Zlib-1.1.4

Приблизительное время компиляции: 0.07 SBU Необходимое дисковое пространство: 1 MB


Инсталляция Zlib

Для инсталляции Zlib выполните:

./configure –prefix=/usr –shared && make LIBS="libz.so.1.1.4 libz.a" && make LIBS="libz.so.1.1.4 libz.a" install && mv /usr/lib/libz.so.* /lib && ln -sf ../../lib/libz.so.1 /usr/lib/libz.so && cp zlib.3 /usr/share/man/man3


Содержимое Zlib

Последняя проверка: версия 1.1.4.

Библиотеки

libz[a,so]

Описания

libz

Библиотека zlib, используемая многими программами, и реализующая методы (де)компрессии данных.

Зависимости Zlib

Зависимости еще не проверялись.

Установка Findutils-4.1

Приблизительное время компиляции: 0.10 SBU Необходимое место на диске: 3 MB


Инсталляция Findutils

Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.

Для инсталляции Findutils выполните:

patch -Np1 -i ../findutils-4.1.patch && ./configure –prefix=/usr && make libexecdir=/usr/bin && make libexecdir=/usr/bin install


Замечания по соответствию FHS

По умолчанию, база данных updatedb находится /usr/var. Если вы хотите полного соответствия со стандартом FHS, установите ее в другом месте. Приведенные ниже команды используют совместимый с FHS файл базы данных /var/lib/misc/locatedb.

patch -Np1 -i ../findutils-4.1.patch && ./configure –prefix=/usr && make localstatedir=/var/lib/misc libexecdir=/usr/bin && make localstatedir=/var/lib/misc libexecdir=/usr/bin install


Пояснения команд

patch -Np1 -i ../findutils-4.1.patch: Этот патч исправляет некоторые ошибки при компиляции, избегая конфликта переменных и поправляя синтаксис.

Содержимое Findutils

Последняя проверка: версия 4.1.

Программы

bigram, code, find, frcode, locate, updatedb и xargs

Описания

bigram

bigram используется вместе с code для создания поисковых баз старого типа. Больше информации об этих программах приведено на locatedb.5 man page.

code

code – предшественник frcode. Он использовался в старых поисковых базах.

find

find ищет файлы, отвечающие заданному критерию. Если критерий не задан, выводится список файлов в текущем каталоге и каталогах нижнего уровня.

frcode

frcode вызывается updatedb для сжатия списка файлов, используя front-compression и уменьшая размер базы данных в 4-5 раз.

locate

locate просматривает базу данных, содержащую сведения обо всех файлах и каталогах на файловой системе. Программа выводит имена файлов и каталогов в базе, совпадающие с заданным критерием. Если пользователь ищет файлы, программа просмотрит базу и сообщит, где находятся запрошенные файлы. Поиск даст результаты, только если база часто обновляется, иначе будет выдана устаревшая информация.

updatedb

updatedb обновляет поисковую базу. Просматривается вся файловая система (включая все смонтированные, если не указано обратное), каждый найденный файл и каталог записывается в базу, используемую locate. Неплохо обновлять базу хотя бы раз в день, чтобы избежать ее устаревания.

xargs

xargs выполняет команду относительно списка файлов. Список должен содержать одно имя в строке.

Зависимости Findutils

Последняя проверка: версия 4.1.

Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, cp, install, mv, rm Grep: egrep, grep Gcc: cc1, collect2, cpp0, gcc Make: make Patch: patch Sed: sed Sh-utils: basename, date, echo, hostname Textutils: cat, tr

Установка Gawk-3.1.1

Приблизительное время компиляции: 0.39 SBU Необходимое дисковое пространство: 15 MB


Инсталляция Gawk

Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.

Предупреждение: Ни в коем случае не выполняйте команду make uninstall для этого пакета, если вы установили патч, изменяющий определение директории libexec. Правило uninstall в скрипте Makefile выполнит команду rm -rf /* . Так как мы определили директорию libexec как /usr/bin, скрипт выполнит rm -rf /usr/bin/*

Для инсталляции Gawk выполните:

patch -Np1 -i ../gawk-3.1.1-2.patch && ./configure –prefix=/usr –libexecdir=/usr/bin && make && make install


Пояснение команд

patch -Np1 -i ../gawk-3.1.1-2.patch: Этот патч изменяет определение местоположения директории libexec. Он позволит нам переопределить ее с помощью опции –libexecdir к скрипту configure.

Содержимое Gawk

Последняя проверка: версия 3.1.1.

Программы

awk, gawk, gawk-3.1.1, grcat, igawk, pgawk, pgawk-3.1.1, pwcat

Описания

awk

awk – символьная ссылка на gawk.

gawk, gawk-3.1.1

gawk – GNU реализация awk, языка поиска и обработки текстовых образцов.

grcat

grcat выполняет слияние базы групп, /etc/group.

igawk

igawk – скрипт, дающий gawk возможность включения файлов.

pgawk, pgawk-3.1.1

pgawk – профильная версия gawk.

pwcat

pwcat выполняет слияние базы паролей, /etc/passwd.

Зависимости Gawk

Последняя проверка: версия 3.1.0.

(Зависимости пока не проверены)

Установка Ncurses-5.2

Приблизительное время компиляции: 1.88 SBU Необходимое дисковое пространство: 22 MB


Инсталляция Ncurses

Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.

Для инсталляции Ncurses выполните:

patch -Np1 -i ../ncurses-5.2-2.patch && ./configure –prefix=/usr –with-shared && make && make install && chmod 755 /usr/lib/*.5.2 && mv /usr/lib/libncurses.so.5* /lib && ln -s libncurses.a /usr/lib/libcurses.a && ln -sf ../../lib/libncurses.so.5 /usr/lib/libncurses.so && ln -sf ../../lib/libncurses.so.5 /usr/lib/libcurses.so


Пояснения команд

patch -Np1 -i ../ncurses-5.2-patch: Этот патч устраняет проблему компиляции пакета с GCC-3.2, т.к. Ncurses использует конструкции, более недействительные в новом стандарте С++.

–with-shared: Эта опция указывает компилировать библиотеки ncurses совместного пользования.

chmod 755 *.5.2: Библиотеки совместного пользования должны быть исполняемыми. Однако процедура инсталляции Ncurses неверно устанавливает права, и приходится изменять их вручную.

ln -sf libncurses.a libcurses.a: Некоторые программы для компоновки используют -lcurses вместо -lncurses. Создание этой символической ссылки устраняет проблему.

Содержимое Ncurses

Последняя проверка: версия 5.2.

Программы

captoinfo (ссылка на tic), clear, infocmp, infotocap (ссылка на tic), reset (ссылка на tset), tack, tic, toe, tput и tset.

Описания

captoinfo

captoinfo конвертирует описания termcap в описания terminfo.

clear

clear очищает экран, если это возможно. Тип терминала ищется в переменных окружения и базе terminfo, процедура очистки экрана зависит от найденного типа.

infocmp

infocmp используется для сравнения бинарной записи terminfo с другими записями, перезаписать описание terminfo, использовать поле terminfo use=, или вывести описание terminfo из бинарного файла (term) в различных форматах (противоположность тому. что делает tic).

infotocap

infotocap конвертирует описания terminfo в описания termcap.

reset

reset устанавливает режимы cooked и echo, отключает режимы cbreak и raw, включает трансляцию символов новой строки и сбрасывает все неустановленные специальные символы на значения по умолчанию перед инициализацией терминала вроде tset.

tack

tack – проверяет действия terminfo.

tic

tic – компилятор описаний записей terminfo. Программа транслирует файл terminfo из исходного в бинарный формат для использования библиотекой ncurses. Файлы terminfo содержат информацию о возможностях терминала.

toe

toe перечисляет все доступные типы терминалов по основному имени вместе с описаниями.

tput

tput использует базу terminfo, чтобы сделать информацию о терминале доступной командному интерпретатору, инициализировать или сбросить терминал, либо вернуть полное имя запрошенного типа терминала.

tset

tset инициализирует терминалы, что уже не используется широко. Необходимо для совместимости с 4.4BSD.

Библиотеки

libcurses.[a,so] (ссылка на libncurses.[a,so]), libform.[a,so], libform_g.a, libmenu.[a,so], libmenu_g.a, libncurses++.a, libncurses.[a,so], libncurses_g.a, libpanel.[a,so] и libpanel_g.a

libcurses, libncurses++, libncurses, libncurses_g

Это – основные библиотеки пакета, используются для отображения текста на экране (зачастую нестандартным способом). Пример использования ncurses – процедура «make menuconfig» сборки ядра.

libform, libform_g

libform используется для реализации форм в ncurses.

libmenu, libmenu_g

libmenu используется для реализации меню в ncurses.

libpanel, libpanel_g

libpanel используется для реализации панелей в ncurses.

Зависимости Ncurses

Последняя проверка: версия 5.2.

Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, cp, install, ln, mkdir, mv, rm Gcc: c++, cc1, cc1plus, collect2, cpp0, gcc Glibc: ldconfig Grep: egrep, fgrep, grep Make: make Gawk: gawk Sed: sed Sh-utils: basename, date, echo, expr, hostname, uname Textutils: cat, sort, tr, wc

Установка Vim-6.1

Приблизительное время компиляции: 0.81 SBU Необходимое дисковое пространство: 24 MB


Инсталляция Vim

Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.

Если вам не по душе Vim, см. инструкции по инсталляции других редакторов http://beyond.linuxfromscratch.org/view/cvs/postlfs/editors.html. На данный момент есть инструкции для редакторов Emacs, nano, и joe.

Для установки Vim выполните:

patch -Np1 -i ../vim-6.1.patch && ./configure –prefix=/usr && make CPPFLAGS=-DSYS_VIMRC_FILE=\\\"/etc/vimrc\\\" && make install && ln -s vim /usr/bin/vi


Если вы планируете установить систему X Window для LFS, вам понадобится перекомпилировать Vim после установки Х. Vim поставляется с GUI версией редактора, требующей установленной системы X Window и некоторых дополнительных библиотек. Для получения подробной информации обратитесь к документации Vim.

Пояснения команд

patch -Np1 -i ../vim-6.1.patch: Этот патч устраняет проблему компиляции с GCC-3.2.

make CPPFLAGS=-DSYS_VIMRC_FILE=\\\"/etc/vimrc\\\": Эта опция приводит к тому, что vim берет глобальные настройки из файла /etc/vimrc. Обычно этот файл берется из /usr/share/vim, однако каталог /etc – более логичное место для этого файла.

Содержимое Vim

Последняя проверка: версия 6.1.

Программы

efm_filter.pl, efm_perl.pl, ex (ссылка на vim), less.sh, mve.awk, pltags.pl, ref, rview (ссылка на vim), rvim (ссылка на vim), shtags.pl, tcltags, vi (ссылка на vim), view (ссылка на vim), vim, vim132, vim2html.pl, vimdiff (ссылка на vim), vimm, vimspell.sh, vimtutor и xxd

Описания

efm_filter.pl

efm_filter.pl – фильтр, читающий из стандартного ввода, пишущий на стандартный вывод и создающий файл ошибок, обрабатываемый vim.

efm_perl.pl

efm_perl.pl форматирует сообщения об ошибках интерпретатора Perl для использования в quickfix режиме vim.

ex

ex запускает vim в режиме Ex.

less.sh

less.sh – скрипт, запускающий vim, используя less.vim.

mve.awk

mve.awk обрабатывает ошибки vim.

pltags.pl

pltags.pl создает файл тегов кода Perl для использования vim.

ref

ref проверяет написание параметров.

rview

rview – ограниченная версия view. Нельзя передавать команды интерпретатору и vim не может быть приостановлен.

rvim

rvim is the restricted version of vim. Нельзя передавать команды интерпретатору и vim не может быть приостановлен.

shtags.pl

shtags.pl генерирует файл тегов для скриптов perl.

tcltags

tcltags генерирует файл тегов кода TCL.

vi

vi запускает vim в режиме совместимости с vi.

view

view запускает vim в режиме «только для чтения».

vim

vim запускает vim в стандартном режиме.

vim132

vim132 запускает vim в терминале в 132 колонки.

vim2html.pl

vim2html.pl конвертирует документацию vim в HTML.

vimdiff

vimdiff сравнивает две или три версии файла и показывает различия.

vimm

vimm включает модель ввода DEC locator на удаленном терминале.

vimspell.sh

vimspell.sh просматривает файл и генерирует синтаксические выражения, выделяемые в vim.

vimtutor

vimtutor запускает обучение работе с Vim.

xxd

xxd конвертирует бинарный ввод из файла в шестнадцатеричный и обратно.

Зависимости Vim

Последняя проверка: версия 6.0.

Bash: sh Binutils: as, ld, strip Diffutils: cmp, diff Fileutils: chmod, cp, ln, mkdir, mv, rm, touch Find: find Gcc: cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Net-tools: hostname Sed: sed Sh-utils: echo, expr, uname, whoami Textutils: cat, tr, wc

Установка Bison-1.35

Приблизительное время компиляции: 0.27 SBU Необходимое дисковое пространство: 6 MB


Инсталляция Bison

Для инсталляции Bison выполните:

./configure –prefix=/usr && make && make install


Некоторые программы не знают о существовании bison и пытаются найти программу yacc (bison – альтернатива (предпочтительная) команде yacc). Итак, для устранения возможных проблем, создадим скрипт bash под названием yacc. Он будет вызывать команду bison и эмулировать имена выходных файлов в соответствии со стандартами yacc.

Создадим файл /usr/bin/yacc:

cat > /usr/bin/yacc << «EOF»

#!/bin/sh

# Begin /usr/bin/yacc


exec /usr/bin/bison -y «$@»


# End /usr/bin/yacc

EOF chmod 755 /usr/bin/yacc


Содержимое 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

Установка Less-374

Приблизительное время компиляции: 0.13 SBU Необходимое дисковое пространство: 2 MB


Инсталляция Less

Для инсталляции Less выполните:

./configure –prefix=/usr –bindir=/bin –sysconfdir=/etc && make && make install


Содержимое Less

Последняя проверка: версия 374.

Программы

less, lessecho и lesskey

Description

less

less – текстовый просмотрщик. Отображает содержимое файла с возможностью прокрутки. Less – улучшение утилиты more. Имеется возможность обратной прокрутки, нет необходимости считывать весь файл при его загрузке, что облегчает чтение больших файлов.

lessecho

lessecho необходим для подстановок метасимволов, вроде * и ?, в именах файлов на системах Unix.

lesskey

lesskey используется для установок клавиш less.

Зависимости Less

Последняя проверка: версия 358.

Bash: sh Binutils: as, ld Diffutils: cmp Fileutils: chmod, install, mv, rm, touch Grep: egrep, grep Gcc: cc1, collect2, cpp0, gcc Make: make Sed: sed Sh-utils: expr, hostname, uname Textutils: cat, tr

Установка Groff-1.18

Приблизительное время компиляции: 1.08 SBU

Необходимое дисковое пространство: 18 MB


Инсталляция Groff

Для инсталляции Groff выполните:

./configure –prefix=/usr &&

make PROCESSEDEXAMPLEFILES="" &&

make PROCESSEDEXAMPLEFILES="" install &&

ln -s soelim /usr/bin/zsoelim &&

ln -s eqn /usr/bin/geqn &&

ln -s tbl /usr/bin/gtbl


Пояснения команд

make PROCESSEDEXAMPLEFILES="": У Groff существует несколько зависимостей, которые мы не будем устанавливать. Эта опция отключает потребность в них.

ln -s ...: Эти символические ссылки необходимы для корректной работы некоторых программ xman и других программ работы с документами groff/man.

Contents of Groff

Last checked against version 1.17.2.

Program Files

addftinfo, afmtodit, eqn, geqn (link to eqn), grn, grodvi, groff, grog, grolbp, grolj4, grops, grotty, gtbl (link to tbl), hpftodit, indxbib, lkbib, lookbib, mmroff, neqn, nroff, pfbtops, pic, post-grohtml, pre-grohtml, refer, soelim, tbl, tfmtodit, troff and zsoelim (link to soelim)

Descriptions

addftinfo

addftinfo reads a troff font file and adds some additional font-metric information that is used by the groff system.

afmtodit

afmtodit creates a font file for use with groff and grops.

eqn

eqn compiles descriptions of equations embedded within troff input files into commands that are understood by troff.

geqn

geqn is the GNU implementation of eqn.

grn

grn is a groff preprocessor for gremlin files.

grodvi

grodvi is a driver for groff that produces TeX dvi format.

groff

groff is a front-end to the groff document formatting system. Normally it runs the troff program and a post-processor appropriate for the selected device.

grog

grog reads files and guesses which of the groff options -e, -man, -me, -mm, -ms, -p, -s, and -t are required for printing files, and prints the groff command including those options on the standard output.

grolbp

grolbp is a groff driver for Canon CAPSL printers (LBP-4 and LBP-8 series laser printers).

grolj4

grolj4 is a driver for groff that produces output in PCL5 format suitable for an HP Laserjet 4 printer.

grops

grops translates the output of GNU troff to Postscript.

grotty

grotty translates the output of GNU troff into a form suitable for typewriter-like devices.

gtbl

gtbl is the GNU implementation of tbl.

hpftodit

hpftodit creates a font file for use with groff -Tlj4 from an HP tagged font metric file.

indxbib

indxbib makes an inverted index for the bibliographic databases a specified file for use with refer, lookbib, and lkbib.

lkbib

lkbib searches bibliographic databases for references that contain specified keys and prints any references found on the standard output.

lookbib

lookbib prints a prompt on the standard error (unless the standard input is not a terminal), reads from the standard input a line containing a set of keywords, searches the bibliographic databases in a specified file for references containing those keywords, prints any references found on the standard output and repeats this process until the end of input.

mmroff

mmroff is a simple preprocessor for groff.

neqn

The neqn script formats equations for ascii output.

nroff

The nroff script emulates the nroff command using groff.

pfbtops

pfbtops translates a Postscript font in .pfb format to ASCII.

pic

pic compiles descriptions of pictures embedded within troff or TeX input files into commands that are understood by TeX or troff.

pre-grohtml and post-grohtml

pre– and post-grohtml translate the output of GNU troff to html.

refer

refer copies the contents of a file to the standard output, except that lines between .[ and .] are interpreted as citations, and lines between .R1 and .R2 are interpreted as commands about how citations are to be processed.

soelim

soelim reads files and replaces lines of the form .so file by the contents of file.

tbl

tbl compiles descriptions of tables embedded within troff input files into commands that are understood by troff.

tfmtodit

tfmtodit creates a font file for use with groff -Tdvi.

troff

troff is highly compatible with Unix troff. Usually it should be invoked using the groff command, which will also run preprocessors and post-processors in the appropriate order and with the appropriate options.

zsoelim

zsoelim is the GNU implementation of soelim.

Groff Installation Dependencies

Last checked against version 1.17.2.

Bash: sh Binutils: ar, as, ld, ranlib Bison: bison Diffutils: cmp Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm, touch Gcc: cc1, cc1plus, collect2, cpp0, g++, gcc Grep: egrep, grep Make: make Gawk: awk Sed: sed Sh-utils: basename, date, echo, expr, hostname, uname Textutils: cat, tr

Установка Textutils-2.1

Приблизительное время компиляции: 0.83 SBU Необходимое дисковое пространство: 17 MB


Инсталляция Textutils

Для инсталляции Textutils выполните:

./configure –prefix=/usr && make && make install && mv /usr/bin/{cat,head} /bin


Содержимое Textutils

Последняя проверка: версия 2.0.

Программы

cat, cksum, comm, csplit, cut, expand, fmt, fold, head, join, md5sum, nl, od, paste, pr, ptx, sort, split, sum, tac, tail, tr, tsort, unexpand, uniq и wc

Описание

cat

cat выводит файлы на стандартный вывод.

cksum

cksum выводит контрольную сумму CRC и объем в байтах каждого указанного файла.

comm

comm построчно сравнивает два отсортированных файла.

csplit

csplit выводит части файла, разделенные заданными строками, в файлы xx01, xx02, ..., и размер каждой части на стандартный вывод.

cut

cut выводит указанные строки из указанных файлов на стандартный вывод.

expand

expand конвертирует знаки табуляции в файле в пробелы и выводит результат на стандартный вывод.

fmt

fmt форматирует каждый абзац в указанных файлах и выводит результат на стандартный вывод.

fold

fold делает переносы вводимых строк из указанных файлов (по умолчанию, со стандартного ввода) и выводит результат на стандартный вывод.

head

head выводит первые x (по умолчанию 10) строк каждого указанного файла на стандартный вывод.

join

join соединяет строки двух файлов в поля.

md5sum

md5sum выводит или проверяет контрольные суммы MD5.

nl

nl выводит каждый указанный файл на стандартный вывод, добавляя номера строк.

od

od выводит файл в различных форматах, по умолчанию в восьмеричном, на стандартный вывод.

paste

paste выводит строки, соответствующие заданным образцам из указанных файлов и разделенные символами табуляции, на стандартный вывод.

pr

pr разделяет файлы на страницы или колонки для распечатки.

ptx

ptx составляет оглавление файла.

sort

sort выводит на стандартный вывод построчно отсортированное слияние файлов.

split

split разбивает входной файл на части заданного размера PREFIXaa, PREFIXab, ...

sum

sum выводит контрольную сумму и количество занимаемых блоков каждого указанного файла.

tac

tac выводит каждый указанный файл на стандартный вывод last line first.

tail

tail выводит последние xx (по умолчанию 10) строк каждого указанного файла на стандартный вывод.

tr

tr заменяет, вставляет, и/или удаляет символы из стандартного ввода, выводя результат на стандартный вывод.

tsort

tsort выводит полностью упорядоченные списки, учитывая уже проведенную сортировку указанных файлов.

unexpand

unexpand конвертирует пробелы в каждом файле в символы табуляции, выводя результат на стандартный вывод.

uniq

uniq удаляет повторяющиеся строки из отсортированного файла.

wc

wc выводит количество строк, слов и размер в байтах каждого указанного файла и сумму результатов, если указано более одного файла.

Зависимости Textutils

Последняя проверка: версия 2.0.

Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, install, ls, mv, rm Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Net-tools: hostname Perl: perl Sed: sed Sh-utils: basename, echo, expr, sleep, uname Tar: tar Texinfo: install-info, makeinfo Textutils: cat, tr

Установка Sed-3.02

Приблизительное время компиляции: 0.09 SBU Необходимое дисковое пространство: 2 MB


Инсталляция Sed

Для инсталляции Sed выполните:

./configure –prefix=/usr –bindir=/bin && make && make install


Содержимое Sed

Последняя проверка: версия 3.02.

Программы

sed

Описания

sed

sed – редактор потоков. Он используется для основных преобразований текста на потоке ввода (файл или ввод из другого процесса).

Зависимости Sed

Последняя проверка: версия 3.02.

Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, install, ls, mv, rm Gcc: cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: echo, expr, hostname, sleep Texinfo: install-info, makeinfo Textutils: cat, tr

Установка Flex-2.5.4a

Приблизительное время компиляции: 0.05 SBU Необходимое дисковое пространство: 3 MB


Инсталляция Flex

Для инсталляции Flex выполните:

./configure –prefix=/usr && make && make install


Некоторые программы не знают о существовании flex и пытаются найти программу lex (flex – альтернатива (предпочтительная) команде lex). Итак, для устранения возможных проблем, создадим скрипт bash под названием lex. Он будет вызывать команду flex и эмулировать lex.

Создадим файл /usr/bin/lex:

cat > /usr/bin/lex << «EOF»

#!/bin/sh

# Begin /usr/bin/lex


exec /usr/bin/flex -l «$@»


# End /usr/bin/lex

EOF chmod 755 /usr/bin/lex


Содержимое Flex

Последняя проверка: версия 2.5.4a.

Program Files

flex, flex++ (ссылка на flex) and lex

Descriptions

flex

flex – инструмент для генерации программ, распознающих заданные образцы в тексте. Распознавание образцов часто используется во многих приложениях. Пользователь задает правила поиска, и flex создает программу для поиска образцов. Причина, по которой люди используют flex, состоит в том, что гораздо проще задать правила, чем писать собственную программу.

flex++

flex++ вызывает версию flex, используемую для сканеров C++.

lex

Мы создали скрипт lex, вызывающий flex с опцией -l. Это необходимо для совместимости с программами, использующими lex вместо flex.

Библиотеки

libfl.a

Описания

libfl

libfl – библиотека flex.

Зависимости Flex

Последняя проверка: версия 2.5.4a.

Bash: sh Binutils: ar, as, ld, ranlib Bison: bison Diffutils: cmp Fileutils: chmod, cp, install, ln, mv, rm, touch Gcc: cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Sed: sed Sh-utils: echo, hostname Textutils: cat, tr

Установка Binutils-2.13

Приблизительное время компиляции: 2.48 SBU Необходимое дисковое пространство: 94 MB


Инсталляция Binutils

Этот пакет известен своим нестабильным поведением при компиляции с измененными опциями оптимизации (включая опции -march и -mcpu). Binutils рекомендуется компилировать с настройками по умолчанию. Следовательно, если вы задали переменные такие как CFLAGS или CXXFLAGS, изменяющие уровень оптимизации по умолчанию, рекомендуется убрать их при сборке пакета Binutils. Изменяя оптимизации для Binutils, вы действуете на свой страх и риск.

Для инсталляции Binutils выполните:

mkdir ../binutils-build && cd ../binutils-build && ../binutils-2.13/configure –prefix=/usr –enable-shared && make tooldir=/usr && make tooldir=/usr install && make tooldir=/usr install-info && cp ../binutils-2.13/include/libiberty.h /usr/include


Пояснение команд

tooldir=/usr: Обычно директория tooldir (та директория, куда помещаются исполняемые файлы) определяется как $(exec_prefix)/$(target_alias), например /usr/i686-pc-linux-gnu. Так как мы компилируем binutils для нашей системы, необходимость target-директории в /usr отпадает. Она бы нам понадобилась в случае кросс-компиляции (т.е. компиляции программы на платформе Intel с созданием кода, который можно запустить на системах Apple PowerPC).

make tooldir=/usr install-info: Установка информационных страниц binutils.

cp ../binutils-2.13/include/libiberty.h /usr/include: Некоторые программы для компиляции требуют файл заголовков libiberty.h.

Содержимое 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

Установка Fileutils-4.1

Приблизительное время компиляции: 0.68 SBU Необходимое дисковое пространство: 17 MB


Инсталляция Fileutils

Для инсталляции Fileutils выполните:

./configure –prefix=/usr –bindir=/bin && make && make install && ln -s ../../bin/install /usr/bin


Содержимое Fileutils

Последняя проверка: версия 4.1.

Программы

chgrp, chmod, chown, cp, dd, df, dir, dircolors, du, install, ln, ls, mkdir, mkfifo, mknod, mv, rm, rmdir, shred, sync, touch и vdir

Описания

chgrp

chgrp группу владельца указанных файлов, возможно указание как имени группы, так и ее номера.

chmod

chmod изменяет права доступа к указанному файлу, в соответствии с параметрами, заданными символьно или в восьмеричном представлении двоичного выражения новых прав.

chown

chown изменяет владельца и/или группу указанных файлов.

cp

cp копирует файлы.

dd

dd копирует файл (по умолчанию, со стандартного ввода на стандартный вывод) с указанным размером блока и опциональными преобразованиями.

df

df показывает количество свободного места на файловых системах, содержащих указанные файлы. Если файлы не заданы, показывается свободное место на всех смонтированных файловых системах.

dir, ls and vdir

dir и vdir – версии ls с разными форматами вывода по умолчанию. Эти программы выводят список заданных файлов и каталогов. Содержимое каталога сортируется по алфавиту. ls, по умолчанию, перечисляет файлы в столбцах если стандартный вывод – терминал, иначе идет перечисление по одному в строке. dir, по умолчанию, перечисляет файлы в столбцах. vdir, по умолчанию перечисляет файлы в полном формате.

dircolors

dircolors выводит значение LS_COLOR. Переменная LS_COLOR используется для установки цветовой схемы, используемой ls и прочими утилитами.

du

du выводит количество дискового пространства, занятого указанными файлами и каталогами (включая подкаталоги).

install

install копирует файлы, устанавливает права доступа и, если возможно, владельца и группу.

ln

ln создает жесткие или мягкие (символические) ссылки на файлы.

mkdir

mkdir создает каталог с заданным именем.

mkfifo

mkfifo создает FIFO с заданным именем.

mknod

mknod создает FIFO, символьный или блочный файл с заданным именем.

mv

mv перемещает файлы из одного каталога в другой или переименовывает их, в зависимости от заданных параметров.

rm

rm удаляет файлы или каталоги.

rmdir

rmdir удаляет пустые каталоги.

shred

shred безопасно удаляет файл, перезаписывая занимаемые им блоки, так что содержимое невозможно восстановить.

sync

sync принудительно записывает изменившиеся блоки на диск и обновляет superblock.

touch

touch изменяет время доступа и изменения каждого заданного файла на текущее время. Если файл не существует, то создается пустой файл.

Зависимости Fileutils

Последняя проверка: версия 4.1.

Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm, rmdir Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, fgrep, grep Make: make Perl: perl Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, uname Texinfo: install-info Textutils: cat, tr

Установка Sh-utils-2.0

Приблизительное время компиляции: 0.42 SBU Необходимое дисковое пространство: 12 MB


Инсталляция Sh-utils

Перед установкой пакета примените hostname-патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.

Для инсталляции Sh-utils выполните:

patch -Np1 -i ../sh-utils-2.0-hostname.patch && ./configure –prefix=/usr && make && make install && mv /usr/bin/{basename,date,echo,false,pwd} /bin && mv /usr/bin/{sleep,stty,su,test,true,uname} /bin && mv /usr/bin/chroot /usr/sbin


Замечания по соответствию FHS

В составе данного пакета присутствует команда test. Она часто используется скриптами оболочки для оценки условия, и чаще встречается в виде [ условие]. Квадратные скобки встроены в интерпретатор команд bash, однако по стандарту FHS должна присутствовать команда [. Создадим ее:

ln -s test /bin/[


Пояснения команд

patch -Np1 -i ../sh-utils-2.0-hostname.patch: Этот патч запрещает компиляцию программы hostname, которая будет установлена позже, в рамках пакета net-tools. Программа hostname из пакета net-tools является предпочтительной (а в некоторых случаях обязательной, т.к. поддерживает опции требуемые некоторыми программами, например XFree86).

Содержимое Sh-utils

Последняя проверка: версия 2.0.

Программы

basename, chroot, date, dirname, echo, env, expr, factor, false, groups, hostid, id, logname, nice, nohup, pathchk, pinky, printenv, printf, pwd, seq, sleep, stty, su, tee, test, true, tty, uname, uptime, users, who, whoami и yes

Описания

basename

basename удаляет каталоги и суффиксы из имен файлов.

chroot

chroot запускает команду или оболочку в указанном корневом каталоге.

date

date выводит текущее время в указанном формате или устанавливает.

dirname

dirname удаляет суффиксы, не относящиеся к каталогам, из имен файлов.

echo

echo выводит строку текста.

env

env запускает программу в измененном окружении.

expr

expr вычисляет выражения.

factor

factor выводит разложение на простые множители всех указанных целых чисел.

false

false всегда завершается с кодом «ошибка».

groups

groups выводит группу, к которой принадлежит пользователь.

hostid

hostid выводит числовой идентификатор (шестандцатеричный) текущего хоста.

id

id выводит пользовательский и групповой ID текущего или заданного пользователя.

logname

logname выводит регистрационное имя текущего пользователя.

nice

nice запускает программу с заданным приоритетом.

nohup

nohup выполняет команду, защищенную от зависаний, с выводом в журнальный файл.

pathchk

pathchk проверяет наличие файла.

pinky

pinky – простая утилита finger, показывающая информацию о конкретном пользователе.

printenv

printenv выводит значения переменных окружения.

printf

printf выводит форматированные данные (аналогично функции printf в C).

pwd

pwd выводит имя текущего каталога.

seq

seq выводит числа в заданном диапазоне с заданным шагом.

sleep

sleep делает задержку на указанное количество времени.

stty

stty выводит и изменяет настройки терминала.

su

su запускает командный интерпретатор с правами указанного пользователя и группы.

tee

tee считывает данные со стандартного ввода и записывает их на стандартный вывод и в файлы.

test

test проверяет типы файлов и сравнивает значения.

true

true всегда завершается с кодом «успех».

tty

tty выводит файловое имя терминала, подключенного к стандартному вводу.

uname

uname выводит информацию о системе.

uptime

uptime сообщает, как долго активна система.

users

users выводит имена пользователей, зарегистрированных на локальном хосте.

who

who показывает зарегистрированных пользователей.

whoami

whoami выводит имя пользователя, ассоциированное с текущим пользовательским ID.

yes

yes выводит 'y' или заданную строку до принудительного завершения.

Зависимости Sh-utils

Последняя проверка: версия 2.0.

Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, chown, install, ls, mv, rm Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Perl: perl Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, uname Tar: tar Texinfo: install-info, makeinfo Textutils: cat, tr

Установка Gettext-0.11.5

Приблизительное время компиляции: 0.99 SBU Необходимое дисковое пространство: 39 MB


Инсталляция Gettext

Для инсталляции Gettext выполните:

./configure –prefix=/usr && make && make install


Содержимое Gettext

Последняя проверка: версия 0.11.2.

Программы

config.charset, config.rpath, gettext, gettextize, hostname, msgattrib, msgcat, msgcmp, msgcomm, msgconv, msgen, msgexec, msgfilter, msgfmt, msggrep, msginit, msgmerge, msgunfmt, msguniq, ngettext, project-id, team-address, trigger, urlget, user-email и xgettext

Описания

config.charset

config.charset выводит зависящую от системы таблицу кодов символов.

config.rpath

config.rpath выводит зависящий от системы набор переменных, describing how to set the run time search path of shared libraries in an executable.

gettext

gettext используется для интернационализации (aka i18n) и локализации (aka l10n). Программы могут быть скомпилированы с поддержкой Native Language Support (NLS), что позволяет им выводить сообщения на родном языке пользователя вместо стандартного английского.

gettextize

gettextize копирует все стандартные файлы gettext в каталог. Используется для создания пакетов с переводами gettext.

hostname

hostname выводит имя системы в разных форматах.

msgattrib

msgattrib фильтрует сообщения каталога переводов, основываясь на их атрибутах, а также оперирует их атрибутами.

msgcat

msgcat находит сообщения, встречающиеся в нескольких переводах.

msgcmp

msgcmp сравнивает 2 файла перевода.

msgcomm

msgcomm ищет сообщения, появляющиеся в нескольких файлах .po. Используется для сравнения переводов.

msgconv

msgconv конвертирует каталог перевода в другую кодировку.

msgen

msgen создает каталог переводов для английского языка.

msgexec

msgexec применяет команду ко всем переводам из каталога перевода.

msgfilter

msgfilter применяет фильтр ко всем переводам из каталога переводов.

msgfmt

msgfmt program компилирует перевод в машинный код. Используется для создания окончательного перевода программы или пакета.

msggrep

msggrep выдает все сообщения из каталога перевода, соответствующие заданному образцу или принадлежащие заданным исходным файлам.

msginit

msginit создает новый файл PO, инициализирую метаинформацию значениями пользовательского окружения.

msgmerge

msgmerge объединяет два перевода в один файл. Используется для обновления перевода при помощи исходных файлов.

msgunfmt

msgunfmt декомпилирует файлы перевода. Возможно использование, только если есть скомпилированные версии.

msguniq

msguniq приводит к единому образцу дублирующиеся переводы в каталоге переводов.

ngettext

ngettext выводит переводы текстового сообщения, чья грамматическая форма зависит от числа на основной язык.

project-id

project-id выводит идентификационную информацию пакета.

team-address

team-address выводит адрес команды переводчиков на стандартный вывод и выдает дополнительные инструкции.

trigger

trigger проверяет, является ли пакет пакетом GNOME или KDE.

urlget

urlget получает содержимое URL.

user-email

user-email выводит адрес электронной почты пользователя, с подтверждением.

xgettext

xgettext извлекает строки сообщений из файлов C. Используется для создания шаблона перевода.

Библиотеки

libgettextlib[a,so], libgettextsrc[a,so]

Описания

libgettextlib

На данный момент нет описания.

libgettextsrc

На данный момент нет описания.

Зависимости Gettext

Последняя проверка: версия 0.10.40.

Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, nm, ranlib, strip Bison: bison Diffutils: cmp Fileutils: chmod, install, ln, ls, mkdir, mv, rm, rmdir Gcc: cc, cc1, collect2, cpp0, gcc 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, sort, tr, uniq

Установка Net-tools-1.60

Приблизительное время компиляции: 0.16 SBU Необходимое дисковое пространство: 5 MB


Инсталляция Net-tools

Для инсталляции Net-tools выполните:

make && make update


Если вы согласны со всеми ответами по умолчанию, выполните следующие команды взамен вышеприведеных:

yes "" | make && make update


Если вы затрудняетесь с ответами на вопросы команды make, смело соглашайтесь с настройками по умолчанию, они подходят для большинства случаев. В основном это вопросы, связанные с сетевыми протоколами, которые поддерживает ядро.

Настройки по умолчанию активируют наиболее распространенные сетевые протоколы, такие как TCP, PPP и т.д. Однако впоследствии вам необходимо добавить их поддержку в ядре. На данном этапе, вы указываете программам, какие протоколы следует использовать, в то время как задача ядра сделать их доступными для системы.

Пояснения команд

make update: Выполняет ту же функцию, что и команда make install, за исключением того, что make update не сохраняет резервные копии заменяемых файлов. Например, net-tools заменяет программу пакета sh-utils /bin/hostname (версия этой программы из пакета net-tools намного лучшее ее аналога из sh-utils).

Если вы захотите переустановить пакет net-tools, команда make update не сохранит резервные копии файлов предыдущей инсталляции net-tools.

Contents of Net-tools

Последняя проверка: версия 1.60.

Программы

arp, dnsdomainname (ссылка на hostname), domainname (ссылка на hostname), hostname, ifconfig, nameif, netstat, nisdomainname (ссылка на hostname), plipconfig, rarp, route, slattach и ypdomainname (ссылка на hostname)

Описания

arp

arp используется для манипулирования ARP кэшем ядра, обычно для добавления/удаления записей, или вывода его содержимого.

dnsdomainname

dnsdomainname выводит DNS доменное имя системы.

domainname

domainname выводит или изменяет NIS/YP доменное имя системы.

hostname

hostname выводит или изменяет имя текущего хоста.

ifconfig

ifconfig – основная утилита, используемая для настройки сетевых интерфейсов.

nameif

nameif указывает сетевые интерфейсы, основанные на адресах MAC.

netstat

netstat – многоцелевой инструмент, используемый для отображения сетевых соединений, таблиц роутинга, статистики интерфейсов, маскированных соединений и множественных вызовах.

nisdomainname

nisdomainname выводит или изменяет NIS/YP доменное имя системы.

plipconfig

plipconfig – используется для тонкой настройки устройств PLIP device, возможно ускоряя ее.

rarp

Как и arp, rarp манипулирует таблицей RARP.

route

route – основная утилита для управления таблицами IP роутинга.

slattach

slattach активирует сетевой интерфейс на последовательной линии, т.е. переводит обычную терминальную линию в один из нескольких «сетевых» режимов.

ypdomainname

ypdomainname выводит или изменяет NIS/YP доменное имя системы.

Зависимости Net-tools

Последняя проверка: версия 1.60.

Bash: bash, sh Binutils: ar, as, ld Fileutils: install, ln, ls, mv, rm Gcc: cc, cc1, collect2, cpp0 Make: make Sh-utils: echo

Установка Perl-5.8.0

Приблизительное время компиляции: 3.81 SBU Необходимое дисковое пространство: 52 MB


Инсталляция Perl

Для инсталляции Perl выполните:

./configure.gnu –prefix=/usr && make && make install


Если вы хотите контролировать настройку perl, можете выполнить интерактивный скрипт Configure, для внесения изменений в установки по умолчанию. Если же настройки по умолчанию вас устраивают, просто выполните команды, приведенные выше.

Содержимое Perl

Последняя проверка: версия 5.6.1.

Программы

a2p, c2ph, dprofpp, find2perl, h2ph, h2xs, perl, perl5.6.1, perlbug, perlcc, perldoc, pl2pm, pod2html, pod2latex, pod2man, pod2text, pod2usage, podchecker, podselect, pstruct, s2p и splain

Описания

a2p

a2p – траслятор с awk на perl.

c2ph

c2ph выводит структуры C как сгенерированные «cc -g -S».

dprofpp

dprofpp отображает профили perl.

find2perl

find2perl транслирует командные строки find в код Perl.

h2ph

h2ph конвертирует заголовочные файлы C в заголовки Perl.

h2xs

h2xs конвертирует заголовочные файлы C в расширения Perl.

perl, perl5.6.1

perl – Practical Extraction and Report Language (Язык Практичных Извлечений и Докладов :)). Сочетает достоинства C, sed, awk и sh в одном мощном языке.

perlbug

perlbug генерирует сообщение об ошибке perl или его модулей и отправляет их по почте.

perlcc

perlcc генерирует исполняемые файлы из программ на Perl.

perldoc

perldoc просматривает документацию .pod, поставляемую с perl или скриптом perl и выводит как «pod2man | nroff -man | $PAGER».

pl2pm

pl2pm – утилита для помощи в конвертировании библиотек Perl4 в модули библиотек Perl5.

pod2html

pod2html конвертирует файлы из формата pod в формат HTML.

pod2latex

pod2latex конвертирует файлы из формата pod в формат LaTeX.

pod2man

pod2man конвертирует файлы из формата pod в форматированный ввод *roff.

pod2text

pod2text конвертирует файлы из формата pod в форматированный текст ASCII.

pod2usage

pod2usage выводит в файлы сообщения об использовании из встроенной документации pod.

podchecker

podchecker проверяет синтаксис файлов документации в формате pod.

podselect

podselect выводит выбранные части документации pod на стандартный вывод.

pstruct

pstruct выводит структуры C как сгенерированные «cc -g -S».

s2p

s2p – транслятор с sed на perl.

splain

splain служит для пропуска полных диагностических сообщений perl.

Библиотеки

attrs.so, B.so, ByteLoader.so, DProf.so, Dumper.so, DynaLoader.a, Fcntl.so, Glob.so, Hostname.so, IO.so, libperl.a, Opcode.so, Peek.so, POSIX.so, re.so, SDBM_File.so, Socket.so, Syslog.so и SysV.so

Descriptions

attrs

На данный момент описания нет.

B

На данный момент описания нет.

ByteLoader

На данный момент описания нет.

DProf

На данный момент описания нет.

Dumper

На данный момент описания нет.

DynaLoader

На данный момент описания нет.

Fcntl

На данный момент описания нет.

Glob

На данный момент описания нет.

Hostname

На данный момент описания нет.

IO

На данный момент описания нет.

libperl

На данный момент описания нет.

Opcode

На данный момент описания нет.

Peek

На данный момент описания нет.

POSIX

На данный момент описания нет.

re

На данный момент описания нет.

SDBM_File

На данный момент описания нет.

Socket

На данный момент описания нет.

Syslog

На данный момент описания нет.

SysV

На данный момент описания нет.

Зависимости Perl

Последняя проверка: версия 5.6.1.

Bash: sh Binutils: ar, as, ld, nm Diffutils: cmp Fileutils: chmod, cp, ln, ls, mkdir, mv, rm, touch Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Gawk: awk Sed: sed Sh-utils: basename, date, echo, expr, hostname, pwd, uname, whoami Textutils: cat, comm, sort, split, tr, uniq, wc

Установка руководства по потокам Linux, вер. 2.2.5

Приблизительное время компиляции: 0.01 SBU Необходимое дисковое пространство: 1.5 MB


Инсталляция руководства по потокам Linux, вер. 2.2.5

После распаковки glibc-linuxthreads будут созданы две директории. Войдите в директорию linuxthreads , не в linuxthreads_db!

Для инсталляции руководства по потокам Linux выполните:

make -C man && make -C man install


Содержимое руководства по потокам Linux, вер. 2.2.5

Последняя проверка: версия 2.2.5.

Файлы поддержки

Различные руководства по потокам Linux

Описания

Страницы руководства

Содержат страницы руководства по потокам Linux Glibc.

Зависимости руководства по потокам Linux, вер. 2.2.5

Зависимости еще не проверялись.

Установка M4-1.4

Приблизительное время компиляции: 0.08 SBU Необходимое дисковое пространство: 3 MB


Инсталляция M4

Для инсталляции M4 выполните:

./configure –prefix=/usr && make && make install


Содержимое M4

Последняя проверка: версия 1.4.

Программы

m4

Описания

m4

m4 – макропроцессор. Копирует из ввода на вывод, выполняя макросы. Макросы могут быть как встроенными, так и определенными пользователем, и могут иметь любое число параметров. Кроме обычных макрорасширений, m4 имеет встроенные функции для включения файлов, запуска команд Unix, целочисленной арифметики, различных текстовых операций, рекурсии etc. m4 может быть использовано как оболочка для компилятора, так и собственно макропроцессор.

M4 Installation Dependencies

Последняя проверка: версия 1.4.

Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, cp, install, mv, rm Make: make Gcc: cc1, collect2, cpp0, gcc Grep: egrep, grep Sed: sed Sh-utils: date, echo, hostname Textutils: cat, tr

Установка Texinfo-4.2

Приблизительное время компиляции: 0.43 SBU Необходимое дисковое пространство: 12 MB


Инсталляция Texinfo

Для инсталляции Texinfo выполните:

./configure –prefix=/usr && make && make install && make TEXMF=/usr/share/texmf install-tex


Пояснения команд

make TEXMF=/usr/share/texmf install-tex: Эта команда инсталлирует компоненты texinfo, принадлежащие к пакету TeX. Несмотря на то, что мы не собираемся устанавливать TeX, инсталляция этих компонентов завершает установку texinfo.

Содержимое Texinfo

Последняя проверка: версия 4.2.

Программы

info, infokey, install-info, makeinfo, texi2dvi и texindex

Описания

info

info читает документы Info, обычно находящиеся в /usr/share/info. Документы Info documents схожи с man pages, но содержат больше, чем простое объяснение опций программы.

infokey

infokey компилирует в бинарный формат исходный файл персонализаций Info.

install-info

install-info обновляет записи info. Когда запускается info, выводится список тем (т.е. доступных документов info). install-info обновляет этот список. Если файлы info удалены вручную, необходимо также удалить тему в оглавлении. Для этого и используется данная программа. Она работает аналогично в случае добавления новых документов.

makeinfo

makeinfo транслирует документы Texinfo в различные форматы. Доступны: файлы info, простой текст и HTML.

texi2dvi

texi2dvi выводит документы Texinfo

texindex

texindex используется для сортировки оглавлений Texinfo.

Зависимости Texinfo

Последняя проверка: версия 4.0.

Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, install, ln, ls, mkdir, mv, rm Gcc: cc1, collect2, cpp0, gcc Grep: egrep, fgrep, grep Make: make Sed: sed Sh-utils: basename, echo, expr, hostname, sleep Texinfo: makeinfo Textutils: cat, tr

Установка Autoconf-2.53

Приблизительное время компиляции: 0.05 SBU Необходимое дисковое пространство: 6 MB


Инсталляция Autoconf

Для инсталляции Autoconf выполните:

./configure –prefix=/usr && make && make install


Содержание 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-1.6.3

Приблизительное время компиляции: 0.03 SBU Необходимое дисковое пространство: 6 MB


Инсталляция Automake

Для инсталляции Automake выполните:

./configure –prefix=/usr && make install


Содержание 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-2.05a

Приблизительное время компиляции: 0.82 SBU Необходимое дисковое пространство: 14 MB


Инсталляция Bash

Для инсталляции Bash выполните:

./configure –prefix=/usr –bindir=/bin && make && make install && exec /bin/bash –login


Содержание 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

Установка File-3.39

Приблизительное время компиляции: 0.21 SBU Необходимое дисковое пространство: 2 MB


Инсталляция File

Для инсталляции File выполните:

./configure –prefix=/usr –datadir=/usr/share/misc && make && make install


Содержимое File

Последняя проверка: версия 3.39.

Программы

file

Описания

file

file проверяет указанные файлы с целью их классификации. Есть 3 набора тестов, запускаемых в данном порядке: тесты файловой системы, тесты magic number и тесты языка. Первый удавшийся тест выводит тип файла.

Зависимости File

Последняя проверка: версия 3.37.

Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: as, ld Diffutils: cmp Fileutils: chmod, install, ln, ls, mv, rm, touch Gcc: cc1, collect2, cpp0, gcc Grep: egrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: echo, expr, hostname, sleep Texinfo: makeinfo Textutils: cat, tr

Установка Libtool-1.4.2

Приблизительное время компиляции: 0.15 SBU Необходимое дисковое пространство: 7 MB


Инсталляция Libtool

Для инсталляции Libtool выполните:

./configure –prefix=/usr && make && make install


Содержимое Libtool

Последняя проверка: версия 1.4.2.

Программы

libtool и libtoolize

Описания

libtool

libtool предоставляет общие сервисы сборки библиотек.

libtoolize

libtoolize предоставляет стандартный путь добавления поддержки libtool в пакет.

Библиотеки

libltdl.a, libltdl.so (ссылка на libltdl.so.3.1.0), libltdl.so.3 (ссылка на libltdl.so.3.1.0) и libltdl.so.3.1.0

Описания

libltdl, libltdl.so.3, libltdl.so.3.1.0

Небольшая библиотека, направленная на сокрытие от программиста различных трудностей, связанных с библиотеками (dlopen).

Зависимости Libtool

Последняя проверка: версия 1.4.2.

Bash: sh Binutils: ar, as, ld, nm, ranlib, strip Diffutils: cmp Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm, rmdir Gcc: cc, cc1, collect2, cpp0 Glibc: ldconfig Grep: egrep, fgrep, grep Make: make Sed: sed Sh-utils: echo, expr, hostname, sleep, uname Texinfo: install-info Textutils: cat, sort, tr, uniq

Установка Bin86-0.16.3

Приблизительное время компиляции: 0.07 SBU Необходимое дисковое пространство: 2 MB


Инсталляция Bin86

Этот пакет необходим лишь в том случае, если вы собираетесь пользоваться LILO. Если вы собираетесь использовать другой загрузчик, например Grub, bin86 не нужен. Обратитесь к документации предпочитаемого загрузчика, чтобы выяснить, требует ли он наличие пакета bin86 (обычно необходимы только программы ld86 и/или as86 из этого пакета).

Помните, что не только загрузчики используют пакет bin86. Существует вероятность, что какой-либо иной пакет потребует программу из bin86. Имейте это в виду, если собираетесь пропустить установку bin86.

Для инсталляции Bin86 выполните:

make && make PREFIX=/usr install


Содержание 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

Установка Bzip2-1.0.2

Приблизительное время компиляции: 0.09 SBU Необходимое дисковое пространство: 3 MB


Инсталляция Bzip2

Для инсталляции Bzip2 выполните:

make -f Makefile-libbz2_so && make && make install && cp bzip2-shared /bin/bzip2 && ln -s libbz2.so.1.0 libbz2.so && cp -a libbz2.so* /lib && rm /lib/libbz2.so && ln -s ../../lib/libbz2.so.1.0 /usr/lib/libbz2.so && rm /usr/bin/{bunzip2,bzcat,bzip2} && mv /usr/bin/{bzip2recover,bzless,bzmore} /bin && ln -s bzip2 /bin/bunzip2 && ln -s bzip2 /bin/bzcat


Стоит заметить, что имеет смысл загрузить патч для программы Tar, который позволяет ей без труда запаковывать и распаковывать архивы с помощью bzip2/bunzip2. Однако этот патч не является частью базовой системы LFS. С обычной версией tar, для работы с bzip2/bunzip2 используются конструкции вида bzcat file.tar.bz | tar -xv или tar –use-compress-prog=bunzip2 -xvf file.tar.bz2. Вышеупомянутый патч предоставляет возможность использования опции -j, при помощи которой распаковать архив bzip2 командой tar -xvfj file.tar.bz2. Применение данного патча будет рассмотрено далее, при установке пакета Tar.

Пояснения команд

make -f Makefile-libbz2_so: Компиляция bzip2 с помощью другого файла Makefile, в данном случае с помощью Makefile-libbz2_so, который создает динамическую библиотеку libbz2.so и связывает с ней утилиты 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

Установка Ed-0.2

Приблизительное время компиляции: 0.06 SBU Необходимое дисковое пространство: 3 MB


Инсталляция Ed

Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.

Вряд ли вы будете использовать Ed. Мы его устанавливаем только потому, что иногда его требует программа patch, т.е. когда патч написан в формате Ed. Однако это большая редкость, т.к. на сегодняшний день преобладают патчи формата diff.

Для инсталляции Ed выполните:

patch -Np1 -i ../ed-0.2.patch && ./configure –prefix=/usr && make && make install && mv /usr/bin/{ed,red} /bin


Пояснения команд

patch -Np1 -i ../ed-0.2.patch: Этот патч устраняет уязвимость символических ссылок в ed. Программа ed создает файлы в каталоге /tmp с предсказуемыми именами. Воспользовавшись атаками с использованием символических ссылок, возможно заставить ed изменять файлы и права доступа к ним.

Содержимое Ed

Последняя проверка: версия 0.2.

Программы

ed и red (ссылка на ed)

Описание

ed

ed – строкоориентированный текстовый редактор. Он используется для создания, отображения, изменения и других манипуляций с текстовыми файлами.

red

red – это ограниченный ed: он может редактировать файлы только в текущем каталоге и не может исполнять команды интерпретатора.

Зависимости Ed

Последняя проверка: версия 0.2.

Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, cp, install, ln, mv, rm, touch Gcc: cc1, collect2, cpp0, gcc Grep: egrep, grep Make: make Sed: sed Sh-utils: hostname Textutils: cat, tr

Установка Kbd-1.06

Приблизительное время компиляции: 0.12 SBU Необходимое дисковое пространство: 8 MB


Инсталляция Kbd

Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.

Для инсталляции Kbd выполните:

patch -Np1 -i ../kbd-1.06-3.patch && ./configure && make && make install


Пояснения команд

patch -Np1 -i ../kbd-1.06-3.patch: Этот патч устраняет две проблемы. Первая связана с поведением loadkeys -d, где в некоторых версиях наблюдаются сбои. Эту проблему необходимо устранить, т.к. сценарии загрузки зависят от корректного выполнения команды loadkeys -d. Вторая часть патча вносит изменения в файл Makefile, для того чтобы установить некоторые утилиты, неинсталлируемые по умолчанию (например, setlogcons, setvesablank и getunimap).

Содержимое Kbd

Последняя проверка: версия 1.06.

Программы

chvt, deallocvt, dumpkeys, fgconsole, getkeycodes, getunimap, kbd_mode, kbdrate, loadkeys, loadunimap, mapscrn, openvt, psfaddtable (ссылка на psfxtable), psfgettable (ссылка на psfxtable), psfstriptable (ссылка на psfxtable), psfxtable, resizecons, setfont, setkeycodes, setleds, setlogcons, setmetamode, setvesablank, showfont, showkey, unicode_start, и unicode_stop

Описание

chvt

chvt переключает текущий виртуальный терминал.

deallocvt

deallocvt закрывает неиспользуемые виртуальные терминалы.

dumpkeys

dumpkeys выводит таблицы перевода клавиатуры.

fgconsole

fgconsole выводит число активных виртуальных терминалов.

getkeycodes

getkeycodes выводит таблицу конвертирования scancode-to-keycode.

getunimap

getunimap выводит текущий используемый unimap.

kbd_mode

kbd_mode выводит или устанавливает режим клавиатуры.

kbdrate

kbdrate устанавливает время повтора и задержки клавиатуры.

loadkeys

loadkeys загружает таблицы перевода клавиатуры.

loadunimap

loadunimap загружает таблицу конвертирования unicode-to-font.

mapscrn

mapscrn загружает определенную пользователем таблицу перевода выводимых символов в драйвер консоли. Заметьте, что утилита устарела, и ее возможности встроены в setfont.

openvt

openvt запускает программу на новом виртуальном терминале (VT).

psfaddtable, psfgettable, psfstriptable, psfxtable

Набор средств для управления таблицами символов Unicode для консольных шрифтов.

resizecons

resizecons меняет настройки ядра, касающиеся размера консоли.

setfont

Позволяет менять консольные шрифты EGA/VGA.

setkeycodes

setkeycodes загружает правила преобразования из сканкодов в клавиатурные.

setleds

setleds устанавливает индикаторы клавиатуры. Многие люди предпочитают включение numlock по умолчанию. и это может быть выполнено с помощью этой программы.

setlogcons

setlogcons выводит сообщения ядра в консоль.

setmetamode

setmetamode определяет метауправление клавиатурой.

setvesablank

Позволяет использовать встроенный аппаратный хранитель экрана (просто пустой экран).

showfont

showfont отображает информацию о шрифте. Показываются свойства шрифта, метрики символов и их образцы.

showkey

showkey проверяет сканкоды с клавиатуры.

unicode_start

unicode_start переводит консоль в режим Unicode.

unicode_stop

unicode_stop выводит клавиатуру и консоль из режима Unicode.

Зависимости Kbd

Последняя проверка: версия 1.06.

Bash: sh Binutils: as, ld, strip Bison: bison Diffutils: cmp Fileutils: cp, install, ln, mv, rm Flex: flex Gettext: msgfmt, xgettext Gcc: cc1, collect2, cpp0, gcc Grep: grep Gzip: gunzip, gzip Make: make Patch: patch Sed: sed Sh-utils: uname

Установка Diffutils-2.8.1

Приблизительное время компиляции: 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

Установка 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 процессов, которые использует определенные файлы или файловые системы.

killall

killall посылает сигналы всем процессам, исполняющим указанные команды.

pstree

pstree показывает дерево текущих процессов.

Зависимости Psmisc

Последняя проверка: версия 20.2.

Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Bison: bison Binutils: as, ld Diffutils: cmp Fileutils: chmod, install, ls, mkdir, mv, rm Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp0, gcc Grep: egrep, grep M4: m4 Make: make Gawk: gawk Sed: sed Sh-utils: basename, echo, expr, hostname, sleep, uname Texinfo: makeinfo Textutils: cat, tr

Установка Shadow-4.0.3

Приблизительное время компиляции: 0.88 SBU Необходимое дисковое пространство: 7 MB


Инсталляция Shadow Password Suite

Перед тем как перейти к инсталляции данного пакета, рекомендуем прочесть руководство по теневым паролям , которое рассказывает о том, как сделать систему более защищенной в отношении паролей, как включить поддержку паролей MD5 и как выжать из пакета Shadow максимум пользы для системы. См. http://hints.linuxfromscratch.org/hints/shadowpasswd_plus.txt.

Для инсталляции Shadow Password Suite выполните:

./configure –prefix=/usr \ –libdir=/usr/lib –enable-shared && make && make install && cp etc/{limits,login.access} /etc && sed 's%/var/spool/mail%/var/mail%' \ etc/login.defs.linux > /etc/login.defs && ln -s vipw /usr/sbin/vigr && rm /bin/vipw && mv /bin/sg /usr/bin && mv /usr/lib/lib{shadow,misc}.so.0* /lib && ln -sf ../../lib/libshadow.so.0 /usr/lib/libshadow.so && ln -sf ../../lib/libmisc.so.0 /usr/lib/libmisc.so


Sh-utils и Shadow Password Suite устанавливают свои программы groups. Если вы захотите удалить программу groups из пакета Shadow Password Suite выполните:

rm /bin/groups


Пояснения команд

cp limits login.access /etc: Эти файлы не инсталлируются при установке пакета, поэтому необходимо скопировать их вручную, т.к. они необходимы для настроек аутентификации системы.

sed «s%/var/spool/mail%/var/mail%» login.defs.linux > /etc/login.defs: /var/spool/mail устаревшее местонахождение почтовых ящиков пользователей. На сегодняшний день используется каталог /var/mail.

ln -s vipw vigr: В соответствии со страницей руководства команды vipw, на эту команду должна существовать символическая ссылка vigr. Так как при инсталляции Shadow эта символическая ссылка не создается, создадим ее вручную.

Содержимое Shadow

Последняя проверка: версия 4.0.3.

Программы

chage, chfn, chpasswd, chsh, dpasswd, expiry, faillog, gpasswd, groupadd, groupdel, groupmod, groups, grpck, grpconv, grpunconv, lastlog, login, logoutd, mkpasswd, newgrp, newusers, passwd, pwck, pwconv, pwunconv, sg (ссылка на newgrp), useradd, userdel, usermod, vigr (ссылка на vipw) и vipw

Описания

chage

chage изменяет число дней между сменами паролей и дату последнего изменения.

chfn

chfn изменяет полное имя пользователя и прочую информацию о нем (номер рабочего кабинета, рабочий и домашний телефоны).

chpasswd

chpasswd читает файл, содержащий пользовательские имена и пароли, и использует эту информацию для обновления группы существующих пользователей.

chsh

chsh меняет командный интерпретатор, используемый пользователем.

dpasswd

dpasswd добавляет, удаляет и обновляет пароли dial-up подключений для командных оболочек.

expiry

expiry просматривает и изменяет правила истечения срока действия паролей.

faillog

faillog форматирует содержимое журнала ошибок /var/log/faillog и поддерживает счетчики и лимиты ошибок.

gpasswd

gpasswd используется для редактирования /etc/group.

groupadd

groupadd создает новую группу, используя заданные параметры и параметры по умолчанию.

groupdel

groupdel изменяет файлы учетных записей, удаляя все относящееся к заданной группе.

groupmod

groupmod изменяет файлы учетных записей групп, внося заданные изменения.

groups

groups выводит группы, к которым принадлежит пользователь.

grpck

grpck проверяет целостность системной информации об аутентификации.

grpconv

grpunconv конвертирует обычные файлы групп в теневые.

grpunconv

grpunconv конвертирует теневые файлы групп в обычные.

lastlog

lastlog форматирует и выводит содержимое журнала регистраций /var/log/lastlog. Выводится регистрационное имя, порт и время регистрации.

login

login используется для начала новой сессии работы с системой.

logoutd

logoutd контролирует время регистрации и прочие ограничения, указанные в /etc/porttime.

mkpasswd

mkpasswd читает файл в заданном формате и конвертирует его в базу данных соответствующего формата.

newgrp

newgrp изменяет текущую группу.

newusers

newusers читает файл с именами пользователей и пустыми полями паролей и обновляет группу существующих пользователей или создает новых.

passwd

passwd меняет пароли пользователей и групп.

pwck

pwck проверяет целостность файлов паролей.

pwconv

pwconv конвертирует обычный файл паролей в теневой.

pwunconv

pwunconv конвертирует теневой файл паролей в обычный.

sg

sg меняет GID пользователя на соответствующий указанной группе или выполняет заданную команду с правами указанной группы.

useradd

useradd создает нового пользователя или обновляет данные по умолчанию о новых пользователях.

userdel

userdel изменяет файлы, содержащие информацию о пользователях, удаляя все записи, относящиеся к указанному регистрационному имени.

usermod

usermod изменяет файлы учетных записей пользователей, внося заданные изменения..

vipw и vigr

vipw и vigr позволяют безопасно редактировать /etc/passwd и /etc/group. С флагом -s будут редактироваться теневые версии файлов, /etc/shadow и /etc/gshadow.

Библиотеки

libmisc.[a,so], libshadow.[a,so]

Descriptions

libmisc

На данный момент нет описания.

libshadow

libshadow предоставляет большинство функций для программ shadow.

Зависимости Shadow

Последняя проверка: версия 20001016.

Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, nm, ranlib Diffutils: cmp Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm, rmdir Gettext: msgfmt, xgettext Gcc: cc1, collect2, cpp0, gcc Glibc: ldconfig Grep: egrep, grep M4: m4 Make: make Gawk: gawk Net-tools: hostname Sed: sed Sh-utils: basename, echo, expr, sleep, uname Texinfo: makeinfo Textutils: cat, sort, tr, uniq

Установка Sysklogd-1.4.1

Приблизительное время компиляции: 0.03 SBU Необходимое дисковое пространство: 472 KB


Инсталляция Sysklogd

Для инсталляции Sysklogd выполните:

make && make install


Содержимое Sysklogd

Последняя проверка: версия 1.4.1.

Программы

klogd and syslogd

Описания

klogd

klogd – системный демон, перехватывающий и сохраняющий в журнале сообщения ядра Linux.

syslogd

syslogd предоставляет способ журналирования, используемый многими современными программами. Каждое сохраненное сообщение содержит, по крайней мере, информацию о времени и хосте, обычно также имя программы, прочие сведения зависят от приложения.

Зависимости Sysklogd

Последняя проверка: версия 1.4.1.

Binutils: as, ld, strip Fileutils: install Gcc: cc1, collect2, cpp0, gcc Make: make

Установка Sysvinit-2.84

Приблизительное время компиляции: 0.06 SBU Необходимое дисковое пространство: 1 MB


Инсталляция Sysvinit

Когда изменяется уровень (runlevel) системы (например, при остановке работы системы), init посылает сигналы TERM и KILL процессам, которые он запустил. На экран init выдает сообщение «Sending processes the TERM signal». Создается впечатление, что init посылает данные сигналы всем запущенным процессам. Во избежание недоразумений, изменим файл init.c, что вывод на экране выглядел следующим образом: «Sending processes started by init the TERM signal». Для этого выполните нижеприведенные команды:

cp src/init.c{,.backup} && sed 's/Sending processes/Sending processes started by init/g' \ src/init.c.backup > src/init.c


Для инсталляции Sysvinit выполните:

make -C src && make -C src install


Содержимое Sysvinit

Последняя проверка: версия 2.84.

Программы

halt, init, killall5, last, lastb (ссылка на last), mesg, pidof (ссылка на killall5), poweroff (ссылка на halt), reboot (ссылка на halt), runlevel, shutdown, sulogin, telinit (ссылка на init), utmpdump и wall

Описания

halt

halt отмечает в /var/log/wtmp завершение работы системы и сообщает ядру о необходимости остановить, перезагрузить или отключить систему. Если halt или reboot вызваны, когда система не на уровнях выполнения 0 или 6, вместо них запускается (с флагами -h и -r соответственно).

init

init – предок всех процессов. Его основная роль – создание процессов из скрипта /etc/inittab. Этот файл содержит записи для создания getty, к которым подключаются пользователи. initt также контролирует различные автономные процессы.

killall5

killall5 – команда killall из SystemV. Посылается сигнал всем процессам вне собственной сессии, так что интерпретатор, выполняющий скрипт, из которого была вызвана эта команда, не будет завершен.

last

last просматривает /var/log/wtmp (или файл, указанный флагом -f) и выводит список всех пользователей, зарегистрировавшихся и завершивших сеанс с момента создания файла.

lastb

lastb действует аналогично last, но по умолчанию выводится журнал /var/log/btmp, содержащий записи о неудачных попытках регистрации.

mesg

mesg контролирует внешний доступ к терминалу пользователя. Обычно используется для разрешения записи на данный терминал прочим пользователям.

pidof

pidof выводит идентификаторы процессов (PIDs) указанных программ.

poweroff

poweroff действует аналогично shutdown -h -p. Выполняется останов системы и ее физическое отключение (необходим APM совместимый BIOS и поддержка APM в ядре).

reboot

reboot действует аналогично shutdown -r. Выполняется перезагрузка системы.

runlevel

runlevel читает файл utmp (обычно /var/run/utmp), ищет записи об уровне выполнение, и выводит предыдущий и текущий уровни выполнения на стандартный вывод, разделенные пробелом.

shutdown

shutdown безопасно останавливает систему. Все зарегистрированные пользователи уведомляются об останове, регистрация в системе запрещается.

sulogin

sulogin вызывается init, когда система переходит в однопользовательский режим (указывается записью в in /etc/inittab). Init также выполняет sulogin, когда получает флаг -b от загрузчика (например, LILO).

telinit

telinit посылает сигналы init, сообщающие о необходимости смены уровня выполнения.

utmpdump

utmpdump выводит содержимое файла (обычно /var/run/utmp) на стандартный вывод в удобном пользователю формате.

wall

wall посылает сообщение всем зарегистрированным пользователям, но лишь в случае, если mesg установлено yes.

Зависимости Sysvinit

Последняя проверка: версия 2.84.

Bash: sh Binutils: as, ld Fileutils: chown, cp, install, ln, mknod, rm Gcc: cc, cc1, collect2, cpp0 Make: make Sed: sed

Установка Tar-1.13

Приблизительное время компиляции: 0.26 SBU Необходимое дисковое пространство: 6 MB


Инсталляция Tar

Если вы хотите иметь возможность распаковывать файлы bzip2 программой tar напрямую, примените патч с FTP-сервера LFS. Этот патч добавляет возможность использования опции -j к команде tar, которая работает аналогично с опцией -z, использующейся для распаковки файлов gzip.

Примените патч, выполнив следующую команду:

patch -Np1 -i ../tar-1.13.patch


Для инсталляции Tar выполните:

./configure –prefix=/usr \ –libexecdir=/usr/bin –bindir=/bin && make && make install


Содержимое Tar

Последняя проверка: версия 1.13.

Программы

rmt и tar

Описания

rmt

rmt используется другими программами для удаленного управления приводом магнитных лент.

tar

tar – программа архивации, сохраняющая и извлекающая файлы из архивов tar.

Зависимости Tar

Последняя проверка: версия 1.13.

Autoconf: autoconf, autoheader Automake: aclocal, automake Bash: sh Binutils: ar, as, ld, ranlib Diffutils: cmp Fileutils: chmod, install, ls, mv, rm Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp0, gcc Glibc: getconf Grep: egrep, fgrep, grep M4: m4 Make: make Gawk: gawk Net-tools: hostname Patch: patch Sed: sed Sh-utils: basename, echo, expr, sleep, uname Texinfo: install-info, makeinfo Textutils: cat, tr

Установка Util-linux-2.11u

Приблизительное время компиляции: 0.38 SBU Необходимое дисковое пространство: 10 MB


Замечания по соответствию стандарту FHS

Стандарт FHS рекомендует использовать /var/lib/hwclock для хранения файла adjtime, вместо привычного каталога /etc. Для приведения hwclock, являющегося частью пакета util-linux, к соответствию стандарту FHS, выполните:

cp hwclock/hwclock.c{,.backup} && sed 's%etc/adjtime%var/lib/hwclock/adjtime%' \ hwclock/hwclock.c.backup > hwclock/hwclock.c && mkdir -p /var/lib/hwclock


Инсталляция Util-linux

Для инсталляции Util-linux выполните:

./configure && make HAVE_SLN=yes && make HAVE_SLN=yes install


Пояснения команд

HAVE_SLN=yes: Не инсталлировать данную программу, т.к. она уже была установлена при инсталляции пакета Glibc.

Содержание Util-linux

Последняя проверка: версия 2.11t.

Программы

agetty, arch, blockdev, cal, cfdisk, chkdupexe, col, colcrt, colrm, column, ctrlaltdel, cytune, ddate, dmesg, elvtune, fdformat, fdisk, fsck.cramfs, fsck.minix, getopt, hexdump, hwclock, ipcrm, ipcs, isosize, line, logger, look, losetup, mcookie, mkfs, mkfs.bfs, mkfs.cramfs, mkfs.minix, mkswap, more, mount, namei, parse.bash, parse.tcsh, pg, pivot_root, ramsize (ссылка на rdev), raw, rdev, readprofile, rename, renice, rev, rootflags (ссылка на rdev), script, setfdprm, setsid, setterm, sfdisk, swapoff (ссылка на swapon), swapon, test.bash, test.tcsh, tunelp, ul, umount, vidmode (ссылка на rdev), whereis и write

Описания

agetty

agetty открывает tty, запрашивает регистрационное имя и запускает /bin/login.

arch

arch выводит информацию об архитектуре машины.

blockdev

blockdev позволяет вызывать ioctls блочного устройства из командной строки.

cal

cal выводит простой календарь.

cfdisk

cfdisk – редактор разделов диска, основанный на библиотеке libncurses.

chkdupexe

chkdupexe находит дублирующиеся исполняемые файлы.

col

col фильтрует перевернутые строки, поступающие с ввода.

colcrt

colcrt фильтрует вывод nroff для предпросмотра CRT.

colrm

colrm удаляет колонки из файла.

column

column объединяет списки в файл из нескольких колонок.

ctrlaltdel

ctrlaltdel устанавливает действие для комбинации клавиш CTRL+ALT+DEL (жесткая или мягкая перезагрузка).

cytune

cytune запрашивает и изменяет порог прерывания для драйвера Cyclades.

ddate

ddate конвертирует дату по Грегорианскому календарю в дату по календарю Discordian.

dmesg

dmesg просматривает и контролирует буфер kernel ring (сообщения загрузки ядра).

elvtune

elvtune позволяет настраивать the I/O elevator per block device queue basis.

fdformat

fdformat выполняет низкоуровневое форматирование дискет.

fdisk

fdisk – редактор дисковых разделов.

fsck.cramfs

На данный момент нет описания.

fsck.minix

fsck.minix проверяет целостность файловых систем MINIX.

getopt

getopt анализирует переданные из командной строки параметры таким же образом как и одноименная функция C.

hexdump

hexdump выводит указанные файлы на стандартный вывод в указанном формате (ascii, десятичный, шестнадцатеричный, восьмеричный).

hwclock

hwclock устанавливает системные часы (часы RTC или BIOS).

ipcrm

ipcrm удаляет указанный ресурс.

ipcs

ipcs выводит информацию об устройствах IPC.

isosize

isosize выводит объем файловой системы iso9660.

line

line копирует одну строку (до символа новой строки) из стандартного ввода на стандартный вывод.

logger

logger делает записи в системном журнале.

look

look выводит строки, начинающиеся с заданной.

losetup

losetup управляет устройствами loop.

mcookie

mcookie генерирует «магические» ключи для xauth.

mkfs

mkfs создает файловую систему Linux на устройстве, обычно разделе диска.

mkfs.bfs

mkfs.bfs создает файловую систему SCO bfs на устройстве, обычно разделе диска.

mkfs.cramfs

На данный момент нет описания.

mkfs.minix

mkfs.minix создает файловую систему Linux MINIX на устройстве, обычно разделе диска.

mkswap

mkswap создает пространство подкачки на устройстве или в файле.

more

more – фильтр для поэкранного просмотра текста.

mount

mount монтирует файловую систему устройства в каталог (точку монтирования).

namei

namei переходит по заданному пути до тех пор, пока не будет найдена точка терминала.

parse.bash, parse.tcsh, test.bash, test.tcsh

Это примеры скриптов, использующих getopt с BASH или TCSH.

pg

На данный момент нет описания.

pivot_root

pivot_root изменяет корневую файловую систему текущего процесса.

ramsize

ramsize запрашивает и меняет размер RAM диска.

raw

raw используется для привязки символьных устройств к блочным.

rdev

rdev запрашивает и устанавливает образ корневого устройства, устройства подкачки, объем RAM диска или видеорежим.

readprofile

readprofile выводит информацию из профиля ядра.

rename

rename переименовывает файлы.

renice

renice меняет приоритет запущенных процессов.

rev

rev инвертирует строки файлов.

rootflags

rootflags запрашивает и сохраняет дополнительную информацию, используемую для монтирования корневой файловой системы.

script

script создает скрипт терминальной сессии.

setfdprm

setfdprm устанавливает параметры гибких дисков.

setsid

setsid запускает программы в новой сессии.

setterm

setterm устанавливает параметры терминала.

sfdisk

sfdisk – редактор дисковых разделов.

swapoff

swapoff деактивирует файлы и устройства подкачки.

swapon

swapon активирует файлы и устройства подкачки.

tunelp

tunelp устанавливает различные параметры LP устройств.

ul

ul читает файл и переводит символы подчеркивания в последовательность, отображающую подчеркивание на используемом терминале.

umount

umount размонтирует смонтированную файловую систему.

vidmode

vidmode запрашивает и устанавливает видеорежим.

whereis

whereis находит исполняемый файл, исходные коды и документацию для указанной команды.

write

write посылает сообщение другому пользователю.

Зависимости Util-linux

Последняя проверка: версия 2.11n.

Bash: sh Binutils: as, ld Diffutils: cmp Fileutils: chgrp, chmod, cp, install, ln, mv, rm Gettext: msgfmt, xgettext Gcc: cc, cc1, collect2, cpp, cpp0 Glibc: rpcgen Grep: grep Make: make Sed: sed Sh-utils: uname, whoami Textutils: cat

Установка LFS-Bootscripts-1.10

Приблизительное время компиляции: 0.01 SBU Необходимое дисковое пространство: 420 KB


Инсталляция LFS-Bootscripts

Мы будем использовать скрипты инициализации SysV. Выбор в их пользу был сделан нами ввиду его распространенности и комфорта для нас. Если вы не разделяете наших предпочтений, см. руководство Марка Хеердинка по установке скриптов инициализации BSD http://hints.linuxfromscratch.org/hints/bsd-init.txt.

Если вы решите использовать скрипты BSD, или какие-либо другие, отличные от SysV, можете смело пропустить Главу 7.

Для инсталляции LFS-Bootscripts выполните:

cp -a rc.d sysconfig /etc && chown -R root:root /etc/rc.d /etc/sysconfig


Содержимое LFS-bootscripts

Последняя проверка: версия 1.10.

Scripts

checkfs, cleanfs, functions, halt, ifdown, ifup, loadkeys, localnet, mountfs, mountproc, network, rc, reboot, sendsignals, setclock, swap, sysklogd и template

Descriptions

checkfs

checkfs проверяет файловые системы перед их монтированием (исключая журналируемые и сетевые файловые системы).

cleanfs

cleanfs удаляет файлы, которые не нужно хранить между перезагрузками, такие, как /var/run/*, /var/lock/*, создает пустой /var/run/utmp и удаляет /etc/nologin, /fastboot, /forcefsck.

functions

functions содержит общие для многих скриптов функции, такие как проверки ошибок и статуса, etc.

halt

halt останавливает систему.

ifdown, ifup

ifdown и ifup используются совместно с network.

loadkeys

loadkeys загружает keymap table, соответствующую раскладке клавиатуры.

localnet

localnet устанавливает имя системы и local loopback device.

mountfs

mountfs монтирует все локальные файловые системы, не помеченные как noauto.

mountproc

mountproc монтирует файловую систему proc.

network

network активирует сетевые интерфейсы и определяет шлюз по умолчанию.

rc

rc – основной скрипт, управляющий runlevel и отвечающий за исполнение прочих скриптов в установленном порядке.

reboot

reboot перезагружает систему.

sendsignals

sendsignals проверяет, остановлены ли все процессы, перед перезагрузкой ил остановкой системы.

setclock

setclock устанавливает часы ядра на местное время в случае, если системный таймер не установлен на GMT.

swap

swap разрешает/запрещает использование файлов и разделов подкачки.

sysklogd

sysklogd запускает и останавливает демоны журнализации ядра и системы в целом.

template

template – шаблон, который можно использовать для создания собственных загрузочных скриптов для других демонов.

Зависимости LFS-Bootscripts

Последняя проверка: версия 1.10.

Fileutils: chown, cp

Конфигурация основных программ

Теперь, когда все установлено, надо сконфигурировать программы для их корректного запуска.

Конфигурация VIM

По умолчанию vim запускается в режиме совместимости с vi. Некоторым это нравиться, но нам надо запускать vim в режиме vim (иначе мы бы не включили vim в описание, а оставили бы vi). Создайте /root/.vimrc запустив следующее:

cat > /root/.vimrc << «EOF»

" Begin /root/.vimrc


set nocompatible

set bs=2


" End /root/.vimrc

EOF


Конфигурация Glibc

Нам надо создать новый файл /etc/nsswitch.conf запустив следующее:

cat > /etc/nsswitch.conf << «EOF»

# Begin /etc/nsswitch.conf


passwd: files

group: files

shadow: files


publickey: files


hosts: files dns

networks: files


protocols: db files

services: db files

ethers: db files

rpc: db files


netgroup: db files


# End /etc/nsswitch.conf

EOF


Скрипт tzselect должен быть запущен, и вы должны ответить на вопрос о вашей временной зоне. Когда ответите, скрипт возьмет значение вашего местоположения из файла.

Создайте /etc/localtime симлинк на:

ln -sf ../usr/share/zoneinfo/ /etc/localtime


tzselect's должно иметь значение, типа EST5EDT or Canada/Eastern.

Команда на создание симлинка должна быть типа такой:

ln -sf ../usr/share/zoneinfo/EST5EDT /etc/localtime


Или:

ln -sf ../usr/share/zoneinfo/Canada/Eastern /etc/localtime


Конфигурация Dinamic Loader

По умолчанию Dinamic Loader (/lib/ld-linux.so.2) производит поиск в /lib и /usr/lib на предмет наличия dinamic libraries для программ, которые в них нуждаются. Однако, если dinamic libraries находятся в других директориях, вы должны добавить их в файл /etc/ld.so.conf, чтобы Dinamic Loader смог их найти. Две директории общеизвестны для дополнительных библиотек: /usr/local/lib и /opt/lib поэтому мы добавим эти директории в пути поиска Dinamic Loader: Создайте новый файл /etc/ld.so.conf следующей командой:

cat > /etc/ld.so.conf << «EOF»

# Begin /etc/ld.so.conf


/usr/local/lib

/opt/lib


# End /etc/ld.so.conf

EOF


Конфигурация Sysklogd

Создайте новый файл /etc/syslog.conf используя следующее:

cat > /etc/syslog.conf << «EOF»

# Begin /etc/syslog.conf


auth,authpriv.* -/var/log/auth.log

*.*;auth,authpriv.none -/var/log/sys.log

daemon.* -/var/log/daemon.log

kern.* -/var/log/kern.log

mail.* -/var/log/mail.log

user.* -/var/log/user.log

*.emerg *


# End /etc/syslog.conf

EOF


Конфигурация теневых паролей (Shadow Password Suite)

Этот пакет содержит утилиты для изменения пользовательских паролей, добавления или удаления пользователей и групп и все в этом духе. Мы не хотим разъяснять вам, что есть теневые пароли. Полное разъяснение вы получите прочитав соответствующий HOWTO поставляемый вместе с Shadow Password Suite Надо запомнить только одну вещь: если вы хотите использовать теневые пароли, то убедитесь, что ваши программы (например xdm, ftp daemons, pop3 daemons) способны работать с ними (являются ли программы shadow-compliant). Это все, что нам надо знать. Для включения механизма теневых паролей запустите следующую команду:

/usr/sbin/pwconv


Конфигурация Sysvinit

Создайте новый файл /etc/inittab запустив следующее:

cat > /etc/inittab << «EOF»

# Begin /etc/inittab


id:3:initdefault:


si::sysinit:/etc/rc.d/init.d/rc sysinit


l0:0:wait:/etc/rc.d/init.d/rc 0

l1:S1:wait:/etc/rc.d/init.d/rc 1

l2:2:wait:/etc/rc.d/init.d/rc 2

l3:3:wait:/etc/rc.d/init.d/rc 3

l4:4:wait:/etc/rc.d/init.d/rc 4

l5:5:wait:/etc/rc.d/init.d/rc 5

l6:6:wait:/etc/rc.d/init.d/rc 6


ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now


su:S016:once:/sbin/sulogin


1:2345:respawn:/sbin/agetty tty1 9600

2:2345:respawn:/sbin/agetty tty2 9600

3:2345:respawn:/sbin/agetty tty3 9600

4:2345:respawn:/sbin/agetty tty4 9600

5:2345:respawn:/sbin/agetty tty5 9600

6:2345:respawn:/sbin/agetty tty6 9600


# End /etc/inittab

EOF


Конфигурируем клавиатуру

Ничего не раздражает в LINUX так, как неправильно настроенная клавиатура (раскладка, keymap). Если вы хотите использовать раскладку по умолчанию (US keyboard) вы можете пропустить эту часть. US keymap используется по умолчанию. Для установки keymap нужной раскладки, создайте симлинк /usr/share/kbd/keymaps/defkeymap.map.gz используя следующую команду:

ln -s /usr/share/kbd/keymaps/defkeymap.map.gz


Замените путем к вашему map файлу. Для примера, если у вас немецкая раскладка запустите следующее:

ln -s i386/qwerty/nl.map.gz /usr/share/kbd/keymaps/defkeymap.map.gz


Вторая часть конфигурации раскладки заключается в компиляции раскладки прямо в ядро. В этом случае раскладка клавиатуры будет работать корректно даже в режиме maintenance (когда ядро получает команду init=/bin/sh), для которого сценарии загрузки не выполняются.

Запустите следующую команду для того, что бы пропатчить ядро на предмет правильной раскладки. Вы должны выполнить эту команду до того как вы распакуете новое ядро.

loadkeys -m /usr/share/kbd/keymaps/defkeymap.map.gz > \

/usr/src/linux/drivers/char/defkeymap.c


Создание файлов /var/run/utmp, /var/log/wtmp and /var/log/btmp

Таким программам как login, shutdown, uptime и другие требуется читать и записывать данные в /var/run/utmp, /var/log/btmp и /var/log/wtmp. Эти файлы содержат информацию о том, кто в текущий момент залогинен в системе. Они так же содержат информацию о моменте последней загрузки и shutdown, и записи о неудачных попытках входа в систему.

Создайте эти файлы и установите на них следующие права доступа:

touch /var/run/utmp /var/log/{btmp,lastlog,wtmp} &&

chmod 644 /var/run/utmp /var/log/{btmp,lastlog,wtmp}


Установка пароля пользователя root

Придумайте пароль для пользователя root и установите его следующей командой:

passwd root

Глава 7. Конфигурация загрузочных скриптов