Текст книги "Linux From Scratch"
Автор книги: Gerard Beekmans
Жанр:
ОС и Сети
сообщить о нарушении
Текущая страница: 12 (всего у книги 18 страниц)
Приблизительное время компиляции: 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
Перед тем как перейти к инсталляции данного пакета, рекомендуем прочесть руководство по теневым паролям
Для инсталляции 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