RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
YandexMoney: 
41001198119846 
E-gold:
5128052

Linux From Scratch. Версия 6.0

Глава 6. Установка основных системных программ

6.15. Coreutils-5.2.1

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

Расчетное время сборки 0.9 SBU

Требуемое место на диске 69 MB

Coreutils зависит от установки: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl и Sed.

6.15.1. Инсталлируем Coreutils

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

patch -Np1 -i ../coreutils-5.2.1-uname-2.patch

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


patch -Np1 -i ../coreutils-5.2.1-suppress_uptime_kill_su-1.patch

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


DEFAULT_POSIX2_VERSION=199209 ./configure --prefix=/usr

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

make

Этот пакет поддерживает тестирование для определения корректности сборки. Тем не менее, этот специфический тест использует непревилегированных пользователей и группы, которые пока не определены в нашей простой системе. Поэтому мы создадим фиктивного пользователя и две фиктивные группы для корректной работы тестов. Если Вы не хотите запускать тестирование, то переходите к “установке пакета”.

Создадим фиктивных пользователя и группы:


echo "dummy1:x:1000:" >> /etc/group
echo "dummy2:x:1001:dummy" >> /etc/group
echo "dummy:x:1000:1000:::/bin/bash" >> /etc/passwd

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


make NON_ROOT_USERNAME=dummy check-root

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


src/su dummy -c "make RUN_EXPENSIVE_TESTS=yes check"

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

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

Устанавливаем пакет:

make install

И переместим некоторые программы в их правильное место:


mv /usr/bin/{[,basename,cat,chgrp,chmod,chown,cp,dd,df} /bin
mv /usr/bin/{date,echo,false,head,hostname,install,ln} /bin
mv /usr/bin/{ls,mkdir,mknod,mv,pwd,rm,rmdir,sync} /bin
mv /usr/bin/{sleep,stty,test,touch,true,uname} /bin
mv /usr/bin/chroot /usr/sbin

Наконец, создадим необходимые ссылки для FHS-совместимости:

ln -s ../../bin/install /usr/bin

6.15.2. Описание Coreutils

Проинсталлированные программы: basename, cat, 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, hostname, id, install, join, link, ln, logname, ls, md5sum, mkdir, mkfifo, mknod, mv, nice, nl, nohup, od, paste, pathchk, pinky, pr, printenv, printf, ptx, pwd, readlink, rm, rmdir, seq, sha1sum, shred, sleep, sort, split, stat, stty, sum, sync, tac, tail, tee, test, touch, tr, true, tsort, tty, uname, unexpand, uniq, unlink, users, vdir, wc, who, whoami и yes.

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

basename

Возвращает имя файла по указанному полному имени с путями и суффиксами.

cat

Суммирует содержимое файлов на стандартный вывод.

chgrp

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

chmod

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

chown

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

chroot

Запускает указанную команду с указанным каталогом в качестве корня /.

cksum

Печатает контрольную сумму 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

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

hostname

Возвращает установленное имя хоста.

id

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

install

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

join

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

link

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

ln

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

logname

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

ls

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

md5sum

Возвращает контрольную сумму MD5.

mkdir

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

mkfifo

Создает FIFO “именованный канал ” UNIX-способом с заданным именем.

mknod

Создает элемент устройства с заданным именем. Элемент устройства может быть специальным символьным файлом, блочным файлом или FIFO.

mv

Перемещает или переименовывает указанные файлы или каталоги.

nice

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

nl

Возвращает количество строк в указанном файле.

nohup

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

od

Выводит дамп файла в восьмеричном или ином формате.

paste

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

pathchk

Проверяет корректность или портируемость имен файлов.

pinky

Упрощенный вариант finger. Возвращает некоторую информацию об указанных пользователях.

pr

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

printenv

Печатает переменные окружения.

printf

Печатает заданные параметры в указанном формате, очень похож на одноименную функцию C.

ptx

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

pwd

Возвращает имя текущего каталога.

readlink

Возвращает значение символической ссылки.

rm

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

rmdir

Удаляет каталог, если он пустой.

seq

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

sha1sum

Возвращает или проверяет контрольную сумму 160-бит SHA1.

shred

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

sleep

Пауза на указанное время (в секундах).

sort

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

split

Разрезает указанный файл на части заданного размера или по номерам строк.

stat

Показывает статус файла или файловой системы.

stty

Устанавливает или печатает установки терминала.

sum

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

sync

Переключает буфер файловой системы. Он принудительно записывает измененные блоки на диск и обновляет super block.

tac

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

tail

Печатает последние десять строк (или указанное их количество) из заданного файла.

tee

Считывает данные со стандартного ввода и записывает их в файл, дублируя на устройстве стандартного вывода.

test

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

touch

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

tr

Заменяет, вставляет и удаляет символы со стандартного ввода.

true

Ничего не делает, но всегда возвращает результат успешно завершенной операции.

tsort

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

tty

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

uname

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

unexpand

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

uniq

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

unlink

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

users

Выводит список подключенных к системе пользователей.

vdir

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

wc

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

who

Сообщает, кто сейчас подключен.

whoami

Возвращает имя пользователя, соответствующее текущему ID.

yes

Выводит циклически “y” или заданную строку, после чего завершается.

Поиск

 

Найди своих коллег!