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