Библиотека сайта rus-linux.net
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 | Выдает команды для установки значений для переменной окружения |
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 |
| Библиотека, используемая командой stdbuf |
Предыдущий раздел: | Оглавление | Следующий раздел: |
Пакет E2fsprogs-1.41.14 | Пакет Iana-Etc-2.30 |