Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Электронные книги по ОС Linux
Linux From Scratch (version 6.8)
Назад Глава 6. Установка программ базовой системы Вперед

6.22. Пакет Coreutils-8.10

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

Приблизительное время сборки: 3,2 SBU

Требуемое дисковое пространство: 99 MB

6.22.1. Установка пакета Coreutils

Известная проблема с программой uname из этого пакета заключается в том, что переключатель -p всегда возвращает значение unknown (неизвестно). Следующий патч исправляет эту проблему для архитектуры Intel:

case `uname -m` in
 i?86 | x86_64) patch -Np1 -i ../coreutils-8.10-uname-1.patch ;;
esac

Стандарт POSIX требует, чтобы программы пакета Coreutils правильно распознавали символы даже в случае, если используются многобайтовые локали. Следующий патч исправляет несоответствие этому требованию, а также другие ошибки, касающиеся интернационализации:

patch -Np1 -i ../coreutils-8.10-i18n-1.patch

Замечание

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

Теперь подготовьте пакет Coreutils для компиляции:

./configure --prefix=/usr \
    --enable-no-install-program=kill,uptime

Пояснение конфигурационных параметров:

--enable-no-install-program=kill,uptime
 

Назначение этого параметра — предотвратить в пакете Coreutils установку двоичных пакетов, которые позже будут установлены в других пакетах.

Откомпилируйте пакет:

make

Если вы не планируете запускать набор тестов, то перейдите сразу к установке пакета.

Теперь набор тестов готов к запуску. Сначала запустите набор тестов, который требуется запускать под пользователем root:

make NON_ROOT_USERNAME=nobody check-root

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

echo "dummy:x:1000:nobody" >> /etc/group

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

chown -Rv nobody . 

Теперь запустите тесты:

su-tools nobody -s /bin/bash -c "make RUN_EXPENSIVE_TESTS=yes check"

Удалите временную группу:

sed -i '/dummy/d' /etc/group

Установите пакет:

make install

Переместите программы туда, где они должны быть в соответствие со спецификациями FHS:

mv -v /usr/bin/{cat,chgrp,chmod,chown,cp,date,dd,df,echo} /bin
mv -v /usr/bin/{false,ln,ls,mkdir,mknod,mv,pwd,rm} /bin
mv -v /usr/bin/{rmdir,stty,sync,true,uname} /bin
mv -v /usr/bin/chroot /usr/sbin
mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8
sed -i s/\"1\"/\"8\"/1 /usr/share/man/man8/chroot.8

Некоторые из скриптов из пакета LFS-Bootscripts зависят от head, sleep и nice. Поскольку директорий /usr может отсутствовать на ранних стадиях загрузки, эти двоичные модули должны находиться в корневом разделе:

mv -v /usr/bin/{head,sleep,nice} /bin

6.22.2. Описание пакета Coreutils

Установленные программы: base64, basename, cat, chcon, chgrp, chmod, chown, chroot, cksum, comm, cp, csplit, cut, date, dd, df, dir, dircolors, dirname, du, echo, env, expand, expr, factor, false, fmt, fold, groups, head, hostid, id, install, join, link, ln, logname, ls, md5sum, mkdir, mkfifo, mknod, mktemp, mv, nice, nl, nohup, nproc, od, paste, pathchk, pinky, pr, printenv, printf, ptx, pwd, readlink, rm, rmdir, runcon, seq, sha1sum, sha224sum, sha256sum, sha384sum, sha512sum, shred, shuf, sleep, sort, split, stat, stdbuf, stty, sum, sync, tac, tail, tee, test, timeout, touch, tr, true, truncate, tsort, tty, uname, unexpand, uniq, unlink, users, vdir, wc, who, whoami и yes

Установленные библиотеки: libstdbuf.so

Установленные директории: /usr/lib/coreutils

Краткое описание

base64

Кодирует и декодирует данные согласно спецификациям base64 (RFC 3548)

basename

Удаляет любой путь и указанный суффикс из имени файла

cat

Подсоединяет файлы к стандартному выходному потоку

chcon

Изменяет контекст безопасности для файлов и директориев

chgrp

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

chmod

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

chown

Изменяет принадлежность файлов и директориев пользователю и/или группе

chroot

Запускает команду, причем для нее указанный директорий будет рассматриваться как корневой (/)

cksum

Выдает контрольную сумму Cyclic Redundancy Check (CRC) и количество байтов в каждом указанном файле

comm

Сравнивает два отсортированных файла, выдавая в виде трех колонок уникальные и общие строки

cp

Копирует файлы

csplit

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

cut

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

date

Отображает текущее время в заданном формате или устанавливает системную дату

dd

Копирует файл, используя для этого размер блока и количество блоков; если надо, выполняется преобразование

df

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

dir

Выдает список содержимого каждого указанного директория (точно также, как и команда ls)

dircolors

Выдает команды для установки значений для переменной окружения LS_COLOR, с помощью которой изменяется цветовая схема, используемая командой ls

dirname

Удаляет из имени файла суффикс, не являющийся директорием

du

Сообщает об общем количестве дискового пространства, используемого в текущем директории, в каждом указанном директории (в том числе и в поддиректориях) или в каждом указанном файле

echo

Отображает указанные строки

env

Запускает команду в модифицированной среде окружения

expand

Конвертирует символы табуляции в пробелы

expr

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

factor

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

false

Ничего не делает, указывает на неудачу; всегда при выходе возвращает статус ошибки

fmt

Форматирует абзацы в указанных файлах

fold

Выполняет перенос длинных строк в указанных файлах

groups

Сообщает о принадлежности пользователя к группам

head

Выводит первые десять строк (или заданное количество строк) каждого указываемого файла

hostid

Выводит числовой идентификатор хоста (в шестнадцатеричном формате)

id

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

install

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

join

Объединяет строки, которые имеют идентичные объединяемые поля в двух различных файлах

link

Создает жесткую ссылку с указанным именем на файл

ln

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

logname

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

ls

Выводит список содержимого для каждого заданного директория

md5sum

Выводит или проверяет контрольные суммы Message Digest 5 (MD5)

mkdir

Создает директории с указанными именами

mkfifo

Создает "именованный конвейер" вида First-In, First-Outs (FIFOs — первый пришел, первым обслужили) с указанными именами по типу конвейеров, имеющихся в UNIX

mknod

Создает ноды устройств с заданными именами; нодом устройства является специальный символьный файл, специальный блочный файл или конвейер FIFO

mktemp

Создает безопасные временные файлы; используется в скриптах

mv

Перемещает или переименовывает файлы или директории

nice

Запускает программу с измененным приоритетом ее исполнения

nl

Сообщает о количестве строк в указанных файлах

nohup

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

nproc

Указывает число дочерних процессов, имеющихся в данном процессе

od

Вывод дампа файла в шестнадцатеричном и других форматах

paste

Объединяет вместе указанные файлы; строки объединяются последовательно одна с другой; в качестве разделителя используются символы табуляции

pathchk

Проверяет, являются ли имена файлов допустимыми и можно ли их переносить с системы на систему

pinky

Легковесный поисковый клиент типа finger; выдает некоторую информацию о заданных пользователях

pr

Разбивает файлы для печати на отдельные страницы и столбцы

printenv

Выдает значения переменных среды окружения

printf

Выдает заданные аргументы в указанном формате точно так, как и функция printf языка С

ptx

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

pwd

Сообщает об имени текущего рабочего директория

readlink

Выдает значение указанной символической ссылки

rm

Удаляет файлы или директории

rmdir

Удаляет директории, если он и пусты

runcon

Запускает команду в указанном защищенном контексте

seq

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

sha1sum

Выводит или проверяет контрольные суммы 160-битного алгоритма криптографического хеширования (160-bit Secure Hash Algorithm 1 - SHA1)

sha224sum

Выводит или проверяет контрольные суммы 224-битного алгоритма криптографического хеширования (224-bit Secure Hash Algorithm)

sha256sum

Выводит или проверяет контрольные суммы 256-битного алгоритма криптографического хеширования (256-bit Secure Hash Algorithm)

sha384sum

Выводит или проверяет контрольные суммы 384-битного алгоритма криптографического хеширования (384-bit Secure Hash Algorithm)

sha512sum

Выводит или проверяет контрольные суммы 512-битного алгоритма криптографического хеширования (512-bit Secure Hash Algorithm)

shred

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

shuf

Перемешивает строки текста

sleep

Переход в паузу на указанное время

sort

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

split

Разбивает заданный файл на несколько частей в соответствии с указанным размером или количеством строк

stat

Отображает статус файла или файловой системы

stdbuf

Запуск команд с измененными операциями буферирования стандартных потоков ввода вывода

stty

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

sum

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

sync

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

tac

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

tail

Выводит последние десять строк (или заданное количество строк) каждого указанного файла

tee

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

test

Сравнивает значения и проверяет тип файлов

timeout

Запускает команду в течение указанного периода времени

touch

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

tr

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

true

Ничего не делает, указывает успешное выполнение операции; всегда при выходе возвращает статус успешного завершения

truncate

Сокращает или расширяет файл до указанного размера

tsort

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

tty

Сообщает имя файла терминала, подключенного к стандартному потоку ввода

uname

Сообщает информацию о системе

unexpand

Конвертирует символы пробелов в символы табуляции

uniq

Удаляются все повторяющиеся копии уже имеющихся строк

unlink

Удаляется указанный файл

users

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

vdir

То же самое, что и ls -l

wc

Сообщает о количестве строк, слов и байтов в каждом указанном файле, а также об общем количестве строк, если задано более одного файла

who

Сообщает, кто зарегистрирован в системе

whoami

Сообщает имя пользователя, соответствующее идентификатору текущего пользователя

yes

Выводит "y" или указанную строку до тех пор, пока команда не будет завешена с помощью kill

libstdbuf

Библиотека, используемая командой stdbuf


Предыдущий раздел: Оглавление Следующий раздел:
Пакет E2fsprogs-1.41.14   Пакет Iana-Etc-2.30