Copyright ╘ 1999-2002 by Gerard Beekmans
Эта книга описывает процесс создания Linux системы с нуля, используя лишь исходные коды необходимого программного обеспечения.
Эта книга посвящается моей любящей и заботливой жене Беверли Бикманс.
Вперед | ||
Пролог |
Linux From Scratch: Version 4.0 |
---|
Авторское право (c) 1999-2002, Герард
Бикманс
Все права защищены.
Повторное распространение, использование бинарного и исходного кода, с изменениями или без оных, разрешено при условии соблюдения следующих положений:
Отказ от прав: ЭТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПОСТАВЛЯЕТСЯ ВЛАДЕЛЬЦАМИ АВТОРСКИХ ПРАВ И УЧАСТНИКАМИ "КАК ЕСТЬ" И ЛЮБЫЕ ЯВНЫЕ ИЛИ НЕЯВНЫЕ ГАРАНТИИ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ НЕЯВНЫМИ ГАРАНТИЯМИ, КОММЕРЧЕСКОЙ ЦЕННОСТИ И ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ ОТРИЦАЮТСЯ. НИ В КОЕМ СЛУЧАЕ РЕГЕНТЫ ИЛИ УЧАСТНИКИ НЕ ДОЛЖНЫ БЫТЬ ОТВЕТСТВЕННЫМИ ЗА ЛЮБОЙ ПРЯМОЙ, КОСВЕННЫЙ, СЛУЧАЙНЫЙ, СПЕЦИАЛЬНЫЙ, ОБРАЗЦОВЫЙ ИЛИ ПОСЛЕДУЮЩИЙ УЩЕРБЫ (ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ПОСТАВКОЙ ТОВАРОВ ЗАМЕНЫ ИЛИ УСЛУГ; ПОТЕРЮ ДАННЫХ ИЛИ ИХ НЕПРАВИЛЬНУЮ ПЕРЕДАЧУ ИЛИ ПОТЕРИ; ПРИОСТАНОВЛЕНИЕ БИЗНЕСА), И ТЕМ НЕ МЕНЕЕ ВЫЗВАННЫЕ И В ЛЮБОЙ ТЕОРИИ ОТВЕТСТВЕННОСТИ, НЕЗАВИСИМО ОТ КОНТРАКТНОЙ, СТРОГОЙ ОТВЕТСТВЕННОСТИ, ИЛИ ПРАВОНАРУШЕНИИ (ВКЛЮЧАЯ ХАЛАТНОСТЬ ИЛИ ИНЫМ СПОСОБОМ), ВОЗНИКШЕМ ЛЮБЫМ ПУТЕМ ПРИ ИСПОЛЬЗОВАНИИ ЭТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ДАЖЕ ЕСЛИ БЫ БЫЛО СООБЩЕНО О ВОЗМОЖНОСТИ ТАКОГО УЩЕРБА.
Home |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Вперед |
Назад | Домой | Вперед |
Организация | Вступление |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Вперед |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Пролог | Вперед |
Я перепробовал некоторе количество дистрибутивов Linux, но ни один из них полностью не удовлетворял моим потребностям. Мне не нравилось расположение загрузочных скриптов. Мне не нравилось, как некоторые программы были сконфигурированы по умолчанию. Это мне порядком надоело. В итоге я осознал, что только построив собственную систему из исходников, я буду доволен. Я твердо решил отказаться от использования прекомпилированных пакетов и от загруочного диска, который мог бы установить основу системы. Я буду использовать свою текущую систему Linux для построения своей собственной.
В то время эта сумасбродная идея казалась невыполнимой. Однако после разрешения различного рода проблем, таких как например проблемы зависимости и ошибки при компиляции, моя новая система стала полностью работоспособной. Я назвал ее Linux From Scratch < Linux из ничего >, сокращенно LFS.T
Надеюсь, вы получите удовольствие, работая над системой LFS.
--
Герард Бикманс
gerard@linuxfromscratch.org
Назад | Домой | Вперед |
Пролог | Наверх | Кому эта книга будет интересна |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Пролог | Вперед |
Значительное число приложений включены в Часть 2 (это немного увеличивает объем книги). Это облегчает чтение. Таким образом, не нужно все время заглядывать в Приложения при прочтении Части 2. Это очень неудобно, особенно если читать txt версию книги. Данная книга поделена на разделы следующим образом:
Часть 1 содержит информацию о содержании книги (исправления, где скачать книгу, Changelog, списки рассылки и иную контактную информацию). Часть 1 также дает информацию о литературе, рекомендуемой для прочтения перед установкой LFS.
Часть 2 будет служить ориентиром при построении и инсталляции LFS системы. Получившаяся система будет служить фундаментом, ядром для установки остальных компонентов системы.
Часть 3 содержит различные приложения.
Назад | Домой | Вперед |
Кому эта книга будет неинтересна | Наверх | Часть 1 - Вступление |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Назад |
Назад | Домой | Вперед |
Linux From Scratch | Предисловие |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Пролог | Вперед |
Если у вас нет желания собирать Linux с нуля, тогда, наверное, эта книга не для вас. Наша цель - построение полной и практичной фундаментальной системы. Если все что вас интересует, это узнать, что происходит при загрузке системы, рекомендуем "From Power Up To Bash Prompt" HOWTO. Это руководство описывает процесс построения голой системы, похожей на нашу, но ставит задачу лишь создать систему, способную загрузиться в оболочку BASH.
Выбирая что читать, ясно определите для себя цель. Если вы хотите построить Linux систему, изучая ее по ходу дела, эта книга для вас. Если ваша цель сугубо познавательная, и вы не планируете создать готовую систему, тогда ваш выбор "From Power Up To Bash Prompt" HOWTO.
"From Power Up To Bash Prompt" HOWTO находится по адресу http://www.netspace.net.au/~gok/power2bash/.
Назад | Домой | Вперед |
Кому будет интересно читать эту книгу | Наверх | Организация |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Пролог | Вперед |
Существует ряд причин, по которым эта книга может представлять интерес. Основная из них - установка системы LFS. Возникает резонный вопрос, "Зачем мучаться, собирая Linux систему по частям, в то время как можно скачать и установить уже готовую?". Хороший вопрос.
Важное назначение LFS - помочь людям познать функционирование Linux изнутри. Построение системы LFS показывает, что заставляет Linux работать, как работают ее компоненты и как они друг от друга зависят. И наконец, вероятно важнее всего, как настроить Linux под себя, в соответствии со своими вкусами и потребностями.
Основное преимущество LFS состоит в том, что вы получаете больше контроля над системой, не полагаясь на чью-то Linux разработку. Использую LFS, вы определяете ее структуру и ее компоненты, в частности структуру директорий и загрузочные скрипты. Вы указываете как, куда и для чего устанавливать программы.
Другое преимущество системы LFS - возможность собрать наиболее компактную систему. Обычные дистрибутивы зачастую устанавливают на вашем компьютере огромное количество программ, которые наврядли будут использоваться впоследствии. Они будут просто напросто занимать (драгоценное?) место на диске, в то время как не составляет труда уместить систему LFS на разделе в 100MB. Все равно слишком много? Некоторые участники проекта разработали сверхкомпактную систему LFS. Была собрана система, позволяющая работу вебсервера Apache, которая занимала лишь 8 мегабайт. Дальнейшее урезание системы позволит сократить ее объем до 5 мегабайт. Вряд ли этого удастся достичь, используя обычный дистрибутив.
Давайте сравним дистрибутив Linux с гамбургером из закусочной, когда вы точно не знаете, что именно едите. LFS, в свою очередь, дает вам не гамбургер, а рецепт его приготовления. Внимательно изучив его, можно убрать ненужные ингредиенты и для насыщения вкуса добавить свои. Как только вы довольны рецептом, можете смело приступать к приготовлению гамбургера. На этом этапе также есть выбор: можно его поджарить на огне, во фритюре, запечь, или съесть сырым.
Также LFS можно сравнить с построенным домом. LFS предоставляет план дома, а строить его вам. Разумеется, можно изменять план по ходу дела.
Немаловажное преимущество индивидуальной системы Linux - безопасность. При компиляции всей системы из исходных кодов вы получаете возможность проверять все компоненты системы и по мере необходимости инсталлировать патчи. Больше нет необходимости ждать, пока кто-то выпустит бинарный пакет, устраняющий дыру в безопасности системы. Нет гарантии, что новый пакет был собран корректно и адекватно устраняет проблему, если вы самостоятельно не изучили и не собрали патч. Чтобы быть уверенным в том, что дыра в безопасности устранена, необходимо установить патч вручную.
Назад | Домой | Вперед |
Предисловие | Наверх | Кому эта книга будет неинтересна |
Хотите, что бы вас посчитали как пользователся LFS - загляните на страницу счетчика http://linuxfromscratch.org/cgi-bin/lfscounter.cgi и зарегистрируйтесь как пользователь LFS. Введите свое имя и версию вашей системы , которую вы создали и возможно будете пользоваться.
Теперь давайте перезагрузимся в нашу систему...
Теперь все по установлено, загрузочные скрипты созданы, и настало время перезагрузить компьютер Перед этим надо размонтировать $LFS/proc и саму $LFS партицию. запустив следующее:
umount $LFS/proc && |
Если вы создали систему со множеством партиций, вы должны размонтировать их тоже перед тем, как размонтируете партицию $LFS :
umount $LFS/proc && |
И теперь перезагрузить систему используя что-то типа:
/sbin/shutdown -r now |
В строке приглашения LILO, убедитесь, что вы загружаете lfs систему, даже если она загружается и не по умолчанию.
После перезагрузки вы можете начать работу в вашей собственной системе, устанавливать дополнительное ПО и т.д.
Единственная последняя вещь, которую вы, может быть, захотите сделать - это запустить lilo на предмет запуска с вашего HDD. Мы опишем инсталяцию lilo в MBR вашего диска. На разных системах могут быть незначительные отличия. В любом случае, сверяйтесь с документацией, в случае, если вам надо включить дополнительные опции.
В любом случае запустите следующую комманду для того, что бы убедиться в том, что lilo установлено:
/sbin/lilo |
Возможно вам понадобиться удалить статические директории. Если надо, то перечитайте Главу 5 , затем сохраните статические директории (backup) перед их удалением. Для удаления статических директорий выполните следующее:
rm -rf /static |
Ну вот, вы закончили создание вашей собственной LFS системы, и, теперь хотите поставить дополнительное ПО, например веб-браузер или почтовый клиент. Первое, посмотрите проект Beyond Linux From Scratch в котором можете найти разные примеры: http://beyond.linuxfromscratch.org/. Вякие примочки и дополнителные описания могут быть найдены здесь: http://hints.linuxfromscratch.org/hints.shtml. В случае, если вы новичок не только в LFS, но и в Linux системах вообще, то есть смысл почитать советы для новичков: http://hints.linuxfromscratch.org/hints/newbie.txt - очень интересно.
Помните, что существуют списки рассылки по системам LFS, на которые вы можете подписаться для получения помощи. Смотрите Глава 1 - Списки рассылки и архивы для детальной информации .
Теперь, мы благодарим вас за использование книги по LFS и надеемся, что вы нашли ее
полезной в использовании и сохранили ваше (да и наше) время ...
;-)
Все! Вы только что закончили установку вашей LFS системы. Это был долгий процесс, но мы надеемся он завершился благополучно. Мы думаем, вы получили много удовольствия при создании вашей новой linux системы... ;) .
Теперь пришло время убрать из вышей системы все отладочные данные из бинарников вашей LFS системы. Если вы не программист и не планируете использовать отладчик при отладке программ, то вы будете обрадованы возможностью убрать несколько десятков мегабайт, при далении отладчиков. Перед запуском этого процесса убедитесь, что все необходимое вам ПО полностью настроено, и вы более не захотите его перекомпилировать или отлаживать .
ВНИМАНИЕ: 98% людей не испатывают проблем с методом описанны ниже. Но так или иначе, сделайте архив вашей LFS системы перед запуском этой комманды. Это действительно хороший момент, дабы сделать бэкап всей системы и конфигов. После компиляции возможны некоторые необычные моменты (в основном повреждение модулей ядра, dynamic & shared libraries). Могут быть и другие проблемы вызванные данной коммандой.
Как уже говорилось, опция --strip-debug используется для удаления отладочной информации которая нам никогда не понадобится. Это не вырезает всю ее из файлов. Так же можно попробовать применить опцию --strip-all на обычных программах, не использующих библиотек (не используйте это на libraries - они могут быть уничтожены) но это не безопасно, да и место которое вы выиграете не стоит того. Но если вам важен каждый байт на диске, то используйте это на собственный страх и риск. Перечитайте 7 раз страницу man по strip (и его опциям которые вы хотите использовать). Главная идея не запускать strip на libraries (кроме как --strip-debug) и все будет нормально.
find $LFS/{,usr/,usr/local/}{bin,sbin,lib} -type f \ |
Хорошая мысль создать файл $LFS/etc/lfs. Имея этот файл вы можете легко
определить , каккую версию LFS вы используете. Занесите в него текущий номер
этого мануала, и вы всегда будете знать, по какой версии документа искать помощь
в случае чего...
;-)
Создайте файл используя следующую комманду
:
echo 4.0 > $LFS/etc/lfs |
Система должна знать о партициях, которые есть в системе и о порядке их монтирования. Все партиции и порядок их мотирования перечисляется в файле /etc/fstab. Создадим такой файл /etc/fstab содержащий следующее:
cat > /etc/fstab << "EOF" # Begin /etc/fstab # filesystem mount-point fs-type options dump fsck-order /dev/*LFS* / *fs-type* defaults 1 1 /dev/*swap* swap swap pri=1 0 0 proc /proc proc defaults 0 0 # End /etc/fstab EOF |
*LFS*, *swap* and *fs-type* должны быть заменены правильными значениями (например /dev/hda2, /dev/hda5 и reiserfs).
Когда добавляется партиция reiserfs, то значение 1 1 в конце строки должно быть заменено на 0 0.
Для более детальной информации значения полей в файле fstab смотрите man 5 fstab.
Рассмотрим другие строки, которые, возможно, вам придется добавить в ваш файл fstab . Для примера рассмотрим возможность включения devpts:
devpts /dev/pts devpts gid=4,mode=620 0 0 |
Другой пример, строка, позволяющая использовать устройства USB :
usbdevfs /proc/bus/usb usbdevfs defaults 0 0 |
Обе опции будут работать только в случае, если вы вкомпилировали в ядро возможность подключения данных устройств.
Эта глава описывает шаги, необходимые для того, чтобы сделать вышу систему загрузочной. Здесь рассказывается о создании файла fstab, компиляции нового ядра для LFS смстемы, добавления необходимых значений в LILO, дабы вы увидели в строке приглашения возможность выбора LFS системы из списка.
Приблизительное время компиляции со всеми опциями по умолчанию: 4.20 SBU |
Построение ядра включает в себ несколько шагов: конфигурация и компиляция ядра. Есть несколько путей для конфигурации ядра. Если вам не нравится путь, описываемый здесь, то читайте README поставляемый с исходниками нового ядра, и ищите другие опции.
Необходимые телодвижения которые вы должны совершить, это взять файл .config из дистрибутива исходников ядра и скопировать его в $LFS/usr/src/linux-2.4.19. В этом случае вам нет необходимости конфигурировать отдельные опции, и возпользоваться значениями по умолчанию. Если вы хотите сделать так, то сначала запустите комманду make mrproper затем скопируйте файл .config снова, и запустите make menuconfig; далее запустите комманду make oldconfig (может быть лучше в некоторых ситуациях. Смотрите README для более детальной информации по использованию make oldconfig).
Если вы внимательно используете модули для ядра, то вы должны подправить файл /etc/modules.conf. Информация имеющая отношение к модулям и конфигурации ядра в основном находится в документации к ядру, которая находится в каталоге /usr/src/linux-2.4.19/Documentation. Страница man page по modules.conf и файлы документации kernel HOWTO в http://www.tldp.org/HOWTO/Kernel-HOWTO.html могут так-же быть полезными.
Необходимо запустить следующие комманды для построения нового ядра:
make mrproper && |
Примечание: путь arch/i386/boot/bzImage может различаться в зависимости от платформы.
Последняя проверка на версии 2.4.17.
Bash: sh
Binutils: ar, as, ld, nm, objcopy
Fileutils: cp, ln, mkdir, mv, rm, touch
Findutils: find, xargs
Gcc: cc1, collect2, cpp0, gcc
Grep: grep
Gzip: gzip
Make: make
Gawk: awk
Modutils: depmod, genksyms
Net-tools: dnsdomainname, hostname
Sed: sed
Sh-utils: basename, date, expr, pwd, stty, uname, whoami, yes
Textutils: cat, md5sum, sort, tail
Для того, что бы иметь возможность запускать LFS систему мы должны обновить наш загрузчик. Мы предполагаем, что ваша системы использует Lilo (наиболее распространенный загрузчик на данный момент).
Мы не будем запускать программу lilo из-под chroot. Запуск lilo под chroot можт вызвать фатальные последствия с уничтожением или повреждением MBR, и мы будем использовать загрузочную дискету для запуска любых LFS систем .
Первое, мы должны выйти из режима chroot и скопировать файл ядра lfskernel в основную систему :
logout cp $LFS/boot/lfskernel /boot |
Следующий шаг - добавление записи в файл /etc/lilo.conf дабы мы могли выбрать нашу LFS систему при загрузке компьютера:
cat >> /etc/lilo.conf << "EOF" image=/boot/lfskernel label=lfs root=<partition> read-only EOF |
Значение <partition> должно быть заменено значением партиции на котором размещено ядро LFS .
Так же, если вы используете reiserfs для основной партиции, что значение read-only надо заменить на read-write.
Теперь обновим загрузчик запустив следующее:
/sbin/lilo -v |
Последний шаг - синхронизация конфигурации lilo на дискете и на LFS системе:
cp /etc/lilo.conf $LFS/etc && |
Частью установки скриптов, относящихся к localnet, является установка имени компьютера. Это требуется для правильной настройки /etc/sysconfig/network.
Создайте файл /etc/sysconfig/network file и введите имя компьютера запустив следующее:
echo "HOSTNAME=lfs" > /etc/sysconfig/network |
"lfs" может быть заменено другим именем компьютера (как захотите, мы используем для примера имя lfs. Вам не надо вводить полное имя FQDN (Fully Qualified Domain Name).Эта информация будет храниться в файле /etc/hosts. Мы запишем ее позже.
Если сетевая карта сконфигурирована, то вы должны определить IP адрес для системы и возможные алиасы (дополнительные имена) для использования в файле /etc/hosts. Синтакс следующий:
<IP address> myhost.mydomain.org aliases |
Убедитесь, что введенный IP адрес системы является частью правильного адресного пространства, типа:
Class Networks |
Правильный IP адрес может быть 192.168.1.1. Правильное полное имя системы для этого IP может быть www.linuxfromscratch.org.
Если вы не хотите импользовать сетевую карту, то вы таки должны ввести полное имя системы (FQDN)для правильной работы некоторых программ.
Если у вас не планируется использование сетевой карты, создайте следующий файл: /etc/hosts запустив команду:
cat > /etc/hosts << "EOF" # Begin /etc/hosts (no network card version) 127.0.0.1 www.mydomain.com <value of HOSTNAME> localhost # End /etc/hosts (no network card version) EOF |
Если у вас есть сетевая карта и она настроена, или вы планируете использовать сетевую карту, то создайте следующий файл /etc/hostsиспользуя такую команду:
cat > /etc/hosts << "EOF" # Begin /etc/hosts (network card version) 127.0.0.1 localhost.localdomain localhost 192.168.1.1 www.mydomain.org <value of HOSTNAME> # End /etc/hosts (network card version) EOF |
Естественно, адрес 192.168.1.1 и www.mydomain.org надо заменить на адрес и имя, которое вам больше нравится (или требуется ввести адрес и имя, которое попросил ввести сетевой/системный администратор и планируется, что эта машина будет частью существующей сети.
Эта глава описывает конфигурацию скриптов, о которых было рассказано в 6 главе. Большинство из тех скриптов будут работать и без дополнительных настроек, но некоторые требуют дополнительной конфигурации, т.к. они зависят он аппаратной конфигурации.
Назад | Домой | Вперед |
Конфигурация загрузочных скриптов | Наверх | Как происходит процесс загрузки с этими скриптами? |
Если вы решили вкомпилить вашу раскладку (keymap) напрямую в ядро, вернитесь в конец 6-й главы, где вам четко сказано, что не требуется его (скрипт) запускать, если вы уже вкомпилили раскладку (keymap) в ядро. Но вы можете запустить крипт если хотите - ничего страшного. Это может потребоваться в случае, если у вас есть несколько разных ядер, и вы непомните: вкомпилировали-ли вы в каждое ядро раскладку.
Если вы решили, что вам это не надо, или вы нехотите использовать скрипт
loadkeys удалите этот
/etc/rc.d/rcsysinit.d/S70loadkeys
симлинк.
Эта часть нужна для настройки сетевой карты.
Если у вас нет сетевой карты, вам не требуется создавать или настраивать файлы, относящиеся к сетевой карте. В этом случае удалите симлинк network из всех директорий (/etc/rc.d/rc*.d)
Если ваш компьютер является частью сети вам потребуется указать шлюз используемыу по умолчанию для вашего компьютера. Это делается добaвлением следующих значений в файл /etc/sysconfig/network. Запустите такую комманду:
cat >> /etc/sysconfig/network << "EOF" GATEWAY=192.168.1.2 GATEWAY_IF=eth0 EOF |
Значения для GATEWAY и GATEWAY_IF надо изменить на установки вашей сети. GATEWAY должени содержать IP адрес шлюза по умалчанию, и GATEWAY_IF указывать на интерфейс сетевой карты через который испоьзовать доступ к шлюзу по умолчанию.
Какой сетевой интерфейс будет запускаться и останавливаться сетевыми скриптами зависит от файлов расположенных в директории /etc/sysconfig/network-devices. Эта директория должна содержать файлы в формате ifconfig.xyz, где xyz- имя сетевого интерфейса (например eth0 или eth0:1).
Если вы решили переименовать или переместить директорию /etc/sysconfig/network-devices , убедитесь, что вы поправили файлы в /etc/sysconfig/rc на предмет новых путей к сетевым устройствам в скриптах.
Теперь, новые файлы созданные в директории /etc/sysconfig/network-devices содержат следующее. Этой командой создадим пример файла ifconfig.eth0 Now, new files are created in that directory containing the following. :
cat > /etc/sysconfig/network-devices/ifconfig.eth0 << "EOF" ONBOOT=yes IP=192.168.1.1 NETMASK=255.255.255.0 BROADCAST=192.168.1.255 EOF |
Естественно, значения этих переменных должны быть изменены в каждом файле на правильные настройки. Евсли переменная ONBOOT установлена yes, то скрипт выполнится при загрузке системы. Если установлено что нить отличное от yes, то скрипт не выполнится.
Скрипт setclock считывает информацию о времени из BIOS компьютера и коныертирует его во время вашего часового пояса используя файл /etc/localtime (если значение в BIOS соответствует GMT) или нет (если значение в BIOS соответствует местному времени). Само ничего не конфигурируется (это вам не винда), поэтому лезем править сами:
Измените значение переменной UTC отличной от 0 (нуля) в случае, если ваши чася не установлены по времени GMT.
Создайте файл /etc/sysconfig/clock запустив следующую комманду:
cat > /etc/sysconfig/clock << "EOF" # Begin /etc/sysconfig/clock UTC=1 # End /etc/sysconfig/clock EOF |
Теперь вы можете посмотреть на неплохие примеры, позволяющие лучше понять механизм установки временной зоны на LFS http://hints.linuxfromscratch.org/hints/time.txt. Там объясняются такие понятия как timezones, UTC, и переменная окружения TZ.
Скрипт sysklogd вызывает программу syslogd с опцией -m 0 Эта опция выключает переодические записи mark в лог файлы каждые 20 минут (значение по умолчанию). Если вы хотитите включить переодические записи mark подредактируйте скрипт sysklogd на предмет необходимых изменений. Смотрите man syslogd для более детальной информации.
LINUX использует специальную возможность загрузки именуемой SysVinit Она основана на концепции runlevels. Они могут различаться от системы к системе, но это будет работать в дистрибутиве <вставьте его имя здесь> и в системах типа LFS. LFS имеет собственный путь в конфигурации, но мы уважаем стандарты.
SysVinit (мы называем init с этого места) работает используя схему runlevels. Всего их 7 (от 0 до 6). Может быть и более чем 7, но они создаются в отдельных случаях и в обыных системах не работают. Страница man для init описыват такие случаи. Каждый из уровней runlevels соответствует необходимам вещам, которые компьютер должен выполнить при загрузке этого уровня (runlevels). По умолчанию используется уровень 3 (runlevels). Далее приводится описание кажого уровня (runlevels) и небольшое описание:
0: halt the computer - выключить копмьютер
1: single-user mode - однопользовательский режим
2: multi-user mode without networking - многопользовательский режим без сети
3: multi-user mode with networking - многопользовательский режим с сетевыми установками
4: зарезервирован для создания, своего иначе используется так, как 3
5: Так-же как 4, только с использованием GUI входа в систему (например X'ы xdm или KDE's kdm)
6: перезагрузка компьютера
Комманда для изменения runlevels - init <runlevel> где <runlevel> целевой номер runlevel. Для примера: перезагрузить компьютер можно используя комманду init 6. Комманда reboot только алиас для init 6, как и комманда halt алиас для init 0.
Дирестории, находящиеся в поддиректории /etc/rc.d выглядят как /rc?.d, где d-это номер runlevel и rcsysinit.d который содержит число символических ссылок. Неоторые начинаются на К, другие на S, и все из них имеют двухсимольную цифру, следующую после начальной буквы. Буква К означает останов (kill) службы, а S означает запуск службы. Число после буквы означает порядок, в котором скрипты будут запускаться. Числа могут иметь значения от 00 до 99, и чем меньше число, тем раньше запуститься скрипт. Когда init переключается на другой уровень, то службы предназначенные для одного runlevel`a убиваются, и другие запускаются.
Главные скрипты располагаются в директории /etc/rc.d/init.d. Они выполняют всю работу и все симлинки указывают на них. Симинки для запуска и остановки указывают на скрипт в директории /etc/rc.d/init.d с таким же именем. Поэтому скрипты могут быть вызваны с различными параметрами, например start, stop, restart, reload, status. Когда скрипту передается аргумент stop, то вызывается К симлинк. Когда скрипту передается аргумент start, то вызывается S симлинк.
Есть только одно исключение. симлинки начинающиеся с S в директориях rc0.d и rc6.d не могут быть запущены никогда. Они могут бать вызваны только с параметром stopдля остановки чего либо. Логика состоит в том, что если вы перезапустили или остановили систему, вам не надо запускать что либо, а только остановить систему.
Здесь предоставлены описания аргументов, передаваемых в скрипты, и заставляющих их выполнять что либо:
start: Запуск службы
stop: Останов службы
restart: Перезагрузка службы. Сначала останов службы, потом запуск.
reload: Обновить конфигурацию службы. Используется когда конфигурационный файл данной службы был изменен. Перезапуск службы не требуется.
status: Опросить службу. Выдается информация о том, запущена служба или нет, ее PIDs.
Почувствуйте свободу в создании собственных процессов загрузки (на вашей собственной системе LFS). Все поля, данные здесь - лишь примеры, о том, как лучше сделать (если вы знаете, что вам надо - сделайте так, как вы хотите).
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Большинство программ и библиотек по умолчанию компилируются с символами отладки. ( с опцией gcc -g).
При отладке программы или библиотеки, скомпилированной с отладочной информацией, отладчик предоставляет не только адреса в памяти, но и имена алгоритмов и переменных.
Однако включение символов отладки значительно увеличивает размер программы или библиотеки. Для того, чтобы получить представление о размере отладочных символов, взглянем на пример:
оболочка bash, скомпилированная с отладочными символами: 1200 KB
оболочка bash, скомпилированная без отладочных символов: 480 KB
файлы glibc и gcc (/lib и /usr/lib) с отладочными символами: 87 MB
файлы glibc и gcc скомпилированная без отладочных символов: 16 MB
Размеры могут различаться в зависимости от использованного компилятора Си и библиотеки. При сопоставлении размера программы, скомпилированной с отладочными символами и без них, разница составляет примерно 2 - 5 раз.
Так как большинство пользователей никогда не используют отладчик, удаление этих символов позволит значительно сэкономить дисковое пространство.
Для удаления символов отладки из бинарного файла (файл a.out или бинарный файл ELF), выполните strip --strip-debug filename. Допускается использование символа * для обработки нескольких файлов (например, strip --strip-debug $LFS/static/bin/*).
Для удобства, в главе 9 описана программа, удаляющая отладочные символы со всех программ и библиотек системы. Для получения дополнительных сведений по оптимизации, см. руководство: http://hints.linuxfromscratch.org/hints/optimization.txt.
Назад | Домой | Вперед |
Вступление | Наверх | Вход в среду chroot |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Первое что мы сделаем в режиме пользователя root - передадим права файлов и директорий, установленных в Главе 5, пользователю root. Это необходимо, т.к. когда в дальнейшем мы оставим директорию /static добавим несколько пользователей, один из них может оказаться владельцем программы со статическими ссылками, а это не самая лучшая идея.
Выполните следующую команду для передачи прав на все программы, скомпилированные с использованием статических ссылок:
chown -R 0:0 /static |
Эта команда использует "0:0" вместо "root:root", т.к. оболочка не может резольвировать имя "root", т.к. пакет glibc еще не был установлен.
Назад | Домой | Вперед |
Вход в среду chroot | Наверх | Создание директорий |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Вперед |
Назад | Домой | Вперед |
Установка Util-linux-2.11u | Наверх | Вступление |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Для последующей инсталляции пакетов необходимо войти в среду chroot. Для этого войдите в систему в режиме пользователя root, т.к. только root он имеет право выполнять команду chroot.
После перехода в режим пользователя root, выполните следующую команду для входа в среду chroot:
chroot $LFS /static/bin/env -i \ HOME=/root TERM=$TERM PS1='\u:\w\$ ' \ PATH=/bin:/usr/bin:/sbin:/usr/sbin:/static/bin \ /static/bin/bash --login |
Команда env с опцией -i очистит значения всех переменных среды chroot. Затем только переменные HOME, TERM, PS1 и PATH будут заданы. Конструкция TERM=$TERM устанавливает значение TERM для среды chroot равным значению TERM вне этой среды; эта переменная необходима для корректной работы программ типа vim и less. Если вы нуждаетесь в других переменных, например CFLAGS или CXXFLAGS, самое время задать их снова.
Отныне нет необходимости использовать переменную LFS, т.к. все действия выполняются в файловой системе LFS (то, что оболочка считает / , на самом деле является /mnt/lfs).
Обратите внимание, что все команды, начиная с данной главы, следует выполнять из среды chroot. Если по какой-то причине (например, перезагрузка системы) вы вышли из этой среды, прежде чем возобновить инсталляцию, заново войдите в нее и монтируйте файловую систему proc (см. далее).
Заметьте, что приглашение bash выглядит следующим образом: "I have no name!" Это нормально, т.к. пакет Glibc еще не был установлен.
Назад | Домой | Вперед |
Отладочные символы | Наверх | Изменение прав |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Некоторые программы при компиляции прописывают ссылки на пока не существующие программы. Для предотвращения связанных с этим проблем, создадим символические ссылки /bin/bash и /bin/sh, указывающие на программу bash, скомпилированную с использованием статических ссылок.
Для создания символических ссылок /bin/bash и /bin/sh, выполните:
ln -s /static/bin/bash /bin/bash && ln -s bash /bin/sh |
Назад | Домой | Вперед |
Создание символической ссылки mtab | Наверх | Создание файлов passwd и group |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Давайте создадим структуру файловой системы LFS. Начнем с создания более или менее стандартного дерева с помощью следующих команд:
mkdir -p /{bin,boot,dev/pts,etc/opt,home,lib,mnt,proc} && mkdir -p /{root,sbin,tmp,usr/local,var,opt} && for dirname in /usr /usr/local do mkdir $dirname/{bin,etc,include,lib,sbin,share,src} ln -s share/{man,doc,info} $dirname mkdir $dirname/share/{dict,doc,info,locale,man} mkdir $dirname/share/{nls,misc,terminfo,zoneinfo} mkdir $dirname/share/man/man{1,2,3,4,5,6,7,8} done && mkdir /var/{lock,log,mail,run,spool} && mkdir -p /var/{tmp,opt,cache,lib/misc,local} && mkdir /opt/{bin,doc,include,info} && mkdir -p /opt/{lib,man/man{1,2,3,4,5,6,7,8}} && ln -s ../var/tmp /usr |
По умолчанию директории создаются с правами доступа 755, однако это подходит не для всех директорий. Мы сделаем два изменения: для домашнего каталога root и для каталога временных файлов.
chmod 0750 /root && chmod 1777 /tmp /var/tmp |
Первое изменение гарантирует, что не все пользователи имеют доступ к директории /root directory -- аналогичные действия выполняет обычный пользователь со своим домашним каталогом. Второе изменение дает любому пользователю право на запись в директории /tmp и /var/tmp, однако не разрешает удалять из них файлы других пользователей. Удаление чужих файлов определяется параметром "sticky bit" -- наивысший двоичный знак в двоичной маске 1777.
Итак, после создания директорий переместите tar-архивы исходных кодов пакетов, загруженных по инструкциям Главы 3, в некоторый самостоятельно созданный подкаталог в /usr/src.
При создании директорий мы основывались на стандарте FHS (см. http://www.pathname.com/fhs/). Помимо созданных каталогов данный стандарт ставит условием наличие каталогов /usr/local/games и /usr/share/games, но, по нашему мнению, для базовой системы они не нужны. Однако можете смело привести свою систему к полному соответствию с FHS. Что касается структуры каталога /usr/local/share, стандарт FHS строго не оговаривает его содержимое, так что мы решили создать в нем необходимые, по нашему убеждению, подкаталоги.
Назад | Домой | Вперед |
Изменение прав | Наверх | Монтирование файловой системы proc |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
В этой главе мы всерьез займемся установкой системы LFS. Сначала мы войдем в созданную в предыдущей главе мини-систему Linux, создадим несколько вспомогательных вещей и перейдем к поочередной инсталляции всех пакетов.
Инсталляция программ довольно однообразна. Вероятно, можно было бы дать общие инструкции установки, а более подробно пояснять установку тех пакетов, которые требуют иного подхода. Однако мы решили предоставить полное руководство по установке для каждого пакета с целью минимизации возможных ошибок.
Если вы собираетесь воспользоваться оптимизациями компилятора в данной главе, см. соответствующее руководство по адресу http://hints.linuxfromscratch.org/hints/optimization.txt. Оптимизации компилятора позволяют ускорить выполнение той или иной программы, однако иногда они создают трудности при компиляции. В случае если пакет не компилируется с использованием оптимизаций, попробуйте скомпилировать его без них.
Настоятельно рекомендуется строго соблюдать порядок инсталляции пакетов в данной главе для того, чтобы не включить в программу ссылку на каталог /static. По той же причине, ни в коем случае не компилируйте несколько пакетов одновременно. Параллельная компиляция хоть и позволяет сэкономить время (особенно на двухпроцессорных системах), однако в этом случае в программу может быть встроена ссылка на каталог /static. После удаления данного каталога, программа будет давать сбои.
Назад | Домой | Вперед |
Установка основных компонентов системы | Наверх | Отладочные символы |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.07 SBU |
Примите к сведению, что при распаковке архива MAKEDEV-1.7.bz2 не создается директория для перехода, т.к. архив содержит только файл скрипта.
Подготовим создание файлов устройств следующей командой:
cp MAKEDEV-1.7 /dev/MAKEDEV && |
Большинство пользователей захотят сразу же создать файлы устройств командой:
./MAKEDEV -v generic |
Однако, если вы планируете использовать devpts, выполните:
./MAKEDEV -v generic-nopty |
Если вы не уверены в своих действиях, для создания всех необходимых устройств лучше выполнить команду ./MAKEDEV -v generic. В случае, если вы уверены, что собираетесь использовать devpts, вторая команда пропускает создание ненужных устройств.
MAKEDEV создает устройства с hda[1-20] по hdh[1-20] и многие другие подобные файлы дисковых узлов, однако имейте ввиду, что из-за ограничений ядра на максимальное количество разделов многие из них будут недоступны.
./MAKEDEV -v generic: Эта команда создает огромное количество файлов устройств. Обычно, это все, что вам нужно. Однако существует вероятность, что некоторые специфические файлы для ваших аппаратных устройств отсутствуют. Их можно создать командой ./MAKEDEV -v <устройство>. Опция generic-nopty в создает, в основном, те же устройства, что и опция generic, за исключением тех, которые не нужны при использовании devpts.
Последняя проверка: версия 1.5.
Bash: sh
Fileutils: chmod, chown, cp, ln, mknod, mv, rm
Grep: grep
Sh-utils: expr, id
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Следующий шаг - создание символической ссылки /etc/mtab на /proc/mounts. Для этого выполните:
ln -sf /proc/mounts /etc/mtab |
Создание этой символической ссылки предотвращает возможные проблемы при монтировании / только для чтения, когда информация в /etc/mtab устарела. Символическая ссылка на /proc/mounts позволяет всегда иметь свежую информацию о монтированных устройствах.
Примечание: Использование данной символической ссылки предполагает, что в ядро вашей системы встроена поддержка файловой системы proc. Данная поддержка встроена по умолчанию, не удаляйте ее, если вы не уверены в своих действиях, т.к. множество других вещей кроме символической ссылки /etc/mtab зависят от нее. Вкратце, убедитесь, что поддержка файловой системы proc включена в ядре.
Назад | Домой | Вперед |
Монтирование файловой системы proc | Наверх | Создание символических ссылок bash и sh |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Для обеспечения корректной работы некоторых программ, необходимо установить файловую систему proc в среде chroot. Так как файловая система может быть монтирована сколько угодно раз и в каких угодно местах, проблем с тем, что файловая система proc уже монтирована в вашем базовом дистрибутиве, возникнуть не должно. Тем более, что proc - виртуальная файловая система.
Для монтирования файловой системы proc в /proc, выполните:
mount proc /proc -t proc |
Вероятно, следующие предупреждения команды mount будут выведены на экран:
warning: can't open /etc/fstab: No such file or directory not enough memory
Не обращайте на них особого внимания - наша система полностью не установлена, и некоиторые файлы отсутствуют. Само монтирование файловой системы будет выполнено, и на данном этапе нам больше ничего не требуется.
Назад | Домой | Вперед |
Создание директорий | Наверх | Создание символической ссылки mtab |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Для возможности входа в систему под учетной записью root и для распознавания оболочкой имени "root", необходимо создать соответствующие записи в файлах /etc/passwd и /etc/group.
Для создания файла /etc/passwd, выполните:
echo "root:x:0:0:root:/root:/bin/bash" > /etc/passwd |
Пароль для root ( "x" всего лишь метка заполнения) будет задан позже.
Для создания файла /etc/group, выполните:
cat > /etc/group << "EOF" root:x:0: bin:x:1: sys:x:2: kmem:x:3: tty:x:4: tape:x:5: daemon:x:6: floppy:x:7: disk:x:8: lp:x:9: dialout:x:10: audio:x:11: EOF |
Созданные группы не относятся ни к какому стандарту - их использует скрипт MAKEDEV, см. след. секцию. Помимо группы "root", стандарт LSB рекомендует наличие только группы "bin", с GID <идентификатор группы> равным 1. Все остальные названия групп и их GID пользователю разрешается выбирать произвольно, т.к. грамотно написанные программы не зависят от номеров GID, а используют название группы.
Назад | Домой | Вперед |
Создание символических ссылок bash и sh | Наверх | Создание устройств (Makedev-1.7) |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.02 |
На данном этапе мы не будем компилировать ядро -- мы сделаем это после установки всех пакетов. Однако, в связи с тем, что некоторые пакеты требуют заголовочных файлов ядра, мы распакуем ядро, настроим его и скопируем заголовки туда, где их будут искать пакеты при компиляции.
Скопируем заголовки ядра, выполнив следующие команды:
ln -s /static/bin/pwd /bin/pwd && |
ln -s /static/bin/pwd /bin/pwd: В исходных кодах ядра путь к программе pwd прописан как /bin/pwd, поэтому создадим временную символическую ссылку, а в конце удалим ее.
make mrproper: Выполнение данной команды обеспечивает чистое дерево исходников ядра. Команда разработчиков ядра рекомендует выполнять эту команду перед каждой компиляцией ядра, даже если вы только что распаковали исходные коды из tar-архива.
make include/linux/version.h и make symlinks: Создадим файл include/linux/version.h file и символическую ссылку include/asm для конкретной платформы.
mkdir /usr/include/asm , cp include/asm/* /usr/include/asm и cp -R include/asm-generic /usr/include: Эти команды копируют заголовочные файлы ядра ассемблера для конкретной платформы в /usr/include/asm и /usr/include/asm-generic.
cp -R include/linux /usr/include: Эта команда копирует кросс-платформенные файлы заголовков в /usr/include.
touch /usr/include/linux/autoconf.h: Создаем пустой файл autoconf.h. Так как на данном этапе мы не конфигурируем ядро, необходимо вручную создать этот файл для некоторых заголовочных файлов ядра, использующих его, чтобы избежать ошибок при компиляции.
Раньше было принято создавать символические ссылки директорий /usr/include/{linux,asm} на /usr/src/linux/include/{linux,asm}. Однако, это была плохая идея, как объясняет Линус Торвальдс в списке рассылки ядра Linux (Linux Kernel Mailing List, отрывок):
Тем, кто компилирует новые ядра, настоятельно рекомендую: |
Наиболее важная часть сообщения Линуса заключается в том, что файлы заголовков должны быть именно теми, с которыми компилировался пакет glibc. Это те заголовки, которые следует использовать в будущем при компиляции других пакетов, т.к. именно они соответствуют файлам библиотек объектного кода. Копируя заголовки, мы удостоверяемся, что они останутся доступными, если позже мы решим обновить ядро.
Заметьте, что нет ничего страшного в том, что исходные коды ядра находятся в директории /usr/src/linux. Главное, чтобы у вас не было символических ссылок /usr/include/{linux,asm}.
Последняя проверка: версия 2.4.18.
Ядро Linuxи и его заголовочные файлы
Ядро - основа любой системы Linux. Когда компьютер включается и загружает Linux, первое, что загружается - ядро. Ядро инициализирует аппаратные компоненты системы: последовательные и параллельные порты, звуковые и сетевые карты, контроллеры IDE и SCSI и многое другое. In a nutshell the kernel makes the hardware available so that the software can run.
Это файлы, которые мы копируем в /usr/include/{linux,asm} в 5-й главе. Они должны соответствовать тем, с которым был скомпилирован glibc, и поэтому не должны быть заменены при смене ядра. Они имеют ключевое значение для компиляции многих программ.
Последняя проверка: версия 2.4.17.
Bash: sh
Binutils: ar, as, ld, nm, objcopy
Fileutils: cp, ln, mkdir, mv, rm, touch
Findutils: find, xargs
Gcc: cc1, collect2, cpp0, gcc
Grep: grep
Gzip: gzip
Make: make
Gawk: awk
Modutils: depmod, genksyms
Net-tools: dnsdomainname, hostname
Sed: sed
Sh-utils: basename, date, expr, pwd, stty, uname, whoami, yes
Textutils: cat, md5sum, sort, tail
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.01 SBU |
Последняя проверка: версия 1.52.
Различные страницы руководства, не поставляемые с пакетами
Примеры предоставляемых страниц руководства - описания всех функций C and C++, файлов /dev/ и многое другое.
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.27 SBU |
Для инсталляции Bison выполните:
./configure --prefix=/usr && |
Некоторые программы не знают о существовании bison и пытаются найти программу yacc (bison - альтернатива (предпочтительная) команде yacc). Итак, для устранения возможных проблем, создадим скрипт bash под названием yacc. Он будет вызывать команду bison и эмулировать имена выходных файлов в соответствии со стандартами yacc.
Создадим файл /usr/bin/yacc:
cat > /usr/bin/yacc << "EOF" #!/bin/sh # Begin /usr/bin/yacc exec /usr/bin/bison -y "$@" # End /usr/bin/yacc EOF |
Последняя проверка: версия 1.35.
bison и yacc
bison - генератор анализаторов синтаксиса (parser) выражений (заменяет yacc - Yet Another Compiler Compiler). Что же делает bison? Это программа, генерирующая программу, анализирующую структуру текстового файла. Вместо написания собственной программы пользователь указывает, как соотносятся объекты, и основываясь на данных правилах, создается анализатор. Существует множество примеров анализа синтаксиса, например калькулятор.
Дано выражение:
1 + 2 * 3
Человек легко получит результат 7. Почему? Because of the structure. Наш мозг знает, как интерпретировать выражение. Компьютер этого не знает, и bison инструмент, представляющий выражение компьютеру в следующем виде:
+
/ \
* 1
/ \
2 3
Начиная с вершины дерева и обрабатывая 2 and 3, соединенных знаком умножения, компьютер перемножает 2 и 3. Результат умножения запоминается и следующее, что обрабатывается - 2*3 и 1, соединенные знаком сложения. Сложение 1 и предыдущего результата дает 7. Все составные выражения могут быть преобразованы в подобное дерево и вычислены. Конечно же, bison используется не только в калькуляторах.
Мы написали скрипт bash с именем yacc, вызывающий bison с опцией -y. Это необходимо для совместимости с программами, использующими yacc вместо bison.
Последняя проверка: версия 1.31.
Bash: sh
Binutils: ar, as, ld, ranlib
Diffutils: cmp
Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm, rmdir
Gcc: cc, cc1, collect2, cpp0, gcc
Grep: egrep, fgrep, grep
Make: make
Sed: sed
Sh-utils: basename, dirname, echo, expr, hostname, sleep, uname
Texinfo: install-info
Textutils: cat, head, tr, uniq
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Chapter 6. Installing basic system software | Вперед |
Приблизительное время компиляции: 0.10 SBU |
Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.
Для инсталляции Findutils выполните:
patch -Np1 -i ../findutils-4.1.patch && |
По умолчанию, база данных updatedb находится /usr/var. Если вы хотите полного соответствия со стандартом FHS, установите ее в другом месте. Приведенные ниже команды используют совместимый с FHS файл базы данных /var/lib/misc/locatedb.
patch -Np1 -i ../findutils-4.1.patch && |
patch -Np1 -i ../findutils-4.1.patch: Этот патч исправляет некоторые ошибки при компиляции, избегая конфликта переменных и поправляя синтаксис.
Последняя проверка: версия 4.1.
bigram, code, find, frcode, locate, updatedb и xargs
bigram используется вместе с code для создания поисковых баз старого типа. Больше информации об этих программах приведено на locatedb.5 man page.
code - предшественник frcode. Он использовался в старых поисковых базах.
find ищет файлы, отвечающие заданному критерию. Если критерий не задан, выводится список файлов в текущем каталоге и каталогах нижнего уровня.
frcode вызывается updatedb для сжатия списка файлов, используя front-compression и уменьшая размер базы данных в 4-5 раз.
locate просматривает базу данных, содержащую сведения обо всех файлах и каталогах на файловой системе. Программа выводит имена файлов и каталогов в базе, совпадающие с заданным критерием. Если пользователь ищет файлы, программа просмотрит базу и сообщит, где находятся запрошенные файлы. Поиск даст результаты, только если база часто обновляется, иначе будет выдана устаревшая информация.
updatedb обновляет поисковую базу. Просматривается вся файловая система (включая все смонтированные, если не указано обратное), каждый найденный файл и каталог записывается в базу, используемую locate. Неплохо обновлять базу хотя бы раз в день, чтобы избежать ее устаревания.
xargs выполняет команду относительно списка файлов. Список должен содержать одно имя в строке.
Последняя проверка: версия 4.1.
Bash: sh
Binutils: ar, as, ld, ranlib
Diffutils: cmp
Fileutils: chmod, cp, install, mv, rm
Grep: egrep, grep
Gcc: cc1, collect2, cpp0, gcc
Make: make
Patch: patch
Sed: sed
Sh-utils: basename, date, echo, hostname
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.05 SBU |
Для инсталляции Flex выполните:
./configure --prefix=/usr && |
Некоторые программы не знают о существовании flex и пытаются найти программу lex (flex - альтернатива (предпочтительная) команде lex). Итак, для устранения возможных проблем, создадим скрипт bash под названием lex. Он будет вызывать команду flex и эмулировать lex.
Создадим файл /usr/bin/lex:
cat > /usr/bin/lex << "EOF" #!/bin/sh # Begin /usr/bin/lex exec /usr/bin/flex -l "$@" # End /usr/bin/lex EOF |
Последняя проверка: версия 2.5.4a.
flex, flex++ (ссылка на flex) and lex
flex - инструмент для генерации программ, распознающих заданные образцы в тексте. Распознавание образцов часто используется во многих приложениях. Пользователь задает правила поиска, и flex создает программу для поиска образцов. Причина, по которой люди используют flex, состоит в том, что гораздо проще задать правила, чем писать собственную программу.
flex++ вызывает версию flex, используемую для сканеров C++.
Мы создали скрипт lex, вызывающий flex с опцией -l. Это необходимо для совместимости с программами, использующими lex вместо flex.
libfl.a
Последняя проверка: версия 2.5.4a.
Bash: sh
Binutils: ar, as, ld, ranlib
Bison: bison
Diffutils: cmp
Fileutils: chmod, cp, install, ln, mv, rm, touch
Gcc: cc1, collect2, cpp0, gcc
Grep: egrep, grep
Make: make
Sed: sed
Sh-utils: echo, hostname
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.39 SBU |
Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.
Предупреждение: Ни в коем случае не выполняйте команду make uninstall для этого пакета, если вы установили патч, изменяющий определение директории libexec. Правило uninstall в скрипте Makefile выполнит команду rm -rf <libexecdir>/* . Так как мы определили директорию libexec как /usr/bin, скрипт выполнит rm -rf /usr/bin/*
Для инсталляции Gawk выполните:
patch -Np1 -i ../gawk-3.1.1-2.patch && |
patch -Np1 -i ../gawk-3.1.1-2.patch: Этот патч изменяет определение местоположения директории libexec. Он позволит нам переопределить ее с помощью опции --libexecdir к скрипту configure.
Последняя проверка: версия 3.1.1.
awk, gawk, gawk-3.1.1, grcat, igawk, pgawk, pgawk-3.1.1, pwcat
awk - символьная ссылка на gawk.
gawk - GNU реализация awk, языка поиска и обработки текстовых образцов.
grcat выполняет слияние базы групп, /etc/group.
igawk - скрипт, дающий gawk возможность включения файлов.
pgawk - профильная версия gawk.
pwcat выполняет слияние базы паролей, /etc/passwd.
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 13.26 SBU |
Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.
Этот пакет известен своим нестабильным поведением при компиляции с измененными опциями оптимизации (включая опции -march и -mcpu). GCC рекомендуется компилировать с настройками по умолчанию. Следовательно, если вы задали переменные такие как CFLAGS или CXXFLAGS, изменяющие уровень оптимизации по умолчанию, рекомендуется убрать их при сборке пакета GCC. Изменяя оптимизации для GCC, вы действуете на свой страх и риск.
Для инсталляции GCC выполните приведенные ниже команды, собирающие компиляторы языка Си и С++. Также можно установить компиляторы других языков программирования из пакета GCC. В случае, если вы хотите инсталлировать все компиляторы из пакета GCC, уберите опцию --enable-languages=c,c++ из команды configure. Для получения информации о доступных компиляторах, см документацию пакета GCC.
Примечание: инсталляция других компиляторов не тестировалась разработчиками проекта LFS.
patch -Np1 -i ../gcc-3.2.patch && |
--enable-threads=posix: Эта опция включает обработку исключений в многопоточном коде на С++.
--enable-__cxa_atexit: Эта опция позволит использовать shared-библиотеки C++ и программы, написанные на C++, с другими дистрибутивами Linux.
--enable-clocale=gnu: Существует опасность, что у некоторых пользователей будут компилироваться ABI-несовместимые библиотеки С++, если glibc localedata не установлен полностью. Использование опции --enable-clocale=gnu гарантирует корректную компиляцию во всех случаях. Если вы не хотите использовать эту опцию, удостоверьтесь, что по крайней мере, устанавливается локаль de_DE. Когда GCC находит эту конкретную локаль, выполняется верный режим локали (gnu).
Последняя проверка: версия 3.1.
c++, c++filt, cc (link to gcc), cc1, cc1plus, collect2, cpp, cpp0, g++, gcc, gccbug, gcov и tradcpp0
Компилятор C. Компилятор переводит код из текстового формата в формат, понятный компьютеру. После того, как исходный код скомпилирован в объектный файл, линкер создаст исполняемый файл из одного или нескольких объектных.
Компилятор C++, эквивалент cc, gcc etc.
Язык C++ позволяет осуществлять перезагрузку фуннкций, делая возможным написание многих функций с одним именем (с разным набором параметром). Все имена фунций C++ закодированы в низкоуровневые метки ассемблера (этот процесс известен как mangling). c++filt совершает обратное действие: низкоуровневые имена переводятся (demangling) в имена, понятные пользователю, так что линкер избегает конфликта между перезагруженными функциями.
collect2 помогает в компиляции конструкторов.
cpp осуществляет препроцессинг исходных файлов, например включает в них содержимое заголовочных файлов. Просто добавьте в ваш исходный файл строку вроде #include <filename>. Препроцессор вставит содержимое заголовочного файла.
gccbug - скрипт, облегчающий создание сообщений об ошибках.
gcov анализирует программы, чтобы помочь в создании более эффективного и быстрого кода путем его оптимизации.
На данный момент описания нет.
libgcc.a, libgcc_eh.a, libgcc_s.so, libiberty.a, libstdc++.[a,so], libsupc++.a
Файлы поддержки gcc времени исполнения.
libiberty - коллекция подпрограмм, используемых различными программами GNU, включая getopt, obstack, strerror, strtol и strtoul.
libstdc++ - библиотека C++. Она используется программами на C++ и содержит часто используемые функции. Таким образом, программисту не нужно писать стандартные фунции (например, вывод строки текста на экран) с нуля при каждом создании программы.
libsupc++ предоставляет поддержку языка программирования C++. Помимо прочего, libsupc++ содержит функции для обработки исключений.
Последняя проверка: версия 2.95.3.
Bash: sh
Binutils: ar, as, ld, nm, ranlib
Diffutils: cmp
Fileutils: chmod, cp, ln, ls, mkdir, mv, rm, touch
Find: find
Gcc: cc, cc1, collect2, cpp0, gcc
Grep: egrep, grep
Make: make
Patch: patch
Sed: sed
Sh-utils: basename, dirname, echo, expr, hostname, sleep, true, uname
Tar: tar
Texinfo: install-info, makeinfo
Textutils: cat, tail, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 14.71 SBU |
Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.
Перед выполнением инсталляционных инструкций войдите в каталог glibc-2.2.5 и распакуйте архив glibc-linuxthreads в каталоге glibc-2.2.5, а не в /usr/src.
Этот пакет известен своим нестабильным поведением при компиляции с измененными опциями оптимизации (включая опции -march и -mcpu). Glibc рекомендуется компилировать с настройками по умолчанию. Следовательно, если вы задали переменные такие как CFLAGS или CXXFLAGS, изменяющие уровень оптимизации по умолчанию, рекомендуется убрать их при сборке пакета Glibc. Изменяя оптимизации для Glibc, вы действуете на свой страх и риск.
Также не стоит запускать скрипт configure с опцией --enable-kernel. Это может вызвать ошибки сегментации при ссылке на него пакетов вроде fileutils, make и tar.
Вообщем, чтобы не рисковать, рекомендуем компилировать Glibc в точности как указано в этом разделе.
Для инсталляции Glibc выполните:
patch -Np1 -i ../glibc-2.2.5-2.patch && |
Вместо выполнения make localedata/install-locales можно установить только те локали, которые вам необходимы с помощью команды localedef. Более подробную информацию можно найти в файле INSTALL в директории glibc-2.2.5. Не забудьте создать директорию /usr/lib/local, т.к. localedef предполагает ее наличие.
На данном этапе мы не будем инсталлировать страницы руководства потоков (The Linux Threads man pages), т.к. они требуют функционирующего пакета Perl. Мы вернемся к их инсталляции после установки Perl.
Во время стадии configure на экран будет выведено следующее предупреждение:
configure: warning:
*** These auxiliary programs are missing or too old: msgfmt
*** some features will be disabled.
*** Check the INSTALL file for required versions.
Отсутствие файла msgfmt (из пакета gettext, который мы установим позже в данной главе) не вызовет никаких проблем. Файл msgfmt используется для генерирования бинарных файлов перевода, которые позволяют системе общаться на другом языке. Так как эти файлы перевода уже сгенерированы, в использовании msgfmt нет необходимости. Нам понадобился бы msgfmt лишь в том случае, если мы изменили исходники файлов перевода (файлы *.po в подкаталоге po), т.к. нам пришлось бы заново генерировать бинарные файлы.
patch -Np1 -i ../glibc-2.2.5-2.patch: Этот патч переводит все упоминания о $(PERL) на /usr/bin/perl в файле malloc/Makefile. Это необходимо, т.к. Glibc не может определить местонахождение программ Perl, так как пакет Perl еще не был установлен. Данный патч также заменяет все упоминания о root на 0 в файле login/Makefile. Это необходимо, потому что сам пакет Glibc еще не установлен, и выявление идентификационного номера пользователя <userid> из имени пользователя невозможно. К примеру, команда chown root file не будет работать, в то время как при замене имени пользователя на userid, программа будет выполнена.
Данный патч также устраняет некоторые другие ошибки, например, "errlist", "dns resolver", "xdr_array", "calloc", "thread exit", "udivdi3", "math test", "restrict_arr" и "divbyzero". Для получения более подробной информации, см. http://www.zipworld.com.au/~gschafer/lfs-tweaks.html.
touch /etc/ld.so.conf: Один из заключительных шагов установки Glibc installation - выполнение команды ldconfig для обновления динамического кэша загрузки. Если этот файл не существует, инсталляция завершится с ошибкой, что не может прочесть файл. Для избежания подобной ошибки, мы просто создаем пустой файл (в случае пустого файла, Glibc будет по умолчанию использовать каталоги /lib и /usr/lib).
--disable-profile: Отменяет компиляцию библиотек с профильной информацией. Если вы собираетесь использовать профили, пропустите эту опцию.
--enable-add-ons: Включает дополнительные модули, в нашем случае linuxthreads.
--libexecdir=/usr/bin: Инсталлирует программу pt_chown в каталог /usr/bin.
echo "cross-compiling = no" > configparms: Этой командой мы даем понять, что компилируем пакет только для нашей системы. Кросс-компиляция используется, например, для того, чтобы скомпилировать пакет для системы Apple Power PC на Intel-совместимом компьютере. Glibc по умолчанию полагает, что мы кросс-компилируем, потому что не может скомпилировать тестовую программу для проверки, т.к. сам пакет Glibc еще не установлен.
exec /static/bin/bash --login: Данная программа запустит новый сеанс оболочки bash вместо текущего. Мы, таким образом, избавимся от приглашения "I have no name!" командной строки, которое было вызвано невозможностью bash получить имя пользователя из userid (из-за отстутствия Glibc).
Последняя проверка: версия 2.2.5.
catchsegv, gencat, getconf, getent, glibcbug, iconv, iconvconfig, ldconfig, ldd, lddlibc4, locale, localedef, mtrace, nscd, nscd_nischeck, pcprofiledump, pt_chown, rpcgen, rpcinfo, sln, sprof, tzselect, xtrace, zdump и zic
catchsegv может быть использования для слежения за состоянием стека, когда выполнение программы прерывается из-за ошибки распределения памяти.
gencat генерирует каталоги сообщений.
getconf отображает значения переменных, зависящих от системной конфигурации.
getent позволяет получить записи административной базы данных.
glibcbug создает сообщение об ошибке в glibc и отправляет по указанному адресу сообщения об ошибках.
iconv осуществляет преобразование наборов символов.
iconvconfig создает конфигурационные файлы для модулей iconv.
ldconfig настраивает привязки времени исполнения динамического линкера.
ldd выводит список разделяемых библиотек, необходимых заданным программам.
lddlibc4 используется ldd при работе с объектными файлами.
locale - скрипт на Perl, разрешающий (или запрещающий) компилятору использование локалей POSIX для встроенных операций.
localedef компилирует спецификации локалей.
mtrace выводит путь multicast от источника к получателю (запрос IP trace).
nscd - демон, предоставляющий кэш для большинства запросов DNS.
nscd_nischeck проверяет нужен или нет защищенный режим для запроса NIS+.
pcprofiledump выводит информацию, полученной из профиля PC.
pt_chown устанавливает влдельца, группу и права доступа подчиненного псеводотерминала в соответствии с основным псевдотерминалом, переданном в описании `3'. Это вспомогательная программа для функции `grantpt'. Не предназначается для прямого запуска из командной строки.
rpcgen генерирует код C для реализации протокола RPC.
rpcinfo делает запрос RPC к серверу.
sln символически связывает dest и source. Программа собрана статически. Использование sln полезно для создания символических ссылок на динамические библиотеки, если система динамического связывания по какой-то причине нефункциональна.
sprof выводит информацию о разделяемом объекте.
tzselect получает от пользователя информацию от его местоположении и выводит на стандартный вывод значение текущей временной зоны.
xtrace отслеживает исполнение программы, выводя исполняемые в данный момент функции.
zdump - сохраняет значение временной зоны.
zic - компилятор временных зон.
ld.so, libBrokenLocale.[a,so], libBrokenLocale_p.a, libSegFault.so, libanl.[a,so], libanl_p.a, libbsd-compat.a, libc.[a,so], libc_nonshared.a, libc_p.a, libcrypt.[a,so], libcrypt_p.a, libdl.[a,so], libdl_p.a, libg.a, libieee.a, libm.[a,so], libm_p.a, libmcheck.a, libmemusage.so, libnsl.a, libnsl_p.a, libnss_compat.so, libnss_dns.so, libnss_files.so, libnss_hesiod.so, libnss_nis.so, libnss_nisplus.so, libpcprofile.so, libpthread.[a,so], libpthread_p.a, libresolv.[a,so], libresolv_p.a, librpcsvc.a, librpcsvc_p.a, librt.[a,so], librt_p.a, libthread_db.so, libutil.[a,so] и libutil_p.a
ld.so - вспомогательная программа для исполняемых файлов разделяемых библиотек.
Используется многими программами, например Mozilla, для использования поврежденных локалей.
libSegFault управляет сигналами ошибок распределения памяти, также пытается их перехватить.
libanl - библиотека асинхронных запросов DNS.
libbsd-compat предоставляет переносимость, необходимую для запуска некоторых программ в Linux.
Эти файлы образуют основную библиотеку C. Библиотека C - набор набор часто используемых в программах функций. Таким образом, программисту не нужно писать свои функции для каждой задачи. Большинство стандартных операций вроде вывода строки на экран уже готовы к использованию.
Библиотека C (в общем случае, любая библиотека) существует как в динамическом, так и статическом виде. Вкратце, когда программа использует статическую библиотеку, код из библиотеки копируется в исполняемый файл. При использовании динамической библиотеки, код из библиотеки не добавляется в исполняемый файл, а загружается только во время исполнения программы. Это позволяет уменьшить размер программ. За подробностями обращайтесь к документации библиотеки C.
libcrypt - криптографическая библиотека.
libdl - библиотека интерфейсов динамической линковки.
libg - библиотека времени исполнения g++.
libieee - IEEE библиотека операций с числами с плавающей запятой.
libm - математическая библиотека.
libmcheck - содержит код, выполняемый при загрузке.
libmemusage - используется memusage для сбора информации о памяти, используемой программой.
libnsl - библиотека сетевых сервисов.
Основная идея - поместить реализацию различных сервисов доступа к базам данных в отдельные модули. Преимущества:
поставщики могут добавлять новые сервисы, не включая их в C библиотеку GNU,
модули могут быть независимо обновлены,
Библиотека C имеет меньший размер.
Код, используемый ядром для отслеживания времени, затрачиваемого процессором на исполнение функций, отдельных строк кода и инструкций.
POSIX библиотека потоков.
Библиотека позволяет DNS-серверам создавать, посылать и интерпретировать пакеты.
Библиотека предоставляет различные сервисы RPC.
Библиотека предоставляет большинство интерфейсов, описанных POSIX.1b Realtime Extension.
Библиотека полезна для создания отладчиков для многопотоковых приложений.
Содержит код "стандартных" функций, используемых многими утилитами Unix.
Последняя проверка: версия 2.2.5.
Bash: sh
Binutils: ar, as, ld, ranlib, readelf
Diffutils: cmp
Fileutils: chmod, cp, install, ln, mknod, mv, mkdir, rm, touch
Gcc: cc, cc1, collect2, cpp, gcc
Grep: egrep, grep
Gzip: gzip
Make: make
Gawk: gawk
Sed: sed
Sh-utils: date, expr, hostname, pwd, uname
Texinfo: install-info, makeinfo
Textutils: cat, cut, sort, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 1.08 SBU Необходимое дисковое пространство: 18 MB |
Для инсталляции Groff выполните:
./configure --prefix=/usr && make PROCESSEDEXAMPLEFILES="" && make PROCESSEDEXAMPLEFILES="" install && ln -s soelim /usr/bin/zsoelim && ln -s eqn /usr/bin/geqn && ln -s tbl /usr/bin/gtbl |
make PROCESSEDEXAMPLEFILES="": У Groff существует несколько зависимостей, которые мы не будем устанавливать. Эта опция отключает потребность в них.
ln -s ...: Эти символические ссылки необходимы для корректной работы некоторых программ xman и других программ работы с документами groff/man.
Last checked against version 1.17.2.
addftinfo, afmtodit, eqn, geqn (link to eqn), grn, grodvi, groff, grog, grolbp, grolj4, grops, grotty, gtbl (link to tbl), hpftodit, indxbib, lkbib, lookbib, mmroff, neqn, nroff, pfbtops, pic, post-grohtml, pre-grohtml, refer, soelim, tbl, tfmtodit, troff and zsoelim (link to soelim)
addftinfo reads a troff font file and adds some additional font-metric information that is used by the groff system.
afmtodit creates a font file for use with groff and grops.
eqn compiles descriptions of equations embedded within troff input files into commands that are understood by troff.
geqn is the GNU implementation of eqn.
grn is a groff preprocessor for gremlin files.
grodvi is a driver for groff that produces TeX dvi format.
groff is a front-end to the groff document formatting system. Normally it runs the troff program and a post-processor appropriate for the selected device.
grog reads files and guesses which of the groff options -e, -man, -me, -mm, -ms, -p, -s, and -t are required for printing files, and prints the groff command including those options on the standard output.
grolbp is a groff driver for Canon CAPSL printers (LBP-4 and LBP-8 series laser printers).
grolj4 is a driver for groff that produces output in PCL5 format suitable for an HP Laserjet 4 printer.
grops translates the output of GNU troff to Postscript.
grotty translates the output of GNU troff into a form suitable for typewriter-like devices.
gtbl is the GNU implementation of tbl.
hpftodit creates a font file for use with groff -Tlj4 from an HP tagged font metric file.
indxbib makes an inverted index for the bibliographic databases a specified file for use with refer, lookbib, and lkbib.
lkbib searches bibliographic databases for references that contain specified keys and prints any references found on the standard output.
lookbib prints a prompt on the standard error (unless the standard input is not a terminal), reads from the standard input a line containing a set of keywords, searches the bibliographic databases in a specified file for references containing those keywords, prints any references found on the standard output and repeats this process until the end of input.
mmroff is a simple preprocessor for groff.
The neqn script formats equations for ascii output.
The nroff script emulates the nroff command using groff.
pfbtops translates a Postscript font in .pfb format to ASCII.
pic compiles descriptions of pictures embedded within troff or TeX input files into commands that are understood by TeX or troff.
pre- and post-grohtml translate the output of GNU troff to html.
refer copies the contents of a file to the standard output, except that lines between .[ and .] are interpreted as citations, and lines between .R1 and .R2 are interpreted as commands about how citations are to be processed.
soelim reads files and replaces lines of the form .so file by the contents of file.
tbl compiles descriptions of tables embedded within troff input files into commands that are understood by troff.
tfmtodit creates a font file for use with groff -Tdvi.
troff is highly compatible with Unix troff. Usually it should be invoked using the groff command, which will also run preprocessors and post-processors in the appropriate order and with the appropriate options.
zsoelim is the GNU implementation of soelim.
Last checked against version 1.17.2.
Bash: sh
Binutils: ar, as, ld, ranlib
Bison: bison
Diffutils: cmp
Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm, touch
Gcc: cc1, cc1plus, collect2, cpp0, g++, gcc
Grep: egrep, grep
Make: make
Gawk: awk
Sed: sed
Sh-utils: basename, date, echo, expr, hostname, uname
Textutils: cat, tr
Назад | Домой | Вперед |
Установка Less-374 | Наверх | Установка Textutils-2.1 |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.13 SBU |
Для инсталляции Less выполните:
./configure --prefix=/usr --bindir=/bin --sysconfdir=/etc && |
Последняя проверка: версия 374.
less, lessecho и lesskey
less - текстовый просмотрщик. Отображает содержимое файла с возможностью прокрутки. Less - улучшение утилиты more. Имеется возможность обратной прокрутки, нет необходимости считывать весь файл при его загрузке, что облегчает чтение больших файлов.
lessecho необходим для подстановок метасимволов, вроде * и ?, в именах файлов на системах Unix.
lesskey используется для установок клавиш less.
Последняя проверка: версия 358.
Bash: sh
Binutils: as, ld
Diffutils: cmp
Fileutils: chmod, install, mv, rm, touch
Grep: egrep, grep
Gcc: cc1, collect2, cpp0, gcc
Make: make
Sed: sed
Sh-utils: expr, hostname, uname
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 1.88 SBU |
Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.
Для инсталляции Ncurses выполните:
patch -Np1 -i ../ncurses-5.2-2.patch && |
patch -Np1 -i ../ncurses-5.2-patch: Этот патч устраняет проблему компиляции пакета с GCC-3.2, т.к. Ncurses использует конструкции, более недействительные в новом стандарте С++.
--with-shared: Эта опция указывает компилировать библиотеки ncurses совместного пользования.
chmod 755 *.5.2: Библиотеки совместного пользования должны быть исполняемыми. Однако процедура инсталляции Ncurses неверно устанавливает права, и приходится изменять их вручную.
ln -sf libncurses.a libcurses.a: Некоторые программы для компоновки используют -lcurses вместо -lncurses. Создание этой символической ссылки устраняет проблему.
Последняя проверка: версия 5.2.
captoinfo (ссылка на tic), clear, infocmp, infotocap (ссылка на tic), reset (ссылка на tset), tack, tic, toe, tput и tset.
captoinfo конвертирует описания termcap в описания terminfo.
clear очищает экран, если это возможно. Тип терминала ищется в переменных окружения и базе terminfo, процедура очистки экрана зависит от найденного типа.
infocmp используется для сравнения бинарной записи terminfo с другими записями, перезаписать описание terminfo, использовать поле terminfo use=, или вывести описание terminfo из бинарного файла (term) в различных форматах (противоположность тому. что делает tic).
infotocap конвертирует описания terminfo в описания termcap.
reset устанавливает режимы cooked и echo, отключает режимы cbreak и raw, включает трансляцию символов новой строки и сбрасывает все неустановленные специальные символы на значения по умолчанию перед инициализацией терминала вроде tset.
tack - проверяет действия terminfo.
tic - компилятор описаний записей terminfo. Программа транслирует файл terminfo из исходного в бинарный формат для использоваия библиотекой ncurses. Файлы terminfo содержат информацию о возможностях терминала.
toe перечисляет все доступные типы терминалов по основному имени вместе с описаниями.
tput использует базу terminfo, чтобы сделать инфорамацию о терминале доступной командному интерпретатору, инициализировать или сбросить терминал, либо вернуть полное имя запрошенного типа терминала.
tset инициализирует терминалы, что уже не используется широко. Необходимо для совместимости с 4.4BSD.
libcurses.[a,so] (ссылка на libncurses.[a,so]), libform.[a,so], libform_g.a, libmenu.[a,so], libmenu_g.a, libncurses++.a, libncurses.[a,so], libncurses_g.a, libpanel.[a,so] и libpanel_g.a
Это - основные библиотеки пакета, использются для отображения текста на экране (зачастую нестандартным способом). Пример использования ncurses - процедура "make menuconfig" сборки ядра.
libform используется для реализации форм в ncurses.
libmenu используется для реализации меню в ncurses.
libpanel используется для реализации панелей в ncurses.
Последняя проверка: версия 5.2.
Bash: sh
Binutils: ar, as, ld, ranlib
Diffutils: cmp
Fileutils: chmod, cp, install, ln, mkdir, mv, rm
Gcc: c++, cc1, cc1plus, collect2, cpp0, gcc
Glibc: ldconfig
Grep: egrep, fgrep, grep
Make: make
Gawk: gawk
Sed: sed
Sh-utils: basename, date, echo, expr, hostname, uname
Textutils: cat, sort, tr, wc
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.09 SBU |
Для инсталляции Sed выполните:
./configure --prefix=/usr --bindir=/bin && |
Последняя проверка: версия 3.02.
Autoconf: autoconf, autoheader
Automake: aclocal, automake
Bash: sh
Binutils: ar, as, ld, ranlib
Diffutils: cmp
Fileutils: chmod, install, ls, mv, rm
Gcc: cc1, collect2, cpp0, gcc
Glibc: getconf
Grep: egrep, fgrep, grep
M4: m4
Make: make
Gawk: gawk
Sed: sed
Sh-utils: echo, expr, hostname, sleep
Texinfo: install-info, makeinfo
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.83 SBU |
Для инсталляции Textutils выполните:
./configure --prefix=/usr && |
Последняя проверка: версия 2.0.
cat, cksum, comm, csplit, cut, expand, fmt, fold, head, join, md5sum, nl, od, paste, pr, ptx, sort, split, sum, tac, tail, tr, tsort, unexpand, uniq и wc
cat выводит файлы на стандартный вывод.
cksum выводит контрольную сумму CRC и объем в байтах каждого указанного файла.
comm построчно сравнивает два отсортированных файла.
csplit выводит части файла, разделенные заданными строками, в файлы xx01, xx02, ..., и размер каждой части на стандартный вывод.
cut выводит указанные строки из указанных файлов на стандартный вывод.
expand конвертирует знаки табуляции в файле в пробелы и выводит результат на стандартный вывод.
fmt форматирует каждый абзац в указанных файлах и выводит результат на стандартный вывод.
fold делает переносы вводимых строк из указанных файлов (по умолчанию, со стандартного ввода) и выводит результат на стандартный вывод.
head выводит первые x (по умолчанию 10) строк каждого указанного файла на стандартный вывод.
join соединяет строки двух файлов в поля.
md5sum выводит или проверяет контрольные суммы MD5.
nl выводит каждый указанный файл на стандартный вывод, добавляя номера строк.
od выводит выводит файл в различных форматах, по умолчанию в восьмеричном, на стандартный вывод.
paste выводит строки, соответствующие заданным образцам из указанных файлов и разделенные символами табуляции, на стандартный вывод.
pr разделяет файлы на страницы или колонки для распечатки.
ptx составляет оглавление файла.
sort выводит на стандартный вывод построчно отсортированное слияние файлов.
split разбивает входной файл на части заданного размера PREFIXaa, PREFIXab, ...
sum выводит контрольную сумму и количество занимаемых блоков каждого указанного файла.
tac выводит каждый указанный файл на стандартный вывод last line first.
tail выводит последние xx (по умолчанию 10) строк каждого указанного файла на стандартный вывод.
tr заменяет, вставляет, и/или удаляет символы из стандартного ввода, выводя результат на стандартный вывод.
tsort выводит полностью упорядоченные списки, учитывая уже проведенную сортировку указанных файлов.
unexpand конвертирует пробелы в каждом файле в символы табуляции, выводя результат на стандартный вывод.
uniq удаляет повторяющиеся строки из отсортированного файла.
wc выводит количество строк, слов и размер в байтах кажого указанного файла и сумму результатов, если указано более одного файла.
Последняя проверка: версия 2.0.
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
Perl: perl
Sed: sed
Sh-utils: basename, echo, expr, sleep, uname
Tar: tar
Texinfo: install-info, makeinfo
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.81 SBU |
Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.
Если вам не по душе Vim, см. инструкции по инсталляции других редакторов http://beyond.linuxfromscratch.org/view/cvs/postlfs/editors.html. На данный момент есть инструкции для редакторов Emacs, nano, и joe.
Для установки Vim выполните:
patch -Np1 -i ../vim-6.1.patch && |
Если вы планируете установить систему X Window для LFS, вам понадобится перекомпилировать Vim после установки Х. Vim поставляется с GUI версией редактора, требующей установленной системы X Window и некоторых дополнительных библиотек. Для получения подробной информации обратитесь к документации Vim.
patch -Np1 -i ../vim-6.1.patch: Этот патч устраняет проблему компиляции с GCC-3.2.
make CPPFLAGS=-DSYS_VIMRC_FILE=\\\"/etc/vimrc\\\": Эта опция приводит к тому, что vim берет глобальные настройки из файла /etc/vimrc. Обычно этот файл берется из /usr/share/vim, однако каталог /etc - более логичное место для этого файла.
Последняя проверка: версия 6.1.
efm_filter.pl, efm_perl.pl, ex (ссылка на vim), less.sh, mve.awk, pltags.pl, ref, rview (ссылка на vim), rvim (ссылка на vim), shtags.pl, tcltags, vi (ссылка на vim), view (ссылка на vim), vim, vim132, vim2html.pl, vimdiff (ссылка на vim), vimm, vimspell.sh, vimtutor и xxd
efm_filter.pl - фильтр, читающий из стандартного ввода, пишуший на стандартный вывод и создающий файл ошибок, обрабатываемый vim.
efm_perl.pl форматирует сообщения об ошибках интерпретатора Perl для использования в quickfix режиме vim.
ex запускает vim в режиме Ex.
less.sh - скрипт, запускающий vim, используя less.vim.
mve.awk обрабатывает ошибки vim.
pltags.pl создает файл тегов кода Perl для использования vim.
ref проверяет написание параметров.
rview - ограниченная версия view. Нельзя передавать команды интерпретатору и vim не может быть приостановлен.
rvim is the restricted version of vim. Нельзя передавать команды интерпретатору и vim не может быть приостановлен.
shtags.pl генерирует файл тегов для скриптов perl.
tcltags генерирует файл тегов кода TCL.
vi запускает vim в режиме совместимости с vi.
view запускает vim в режиме "только для чтения".
vim запускает vim в стандартном режиме.
vim132 запускает vim в терминале в 132 колонки.
vim2html.pl конвертирует документацию vim в HTML.
vimdiff сравнивает две или три версии файла и показывает различия.
vimm включает модель ввода DEC locator на удаленном терминале.
vimspell.sh просматривает файл и генерирует синтаксические выражения, выделяемые в vim.
vimtutor запускает обучение работе с Vim.
xxd конвертирует бинарный ввод из файла в шестнадцатеричный и обратно.
Последняя проверка: версия 6.0.
Bash: sh
Binutils: as, ld, strip
Diffutils: cmp, diff
Fileutils: chmod, cp, ln, mkdir, mv, rm, touch
Find: find
Gcc: cc1, collect2, cpp0, gcc
Grep: egrep, grep
Make: make
Net-tools: hostname
Sed: sed
Sh-utils: echo, expr, uname, whoami
Textutils: cat, tr, wc
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.07 SBU |
Для инсталляции Zlib выполните:
./configure --prefix=/usr --shared && |
Зависимости еще не проверялись.
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.05 SBU |
Для инсталляции Autoconf выполните:
./configure --prefix=/usr && |
Последняя проверка: версия 2.53.
autoconf, autoheader, autom4te, autoreconf, autoscan, autoupdate и ifnames
autoconf - инструмент для создания скриптов командного интерпретатора, автоматически конфигурирующих пакеты с исходным кодом для адаптации ко многим Unix системам. Настроечные скрипты, созданные autoconf, независимы от autoconf во время их исполнения, так что пользователям необязательно использование autoconf.
autoheader создает шаблонный файл, состоящий из выражений C #define для использования configure.
autom4te запускает GNU M4 для обработки заданных файлов.
При наличии множества настроечных скриптов, созданных autoconf, autoreconf может сэкономить время. Утилита повторно запускает autoconf and autoheader (когда необходимо) для повторной генерации настроечных скриптов autoconf и настройки шаблонов заголовков рекурсивно, начиная с текущего каталога.
autoscan может помочь в написании configure.in для программного пакета. autoscan просматривает исходные файлы в дереве каталогов. Если не указан каталог, то используется текущий. Исходный код проверяется на наличие распространенных проблем переносимости, создаваемый configure.scan служит предварительным configure.in для пакета.
autoupdate обновляет имена вызова макросов autoconf в configure.in.
ifnames может помочь во время написания configure.in для программного пакета. Выводятся идентификаторы, которые пакет уже использует в условиях препроцессора C. Если пакет уже настроен для некоторой переносимости, программа может помочь в определении, что необходимо проверить configure. Она также может заполнить некоторые пропуски в configure.in, вставленные autoscan.
Последняя проверка: версия 2.52.
Bash: sh
Diffutils: cmp
Fileutils: chmod, install, ln, ls, mkdir, mv, rm
Grep: fgrep, grep
M4: m4
Make: make
Gawk: gawk
Sed: sed
Sh-utils: echo, expr, hostname, sleep, uname
Texinfo: install-info
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.03 SBU |
Последняя проверка: версия 1.6.2.
acinstall, aclocal, aclocal-1.6, automake, automake-1.6, compile, config.guess, config.sub, depcomp, elisp-comp, install-sh, mdate-sh, missing, mkinstalldirs, py-compile, ylwrap
acinstall - сценарий, устанавливающий файлы aclocal-style M4.
automake включает несколько макросов autoconf, используемых в пакетах, часть которых необходима automake в ряде случаев. Эти макросы должны быть определены в aclocal.m4, иначе autoconf не сможет их использовать.
aclocal program автоматически создаст aclocal.m4, основываясь на содержимом configure.in. Это дает возможность получения предоставленных automake макросов без их поиска. Также. механизм aclocal расширяем для использования другими пакетами.
Для создания всех файлов Makefile.in пакета, запустите automake в каталоге верхнего уровня без параметров. automake найдет все соответствующие Makefile.am (просматривая configure.in) и создаст Makefile.in.
compile - cценарий-обертка для компиляторов.
config.guess - сценарий, определяющий каноническое имя системы.
config.sub - скрипт проверки конфигурации.
depcomp - cкрипт, компилирующий программу вместе с генерацией зависимостей.
elisp-comp - скрипт для байт-компиляции файлов .el.
install-sh - скрипт, устанавливающий программу, скрипт или файл данных.
mdate-sh - скрипт, выводящий время изменения файла или каталога.
missing - заменяющий некоторые отсутствующие программы GNUво время инсталляции.
mkinstalldirs - скрипт для иерархической сборки каталога.
py-compile - скрипт, собирающий программу на Python.
ylwrap - скрипт-обертка для вызовов lex/yacc.
Последняя проверка: версия 1.5.
Bash: sh
Diffutils: cmp
Fileutils: chmod, install, ls, mkdir, mv, rm, rmdir
Grep: fgrep, grep
Make: make
Perl: perl
Sed: sed
Sh-utils: echo, expr, hostname, sleep
Texinfo: install-info
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.82 SBU |
Для инсталляции Bash выполните:
./configure --prefix=/usr --bindir=/bin && |
Последняя проверка: версия 2.05a.
bash, sh (ссылка на bash) и bashbug
bash - Bourne-Again SHell, широко используемый в Unix cистемах командный интерпретатор. Bash считывает данные со стандартного ввода, клавиатуры. Пользователь вводит что-либо, интерпретатор распознает введенное и выполняет это, например запускает программу.
bashbug - скрипт, помогающий пользователю составлять и отправлять сообщения об ошибкахs bash в стандартном формате.
sh - символическая ссылка на bash. Будучи вызванным как sh, bash имитирует запуск старых версий sh, для лучшего соответствия стандартам POSIX.
Последняя проверка: версия 2.05a.
Bash: bash, sh
Binutils: ar, as, ld, ranlib, size
Diffutils: cmp
Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm
Gcc: cc, cc1, collect2, cpp0, gcc
Grep: egrep, grep
Make: make
Gawk: awk
Sed: sed
Sh-utils: basename, echo, expr, hostname, sleep, uname
Texinfo: install-info
Textutils: cat, tr, uniq
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.07 SBU |
Этот пакет необходим лишь в том случае, если вы собираетесь пользоваться LILO. Если вы собираетесь использовать другой загрузчик, например Grub, bin86 не нужен. Обратитесь к документации предпочитаемого загрузчика, чтобы выяснить, требует ли он наличие пакета bin86 (обычно необходимы только программы ld86 и/или as86 из этого пакета).
Помните, что не только загрузчики используют пакет bin86. Существует вероятность, что какой-либо иной пакет потребует программу из bin86. Имейте это в виду, если собираетесь пропустить установку bin86.
Для инсталляции Bin86 выполните:
make && |
Последняя проверка: версия 0.16.3
as86, as86_encap, ld86, nm86 (ссылка на objdump86), objdump86 и size86 (ссылка на objdump86)
as86 - ассемблер для процессоров 8086...80386.
as86_encap - скрипт для вызова as86 и конвертирования полученного кода в код C (prog.v) для включения или слинковки с программами вроде инсталляторов загрузочных секторов.
ld86 понимает только объектные файлы, полученные от ассемблера as86. Возможна линковка как в смешанный, так и раздельный исполняемый код I&D.
Таблица символов для бинарного файла.
Сохраняет детальную информацию о бинарном файле.
Выводит общий объем данных в бинарном файле.
Последняя проверка: версия 0.16.0.
Bash: sh
Binutils: as, ld, strip
Fileutils: chmod, install, ln, mv
Gcc: cc, cc1, collect2, cpp0
Make: make
Sed: sed
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 2.48 SBU |
Этот пакет известен своим нестабильным поведением при компиляции с измененными опциями оптимизации (включая опции -march и -mcpu). Binutils рекомендуется компилировать с настройками по умолчанию. Следовательно, если вы задали переменные такие как CFLAGS или CXXFLAGS, изменяющие уровень оптимизации по умолчанию, рекомендуется убрать их при сборке пакета Binutils. Изменяя оптимизации для Binutils, вы действуете на свой страх и риск.
Для инсталляции Binutils выполните:
mkdir ../binutils-build && |
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.
Последняя проверка: версия 2.12.1.
addr2line, ar, as, gasp, gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings and strip
addr2line переводит программные адреса в имена файлов и номера строк. Given an address and an executable, используется отладочная информация исполняемого файла, чтобы определить, какое имя файла и номер строки связаны с данным адресом.
ar создает и изменяет архивы, а также производит их распаковку. Архив - файл, содержащий несколько файлов в виде, позволяющем восстановить оригинал.
as используется для ассемблирования вывода the GNU C Compiler, gcc для использования с линкером ld.
gasp - Assembler Macro Preprocessor.
gprof отображает статистику системных вызовов.
ld объединяет несколько объектных и архивных файлов и устанавливает символьные отношения. Последний шаг в сборке скомпилированной программы - запуск ld.
nm перечисляет символы из объектных файлов.
objcopy utility копирует содержимое одного объектного файла в другой. objcopy использует библиотеку GNU BFD для чтения/записи объектных файлов. Возможна запись конечного объектного файла в формате, отличном от исходного.
objdump выводит информацию об одном или нескольких объектных файлах. Опции указываеют, какую информацию выводить. Эта информация полезна для программистов, разрабатывающих компиляторы, в противоположность тем, кому нужно просто скомпилировать и запустить программу.
ranlib генерирует оглавление содержимого архива и сохраняет его в архиве. Список будет содержать все символы, определенные членами архива, that is a relocatable object file.
readelf выводит информацию об бинарных файлах типа elf.
size выводит размеры секций --и общий размер-- каждого указанного объектного файла. По умолчанию, генерируется одна строка для каждого объектного файла или модуля в архиве.
Для каждого задананного файла strings выводит последовательность отображаемых символов длиной минимум 4 знака (или указанной длины), завершающуюся непечатным символом. По умолчанию, выводятся лишь строки из инициализированных и загруженных частей объектных файлов. Для других типов файлов выводятся строки из всего файла.
strings зачастую используется для определения содержимого нетекстовых файлов.
strip удаляет все или указанные символы из объектных файлов. Список объектных файлов может включать архивы. Должен быть задан как минимум один объектный файл. Модификация указанных файлов приоритетнее, чем запись модифицированных копий под другими именами.
libbfd.[a,so] и libopcodes.[a,so]
libbfd - библиотека Binary File Descriptor.
libopcodes - библиотека для работы с опкодами, используется в сборке утилит вроде objdump. Опкоды - "читаемые" версии инструкций процессора.
Последняя проверка: версия 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
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.09 SBU |
Для инсталляции Bzip2 выполните:
make -f Makefile-libbz2_so && |
Стоит заметить, что имеет смысл загрузить патч для программы Tar, который позволяет ей без труда запаковывать и распаковывать архивы с помощью bzip2/bunzip2. Однако этот патч не является частью базовой системы LFS. С обычной версией tar, для работы с bzip2/bunzip2 используются конструкции вида bzcat file.tar.bz | tar -xv или tar --use-compress-prog=bunzip2 -xvf file.tar.bz2. Вышеупомянутый патч предоставляет возможность использования опции -j, при помощи которой распаковать архив bzip2 командой tar -xvfj file.tar.bz2. Применение данного патча будет рассмотрено далее, при установке пакета Tar.
make -f Makefile-libbz2_so: Компиляция bzip2 с помощью другого файла Makefile, в данном случае с помощью Makefile-libbz2_so, который создает динамическую библиотеку libbz2.so и связывает с ней утилиты bzip2.
Последняя проверка: версия 1.0.2
bunzip2 (ссылка на bzip2), bzcat (ссылка на bzip2), bzcmp, bzdiff, bzegrep, bzfgrep, bzgrep, bzip2, bzip2recover, bzless и bzmore
bunzip2 распаковывает файлы, сжатые bzip2.
bzcat (или bzip2 -dc) распаковывает указанные файлы на стандартный вывод.
bzcmp и bzdiff позволяют использовать cmp и diff для файлов, сжатых bzip2.
bzegrep, bzfgrep, и bzgrep позволяют использовать egrep, fgrep, or grep для файлов, сжатых bzip2.
bzip2 сжимает файлы, используя Burrows-Wheeler block sorting алгоритм сжатия текста и код Huffman. Сжатие, обычно: значительно лучше, чем достигаемое традиционными архиваторами, основанными на LZ77/LZ78, и достигает производительности PPM семейства статистических архиваторов.
bzip2recover восстанавливает данные из поврежденных файлов bzip2.
bzless - подобный less фильтр, позволяющий поэкранный просмотр сжатых или текстовых файлов.
bzmore - подобный more фильтр, позволяющий поэкранный просмотр сжатых или текстовых файлов.
libbz2.a, libbz2.so (ссылка на libbz2.so.1.0), libbz2.so.1.0 (ссылка на libbz2.so.1.0.2) и libbz2.so.1.0.2
libbz2 - библиотека, реализующая сжатие данных без потерь, используя block-sorting алгоритм Burrows-Wheeler.
Последняя проверка: версия 1.0.1.
Bash: sh
Binutils: ar, as, ld, ranlib
Fileutils: cp, ln, rm
Gcc: cc1, collect2, cpp0, gcc
Make: make
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.31 SBU |
Для инсталляции Diffutils выполните:
./configure --prefix=/usr && |
Последняя проверка: версия 2.8.1.
cmp, diff, diff3 и sdiff
cmp и diff сравнивают пару файлов и сообщают об их различиях. Обе программы имеют дополнительные опции сравнения файлов в различных ситуациях.
Разница между diff и diff3 состоит в том, что diff сравнивает 2 files, а diff3 - 3.
sdiff выполняет слияние 2 файлов и интерактивно выводит результаты.
Последняя проверка: версия 2.7.
Bash: sh
Binutils: ld, as
Diffutils: cmp
Fileutils: chmod, cp, install, mv, rm
Gcc: cc1, collect2, cpp0, gcc
Grep: egrep, grep
Make: make
Sed: sed
Sh-utils: date, hostname
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.80 SBU |
Для инсталляции E2fsprogs выполните:
mkdir ../e2fsprogs-build && |
--with-root-prefix="": Причина использования данной опции - настройка файла Makefile. Выполнение некоторых программ, когда к примеру, /usr еще не монтирован, жизненно важно. (например выполнение программы e2fsck). Соответственно, такие программы и библиотеки должны находиться в каталогах /lib и /sbin. Если не использовать данную опцию, эти программы по умолчанию помещаются в каталог /usr, что нас не устраивает.
--enable-elf-shlibs: Создает shared-библиотеки для некоторых программ пакета
make install-libs: Инсталлирует скомпилированные библиотеки.
Последняя проверка: версия 1.27.
badblocks, chattr, compile_et, debugfs, dumpe2fs, e2fsck, e2image, e2label, fsck, fsck.ext2, fsck.ext3, lsattr, mk_cmds, mke2fs, mkfs.ext2, mkfs.ext3, mklost+found, resize2fs, tune2fs и uuidgen
badblocks используется для поиска сбойных блоков на устройстве (обычно, дисковом разделе).
chattr изменяет атрибуты файлов в файловых системах Linux second extended.
compile_et используется для преобразования таблицы, листинга кодов ошибок и связанных сообщений в исходный код C, что удобно для использования с библиотекой com_err.
debugfs - файловый отладчик. Используется для исследования и и изменения состояния файловой системы ext2.
dumpe2fs выводит superblock и информацию о группе блоков для файловой системы, присутствующей на указанном устройстве.
e2fsck и fsck.ext2 используются для проверки и исправления файловых систем Linux second extended.
e2image используется для сохранения критичных данных файловой системы ext2в файл.
e2label выводит и изменяет метку файловой системы ext2 filesystem, расположенной на указанном устройстве.
fsck используется для проверки и исправления файловых систем Linux.
fsck.ext3 используется для проверки и исправления файловых систем Linux ext3.
lsattr выводит атрибуты файла на second extended file system.
mk_cmd, получая таблицу команд на входе, выводит исходный код C, который задается для использования с подсистемной библиотекой, libss.
mke2fs используется для создания Linux second extended file system на устройстве (обычно, разделе диска). mkfs.ext2 выполняет те же функции, что и mke2fs.
mkfs.ext3 используется для создания файловой системы ext3.
mklost+found создает каталог lost+found в текущем рабочем каталогу в Linux second extended file system. mklost+found заранее выделяет блоки диска для этого каталога, делая его доступным для e2fsck.
resize2fs используется для изменения размеров файловой системы ext2.
tune2fs изменяет настраиваемые параметры Linux second extended filesystem.
uuidgen создает новый универсальный уникальный идентификатор (UUID), используя библиотеку libuuid. Новый UUID будет уникален среди всех созданных UUID на любой системе и в любое время.
libcom_err.[a,so], libe2p.[a,so], libext2fs.[a,so], libss.[a,so], libuuid.[a,so]
Вывод стандартных ошибок.
libe2p используется dumpe2fs, chattr и lsattr.
Библиотека ext2fs создана для работы пользовательских программ с файловыми системами ext2.
libss используется debugfs.
Библиотека libuuid используется для генерации уникальных идентификаторов для объектов, которые могут быть доступны извне.
Последняя проверка: версия 1.25.
Bash: sh
Binutils: ar, as, ld, ranlib, strip
Diffutils: cmp
Fileutils: chmod, cp, install, ln, mkdir, mv, rm, sync
Gcc: cc, cc1, collect2, cpp0
Glibc: ldconfig
Grep: egrep, grep
Gzip: gzip
Make: make
Gawk: awk
Sed: sed
Sh-utils: basename, echo, expr, hostname, uname
Texinfo: makeinfo
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.06 SBU |
Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.
Вряд ли вы будете использовать Ed. Мы его устанавливаем только потому, что иногда его требует программа patch, т.е. когда патч написан в формате Ed. Однако это большая редкость, т.к. на сегодняшний день преобладают патчи формата diff.
Для инсталляции Ed выполните:
patch -Np1 -i ../ed-0.2.patch && |
patch -Np1 -i ../ed-0.2.patch: Этот патч устраняет уязвимость символических ссылок в ed. Программа ed создает файлы в каталоге /tmp с предсказуемыми именами. Воспользовавшись атаками с использованием символических ссылок, возможно заставить ed изменять файлы и права доступа к ним.
Последняя проверка: версия 0.2.
Bash: sh
Binutils: ar, as, ld, ranlib
Diffutils: cmp
Fileutils: chmod, cp, install, ln, mv, rm, touch
Gcc: cc1, collect2, cpp0, gcc
Grep: egrep, grep
Make: make
Sed: sed
Sh-utils: hostname
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.21 SBU |
Для инсталляции File выполните:
./configure --prefix=/usr --datadir=/usr/share/misc && |
Последняя проверка: версия 3.37.
Autoconf: autoconf, autoheader
Automake: aclocal, automake
Bash: sh
Binutils: as, ld
Diffutils: cmp
Fileutils: chmod, install, ln, ls, mv, rm, touch
Gcc: cc1, collect2, cpp0, gcc
Grep: egrep, grep
M4: m4
Make: make
Gawk: gawk
Sed: sed
Sh-utils: echo, expr, hostname, sleep
Texinfo: makeinfo
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.68 SBU |
Для инсталляции Fileutils выполните:
./configure --prefix=/usr --bindir=/bin && |
Последняя проверка: версия 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 группу владельца указанных файлов, возможно указание как имени группы, так и ее номера.
chmod изменяет права доступа к указанному файлу, в соответствии с параметрами, заданными символьно или в восьмеричном представлении двоичного выражения новых прав.
chown изменяет владельца и/или группу указанных файлов.
cp копирует файлы.
dd копирует файл (по умолчанию, со стандартного ввода на стандартный вывод) с указанным размером блока и опциональными преобразованиями.
df показывает количество свободного места на файловых системах, содержащих указанные файлы. Если файлы не заданы, показывется свободное место на всех смонтированных файловых системах.
dir и vdir - версии ls с разными форматами вывода по умолчанию. Эти программы выводят список заданных файлов и каталогов. Содержимое каталога сортируется по алфавиту. ls, по умолчанию, перечисляет файлы в столбцах если стандартный вывод - терминал, иначе идет перечисление по одному в строке. dir, по умолчанию, перечисляет файлы в столбцах. vdir, по умолчанию перечисляет файлы в полном формате.
dircolors выводит значение LS_COLOR. Переменная LS_COLOR используется для установки цветовой схемы, используемой ls и прочими утилитами.
du выводит количество дискового пространства, занятого указанными файлами и каталогами (включая подкаталоги).
install копипует файлы, устанавливает права доступа и, если возможно, владельца и группу.
ln создаетжесткие или мягкие (символические) ссылки на файлы.
mkdir создает каталог с заданным именем.
mkfifo создает FIFO с заданным именем.
mknod создает FIFO, символьный или блочный файл с заданным именем.
mv перемещает файлы из одного каталога в другой или переименовывает их, в зависимости от заданных параметров.
rm удаляет файлы или каталоги.
rmdir удаляет пустые каталоги.
shred безопасно удаляет файл, перезаписывая занимаемые им блоки, так что содержимое невозможно восстановить.
sync принудительно записывает изменившиеся блоки на диск и обновляет superblock.
touch изменяет время доступа и изменения каждого заданного файла на текущее время. Если файл не существует, то создается пустой файл.
Последняя проверка: версия 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
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.99 SBU |
Для инсталляции Gettext выполните:
./configure --prefix=/usr && |
Последняя проверка:версия 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.rpath выводит зависящий от системы набор переменных, describing how to set the run time search path of shared libraries in an executable.
gettext используется для интернационализации (aka i18n) и локализации (aka l10n). Программы могут быть скомпилированы с поддержкой Native Language Support (NLS), что позволяет им выводить сообщения на родном языке пользователя вместо стандартного английского.
gettextize копирует все стандартные файлы gettext в каталог. Используется для создания пакетов с переводами gettext.
hostname выводит имя системы в разных форматах.
msgattrib фильтрует сообщения каталога переводов, основываясь на их атрибутах, а также оперирует их атрибутами.
msgcat находит сообщения, встречающиеся в нескольких переводах.
msgcmp сравнивает 2 файла перевода.
msgcomm ищет сообщения, появляющиеся в нескольких файлах .po. Используется для сравнения переводов.
msgconv конвертирует каталог перевода в другую кодировку.
msgen создает каталог переводов для английского языка.
msgexec применяет команду ко всем переводам из каталога перевода.
msgfilter применяет фильтр ко всем переводам из каталога переводов.
msgfmt program компилирует перевод в машинный код. Используется для создания окончательного перевода программы или пакета.
msggrep выдает все сообщения из каталога перевода, соответствующие заданному образцу или принадлежащие заданным исходным файлам.
msginit создает новый файл PO, инициализирую метаинформацию значениями пользовательского окружения.
msgmerge объединяет два перевода в один файл. Используется для обновления перевода при помощи исходных файлов.
msgunfmt декомпилирует файлы перевода. Возможно использование, только если есть скомпилированные версии.
msguniq приводит к единому образцу дублирующиеся переводы в каталоге переводов.
ngettext выводит переводы текстового сообщения, чья грамматическая форма зависит от числа на основной язык.
project-id выводит идентификационную информацию пакета.
team-address выводит адрес команды переводчиков на стандартный вывод и выдает дополнительные инструкции.
trigger проверяет, является ли пакет пакетом GNOME или KDE.
urlget получает содержимое URL.
user-email выводит адрес электронной почты пользователя, с подтверждением.
xgettext извлекает строки сообщений из файлов C. Использется для создания шаблона перевода.
libgettextlib[a,so], libgettextsrc[a,so]
Последняя проверка: версия 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
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.22 SBU |
Для инсталляции Grep выполните:
./configure --prefix=/usr --bindir=/bin && |
Последняя проверка: версия 2.5.
egrep (ссылка на grep), fgrep (ссылка на grep) и grep
Последняя проверка: версия 2.4.2.
Autoconf: autoconf, autoheader
Automake: aclocal, automake
Bash: sh
Binutils: as, ld
Diffutils: cmp
Fileutils: chmod, install, ls, mkdir, mv, rm
Gettext: msgfmt, xgettext
Gcc: cc, cc1, collect2, cpp0, gcc
Glibc: getconf
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, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.03 SBU |
Для инсталляции Gzip выполните:
patch -Np1 -i ../gzip-1.2.4b.patch && |
patch -Np1 -i ../gzip-1.2.4b.patch: Этот патч устраняет возможную ошибку переполнения буфера, возникающую когда имя файла превышает 1020 символов.
Последняя проверка: версия 1.2.4a.
gunzip (ссылка на gzip), gzexe, gzip, uncompress (ссылка на gunzip), zcat (ссылка на gzip), zcmp, zdiff, zforce, zgrep, zmore и znew
gunzip и uncompress распаковывают файлы, сжатые gzip.
gzexe позволяет сжать исполняемые файлы и автоматически распаковывать их при запуске (уменьшается производительность ).
gzip уменьшает размер указанных файлов используя код Lempel-Ziv (LZ77).
zcat распаковывает и выводит на стандартный вывод либо файлы из заданного списка, либо файл со стандартного ввода.
zcmp применяет cmp к сжатым файлам.
zdiff применяет diff к сжатым файлам.
zforce присваивает расширение .gz всем файлам gzip, так что они не будут сжаты дважды. Может быть полезно для файлов, чьи имена были изменены после их передачи.
zgrep применяет grep к сжатым файлам.
zmore - фильтр, позволяющий поэкранный просмотр (не)сжатых текстовых файлов (вроде more).
znew конвертирует файлы формата .Z (compress) в .gz (gzip).
Последняя проверка: версия 1.2.4a.
Bash: sh
Binutils: as, ld, nm
Fileutils: chmod, cp, install, ln, mv, rm
Gcc: cc1, collect2, cpp, cpp0, gcc
Grep: egrep, grep
Make: make
Sed: sed
Sh-utils: hostname
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.12 SBU |
Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.
Для инсталляции Kbd выполните:
patch -Np1 -i ../kbd-1.06-3.patch && |
patch -Np1 -i ../kbd-1.06-3.patch: Этот патч устраняет две проблемы. Первая связана с поведением loadkeys -d, где в некоторых версиях наблюдаются сбои. Эту проблему неоюбходимо устранить, т.к. сценарии загрузки зависят от корректного выполнения команды loadkeys -d. Вторая часть патча вносит измененияч в файл Makefile, для того чтобы установить некоторые утилиты, неинсталлируемые по умолчанию (например, setlogcons, setvesablank и getunimap).
Последняя проверка: версия 1.06.
chvt, deallocvt, dumpkeys, fgconsole, getkeycodes, getunimap, kbd_mode, kbdrate, loadkeys, loadunimap, mapscrn, openvt, psfaddtable (ссылка на psfxtable), psfgettable (ссылка на psfxtable), psfstriptable (ссылка на psfxtable), psfxtable, resizecons, setfont, setkeycodes, setleds, setlogcons, setmetamode, setvesablank, showfont, showkey, unicode_start, и unicode_stop
chvt переключает текущий виртуальный терминал.
deallocvt закрывает неиспользуемые виртуальные терминалы.
dumpkeys выводит таблицы перевода клавиатуры.
fgconsole выводит число активных виртуальных терминалов.
getkeycodes выводит таблицу конвертирования scancode-to-keycode.
getunimap выводит текущий используемый unimap.
kbd_mode выводит или устанавливает режим клавиатуры.
kbdrate устанавливает время повтора и задержки клавиатуры.
loadkeys загружает таблицы перевода клавиатуры.
loadunimap загружает таблицу конвертирования unicode-to-font.
mapscrn загружает определенную пользователем таблицу перевода выводимых символов в драйвер консоли. Заметьте, что утилита устарела, и ее возможности встроены в setfont.
openvt запускает программу на новом виртуальном терминале (VT).
Набор средств для управления таблицами символов Unicode для консольных шрифтов.
resizecons меняет настройки ядра, касающиеся размера консоли.
Позволяет менят консольные шрифты EGA/VGA.
setkeycodes загружает правила преобразования из сканкодов в клавиатурные.
setleds устанавливает индикаторы клавиатуры. Многие люди предпочитают включение numlock по умолчанию. и это может быть выполнено с помощью этой программы.
setlogcons выводит сообщения ядра в консоль.
setmetamode определяет метауправление клавиатурой.
Позволяет использовать встроенный аппаратный хранитель экрана (просто пустой экран).
showfont отображает информацию о шрифте. Показываются свойства шрифта, метрики символов и их образцы.
showkey проверяет сканкоды с клавиатуры.
unicode_start переводит консоль в режим Unicode.
unicode_stop выводит клавиатуру и консоль из режима Unicode.
Последняя проверка: версия 1.06.
Bash: sh
Binutils: as, ld, strip
Bison: bison
Diffutils: cmp
Fileutils: cp, install, ln, mv, rm
Flex: flex
Gettext: msgfmt, xgettext
Gcc: cc1, collect2, cpp0, gcc
Grep: grep
Gzip: gunzip, gzip
Make: make
Patch: patch
Sed: sed
Sh-utils: uname
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.15 SBU |
Для инсталляции Libtool выполните:
./configure --prefix=/usr && |
Последняя проверка: версия 1.4.2.
libtool и libtoolize
libtool предоставляет общие сервисы сборки библиотек.
libtoolize предоставляет стандартный путь добавления поддержки libtool в пакет.
libltdl.a, libltdl.so (ссылка на libltdl.so.3.1.0), libltdl.so.3 (ссылка на libltdl.so.3.1.0) и libltdl.so.3.1.0
Небольшая библиотека, направленная на сокрытие от программиста различных трудностей, связанных с библиотеками (dlopen).
Последняя проверка: версия 1.4.2.
Bash: sh
Binutils: ar, as, ld, nm, ranlib, strip
Diffutils: cmp
Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm, rmdir
Gcc: cc, cc1, collect2, cpp0
Glibc: ldconfig
Grep: egrep, fgrep, grep
Make: make
Sed: sed
Sh-utils: echo, expr, hostname, sleep, uname
Texinfo: install-info
Textutils: cat, sort, tr, uniq
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.08 SBU |
Мы выбрали LILO в качестве загрузчика, потому что с ним на комфортно, однако вы можете выбрать другой. Fabio Fracassi написал руководство по установке GRUB, см. http://hints.linuxfromscratch.org/hints/grub-howto.txt.
Для инсталляции Lilo выполните:
make && |
При компиляции этого пакета с опцией -g на некоторых компьютерах возникают проблемы. В случае если LILO не компилируется, удалите -g из значения переменной CFLAGS в файле Makefile.
В самом конце инсталляции, процедура make install выведет на экран сообщение о том, что необходимо выполнить команду /sbin/lilo для обновления. Не делайте этого, т.к. на данной стадии это бессмысленно: не существует файла /etc/lilo.conf. Завершение процесса установки LILO описано в Главе 8.
Стандартное приглашение (меню) LILO можно заменить логотипом LFS или любым другим по вашему усмотрению. См. руководство Мартина Имоберстега на http://hints.linuxfromscratch.org/hints/bootlogo.txt.
Последняя проверка: версия 22.2.
lilo, mkrescue и keytab-lilo.pl
lilo устанавливает загрузчик Linux, используемый для старта системы.
mkrescue создает загрузочную дискету, используя существующее ядро и любой инициализационный ramdisk.
keytab-lilo.pl компилирует определения keytable в формат, который lilo может использовать для настройки клавиатуры во время загрузки.
Последняя проверка: версия 22.1.
Bash: sh
Bin86: as86, ld86
Binutils: as, ld, strip
Fileutils: cp, dd, ln
Gcc: cc, cc1, collect2, cpp0
Make: make
Sed: sed
Textutils: cat
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.01 SBU |
После распаковки glibc-linuxthreads будут созданы две директории. Войдите в директорию linuxthreads , не в linuxthreads_db!
Для инсталляции руководства по потокам Linux выполните:
make -C man && |
Последняя проверка: версия 2.2.5.
Различные руководства по потокам Linux
Содержат страницы руководства по потокам Linux Glibc.
Зависимости еще не проверялись.
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.08 SBU |
Последняя проверка: версия 1.4.
m4 - макропроцессор. Копирует из ввода на вывод, выполняя макросы. Макросы могут быть как встроенными, так и определенными польователем, и могут иметь любое чисо параметров. Кроме обычных макрорасширений, m4 имеет встроенные функции для включения файлов, запуска команд Unix, целочисленной арифметики, различных текстовых операций, рекурсии etc. m4 может быть использовано как оболочка для компилятора, так и собственно макропроцессор.
Последняя проверка: версия 1.4.
Bash: sh
Binutils: ar, as, ld, ranlib
Diffutils: cmp
Fileutils: chmod, cp, install, mv, rm
Make: make
Gcc: cc1, collect2, cpp0, gcc
Grep: egrep, grep
Sed: sed
Sh-utils: date, echo, hostname
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.22 SBU |
Для инсталляции Make выполните:
./configure --prefix=/usr && |
По умолчанию, /usr/bin/make принадлежит к той же группе kmem. На некоторых системах это необходимо для проверки средней загрузки системы командой /dev/kmem. Однако, для Linux-систем это не нужно, и мы удаляем make из группы kmem. Это также решает проблему игнорирования командой make переменных типа LD_LIBRARY_PATH.
Последняя проверка: версия 3.79.1.
Autoconf: autoconf, autoheader
Automake: aclocal, automake
Bash: sh
Binutils: as, ld
Diffutils: cmp
Fileutils: chgrp, chmod, install, ls, mv, rm
Gcc: cc, cc1, collect2, cpp0, gcc
Glibc: getconf
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, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.05 SBU |
Для установки man выполните:
patch -Np1 -i ../man-1.5k.patch && |
Примечание: Если вы хотите отключить последовательность выхода SGR, отредактируйте файл man.conf и добавьте к команде nroff аргумент -c.
Для получения информации по форматированию и сжатию страниц руководства (man pages), см. http://hints.linuxfromscratch.org/hints/man.txt.
PATH=$PATH:/usr/bin:/bin ./configure -default: В файлы man прописываются пути к некоторым програмам. К сожалению, скрипт configure выбирает не первое (где находится программа), а последнее местонахождение программы в PATH. С помощью добавления /usr/bin:/bin к PATH для команды ./configure, вероятность использования командой man статических версий программ будет устранена.
patch -Np1 -i ../man-1.5k.patch: Данный патч убирает один из файлов в man.conf (MANPATH /usr/man), т.к. он создает избыточные результаты при использовании программ типа whatis. Для корректного отображения страниц руководства, патч также добавляет к переменной PAGER опцию -R.
Последняя проверка: версия 1.5k.
apropos, makewhatis, man, man2dvi, man2html и whatis
apropos ищет ключевые слова в базах данных, содержащих кратное описание системных команд, и отображает результат на стандартный вывод.
makewhatis читает страницы руководства, находящиеся в заданных частях manpath, или преформатированные страницы, находящиеся в заданных частях catpath. Для каждой страницы делается запись в базе whatis. Каждая запись состоит из имени страницы и краткого описания, разделенных дефисом. Описание извлекается, используя содержимое секции NAME страницы руководства.
man форматирует и выводит запрашиваемые страницы руководства.
man2dvi конвертирует страницу руководства в формат dvi.
man2html конвертирует страницу руководства в гипертекст.
whatis ищет ключевые слова в базах данных, содержащих кратное описание системных команд, и отображает результат на стандартный вывод. Выводятся лишь полностью совпадающие сочетания.
Последняя проверка: версия 1.5i2.
Bash: sh
Binutils: as, ld
Fileutils: chmod, cp, install, mkdir, rm
Gcc: c11, collect2, cpp0, gcc
Grep: grep
Make: make
Gawk: awk
Sed: sed
Sh-utils: echo
Textutils: cat
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.13 SBU |
Последняя проверка: версия 2.4.16.
depmod, genksyms, insmod, insmod_ksymoops_clean, kallsyms (ссылка на insmod), kernelversion, ksyms (ссылка на insmod), lsmod (ссылка на insmod), modinfo, modprobe (ссылка на insmod) и rmmod (ссылка на insmod)
depmod управляет деревьями зависимостей загружаемых модулей.
genksyms читает вывод от gcc -E source.c и генерирует файл, содержащий информацию о версиях.
insmod включает модуль в ядро.
insmod_ksymoops_clean удаляетсохраненные ksym'ы и модули, не использующиеся минимум 2 дня.
kallsyms извлекает символы ядра для отладки.
kernelversion выводит номер основной версии ядра.
ksyms показывает экспортированные символы ядра.
lsmod показывает информацию о загруженных модулях.
modinfo просматривает объектный файл, ассоциированный с модулем ядра, и выводит любую доступную информацию.
modprobe использует файл зависимостей вроде Makefile, созданный depmod, для автоматической загрузки необходимых модулей из набора в предварительно заданном дереве каталогов.
rmmod выгружает модули из ядра.
Последняя проверка: версия 2.4.12.
Bash: sh
Binutils: ar, as, ld, ranlib, strip
Bison: bison
Diffutils: cmp
Fileutils: chmod, install, ln, mkdir, mv, rm
Flex: flex
Gcc: cc, cc1, collect2, cpp0, gcc
Grep: egrep, grep
Make: make
Sed: sed
Sh-utils: basename, expr, hostname, uname
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.16 SBU |
Для инсталляции Net-tools выполните:
make && |
Если вы согласны со всеми ответами по умолчанию, выполните следующие команды взамен вышеприведеных:
yes "" | make && |
Если вы затрудняетесь с ответами на вопросы команды 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.
Последняя проверка: версия 1.60.
arp, dnsdomainname (ссылка на hostname), domainname (ссылка на hostname), hostname, ifconfig, nameif, netstat, nisdomainname (ссылка на hostname), plipconfig, rarp, route, slattach и ypdomainname (ссылка на hostname)
arp используется для манипулирования ARP кэшом ядра, обычно для добавления/удаления записей, или вывода его содержимого.
dnsdomainname выводит DNS доменное имя системы.
domainname выводит или изменяет NIS/YP доменное имя системы.
hostname выводит или изменяет имя текущего хоста.
ifconfig - основная утилита, используемая для настройки сетевых интерфейсов.
nameif указывает сетевые интерфейсы, основанные на адресах MAC.
netstat - многоцелевой инструмент, используемый для отображения сетевых соединений, таблиц роутинга, статистики интерфейсов, маскированных соединений и множественных вызовах.
nisdomainname выводит или изменяет NIS/YP доменное имя системы.
plipconfig - используется для тонкой настройки устройств PLIP device, возможно ускоряя ее.
Как и arp, rarp манипулирует таблицей RARP.
route - основная утилита для управления таблицами IP роутинга.
slattach активирует сетевой интерфейс на последовательной линии, т.е. переводит обычную терминальную линию в один из нескольких "сетевых" режимов.
ypdomainname выводит или изменяет NIS/YP доменное имя системы.
Последняя проверка: версия 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
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.03 SBU |
Для инсталляции Netkit-base выполните:
./configure && |
В директории etc.sample расположены другие занятные файлы, которые могут вас заинтересовать.
Последняя проверка: версия 0.17.
Bash: sh
Binutils: as, ld, strip
Fileutils: cp, install, rm
Make: make
Gcc: cc1, collect2, cpp0, gcc
Sed: sed
Sh-utils: date
Textutils: cat
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.10 |
Для инсталляции Patch выполните:
CPPFLAGS=-D_GNU_SOURCE \ |
Последняя проверка: версия 2.5.4.
patch
patch модифицирует файл в соответствии с патчем. Патч обычно является списком, созданным diff, содержащим инструкции к изменению. Patch часто используется для исправлений в исходном коде, поскольку сохраняет время и место на диске. Например, имеется пакет объемом 1 MB. Следующая версия пакета имеет изменения только в 2 файлах. Новая версия может быть как новым пакетом в 1 MB или патчем в 1 KB. Таким образом, патчи позволяют избежать объемных загрузок.
Последняя проверка: версия 2.5.4.
Bash: sh
Binutils: as, ld
Diffutils: cmp
Fileutils: chmod, install, mv, rm
Gcc: cc, cc1, collect2, cpp0, gcc
Glibc: getconf
Grep: egrep, grep
Make: make
Sed: sed
Sh-utils: echo, expr, hostname, uname
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 3.81 SBU |
Для инсталляции Perl выполните:
./configure.gnu --prefix=/usr && |
Если вы хотите контролировать настройку perl, можете выполнить интерактивный скрипт Configure, для внесения изменений в установки по умолчанию. Если же настройки по умолчанию вас устраивают, просто выполните команды, приведенные выше.
Последняя проверка: версия 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 - траслятор с awk на perl.
c2ph выводит структуры C как сгенерированные "cc -g -S".
dprofpp отображает профили perl.
find2perl траслирует командные строки find в код Perl.
h2ph конвертирует заголовочные файлы C в заголовки Perl.
h2xs конвертирует заголовочные файлы C в расширения Perl.
perl - Practical Extraction and Report Language (Язык Практичных Извлечений и Докладов :)). Сочетает достоинства C, sed, awk и sh в одном мощном языке.
perlbug генерирует сообщение об ошибке perl или его модулей и отправляет их по почте.
perlcc генерирует исполняемые файлы из программ на Perl.
perldoc просматривает документацию .pod, поставляемую с perl или скриптом perl и выводит как "pod2man | nroff -man | $PAGER".
pl2pm - утилита для помощи в конвертировании библиотек Perl4 в модули библиотек Perl5.
pod2html конвертирует файлы из формата pod в формат HTML.
pod2latex конвертирует файлы из формата pod в формат LaTeX.
pod2man конвертирует файлы из формата pod в форматированный ввод *roff.
pod2text конвертирует файлы из формата pod в форматированный текст ASCII.
pod2usage выводит в файлы сообщения об использовании из встроенной документации pod.
podchecker проверяет синтаксис файлов документации в формате pod.
podselect выводит выбранные части документации pod на стандартный вывод.
pstruct выводит структуры C как сгенерированные "cc -g -S".
s2p - транслятор с sed на perl.
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
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
Последняя проверка: версия 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
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.02 SBU |
make LDLIBS=-lncurses : Использовать -lncurses вместо -ltermcap при компиляции procinfo, т.к. libtermcap считается устаревшей по отношению к libncurses.
Последняя проверка: версия 18.
lsdev, procinfo и socklist
lsdev получает информацию об установленном оборудовании из файлов interrupts, ioports и dma в каталоге /proc directory, составляя краткий обзор используемых адресов I/O и каналов IRQ и DMA.
procinfo получает системную информацию из каталога /proc и выводит отформатированный результат на стандартный вывод.
Скрипт Perl, выводящий список открытых сокетов, включающий тип, порт, inode, uid, pid, fd и программу, к которой принадлежит сокет.
Последняя проверка: версия 18.
Binutils: as, ld
Fileutils: install, mkdir
Gcc: cc1, collect2, cpp0, gcc
Make: make
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.14 SBU |
Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.
Для инсталляции Procps выполните:
patch -Np1 -i ../procps-2.0.7.patch && |
patch -Np1 -i ../procps-2.0.7.patch: Этот патч устраняет проблему локали, когда программа top дает сбой при определенных настройках локали.
make XSCPT="" install: Обнуляет значение переменной XSCPT в Makefile для отключения инсталляции XConsole. В обратном случае, команда "make install" попытается скопировать файл XConsole в каталог /usr/X11R6/lib/X11/app-defaults, который не существует, т.к. X Window System не установлена.
Последняя проверка: версия 2.0.7.
free, kill, oldps, pgrep, pkill, ps, skill, snice, sysctl, tload, top, vmstat, w и watch
free показывает количество свободной и занятой физической и виртуальной памяти системы, а также разделяемой памяти и буферы ядра.
kills посылает сигналы процессам.
ps выводит список процессов.
pgrep выводит список процессов, основываясь на заданных именах и атрибутах.
pkill посылает сигналы процессам, основываясь на заданных именах и атрибутах.
skill посылает сигналы процессам, попадающим под критерий.
snice меняет приоритет процесса, попадающего под критерий.
sysctl меняет параметры ядра во время его работы.
tload выводит статистику загрузки системы на указанный tty (или текущий, если не).
top позволяет отслеживать активность процессора в реальном времени.
vmstat выводит информацию о процессах, памяти, разделе подкачки, блоках IO, и активности процессора.
w показывает информацию о зарегистрировавшихся пользователях и их процессах.
watch многократно выполняет команду, отображая ее вывод.
libproc.so
Последняя проверка: версия 2.0.7.
Bash: sh
Binutils: as, ld, strip
Fileutils: install, ln, mv, rm
Gcc: cc1, collect2, cpp0, gcc
Grep: grep
Make: make
Gawk: awk
Sed: sed
Sh-utils: basename, pwd
Textutils: sort, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.42 SBU |
Перед установкой пакета примените hostname-патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.
Для инсталляции Sh-utils выполните:
patch -Np1 -i ../sh-utils-2.0-hostname.patch && |
В составе данного пакета присутствует команда test. Она часто используется скриптами оболочки для оценки условия, и чаще встречается в виде [ условие ]. Квадратные скобки встроены в интерпретатор команд bash, однако по стандарту FHS должна присутствовать команда [. Создадим ее:
ln -s test /bin/[ |
patch -Np1 -i ../sh-utils-2.0-hostname.patch: Этот патч запрещает компиляцию программы hostname, которая будет установлена позже, в рамках пакета net-tools. Программа hostname из пакета net-tools является предпочтительной (а в некоторых случаях обязательной, т.к. поддерживает опции требуемые некоторыми программами, например XFree86).
Последняя проверка: версия 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 удаляет каталоги и суффиксы из имен файлов.
chroot запускает команду или оболочку в указанном корневом каталоге.
date выводит текущее время в указанном формате или устанавливает.
dirname удаляет суффиксы, не относящиеся к каталогам, из имен файлов.
echo выводит строку текста.
env запускает программу в измененном окружении.
expr вычисляет выражения.
factor выводит разложение на простые множители всех указанных целых чисел.
false всегда завершается с кодом "ошибка".
groups выводит группу, к которой принадлежит пользователь.
hostid выводит числовой идентификатор (шестандцатеричный) текущего хоста.
id выводит пользовательский и групповой ID текущего или заданного пользователя.
logname выводит регистрационное имя текущего пользователя.
nice запускает программу с заданным приоритетом.
nohup выполняет команду, защищенную от зависаний, с выводом в журнальный файл.
pathchk проверяет наличие файла.
pinky - простая утилита finger, показывающая информацию о конкретном пользователе.
printenv выводит значения переменных окружения.
printf выводит форматированные данные (аналогично функции printf в C).
pwd выводит имя текужего каталога.
seq выводит числа в заданном диапазоне с заданным шагом.
sleep делает задержку на указанное количество времени.
stty выводит и изменяет настройки терминала.
su запускает командный интерпретатор с правами указанного пользователя и группы.
tee считывает данные со стандартного ввода и записывает их на стандартый вывод и в файлы.
test проверяет типы файлов и сравнивает значения.
true всегда завершается с кодом "успех".
tty выводит файловое имя терминала, подключенного к стандартному вводу.
uname выводит информацию о системе.
uptime сообщает, как долго активна система.
users выводит имена пользователей, зарегистрированных на локальном хосте.
who показывает зарегистрированных пользователей.
whoami выводит имя пользователя, ассоциированное с текущим пользовательским ID.
yes выводит 'y' или заданную строку до принудительного завершения.
Последняя проверка: версия 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
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.43 SBU |
Для инсталляции Texinfo выполните:
./configure --prefix=/usr && |
make TEXMF=/usr/share/texmf install-tex: Эта команда инсталлирует компоненты texinfo, принадлежащие к пакету TeX. Несмотря на то, что мы не собираемся устанавливать TeX, инсталляция этих компонентов завершает установку texinfo.
Последняя проверка: версия 4.2.
info, infokey, install-info, makeinfo, texi2dvi и texindex
info читает документы Info, обычно находящиеся в /usr/share/info. Документы Info documents схожи с man pages, но содержат больше, чем простое объяснение опций программы.
infokey компилирует в бинарный формат исходный файл персонализаций Info.
install-info обновляет записи info. Когда запускается info, выводится список тем (т.е. доступных документов info). install-info обновляет этот список. Если файлы info удалены вручную, необходимо также удалить тему в оглавлении. Для этого и используется данная программа. Она работает аналогично в случае добавления новых документов.
makeinfo транслирует документы Texinfo в различные форматы. Доступны: файлы info, простой текст и HTML.
texi2dvi выводит документы Texinfo
texindex используется для сортировки оглавлений Texinfo.
Последняя проверка: версия 4.0.
Bash: sh
Binutils: ar, as, ld, ranlib
Diffutils: cmp
Fileutils: chmod, install, ln, ls, mkdir, mv, rm
Gcc: cc1, collect2, cpp0, gcc
Grep: egrep, fgrep, grep
Make: make
Sed: sed
Sh-utils: basename, echo, expr, hostname, sleep
Texinfo: makeinfo
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.11 SBU |
Для инсталляции Psmisc выполните:
./configure --prefix=/usr --exec-prefix=/ && |
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.
Последняя проверка: версия 21.
fuser, killall и pstree
Заметьте, что в LFS мы не создаем ссылку на pidof по умолчанию, поскольку мы используем pidof из sysvinit.
Последняя проверка: версия 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
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.88 SBU |
Перед тем как перейти к инсталляции данного пакета, рекомендуем прочесть руководство по теневым паролям <Shadow passwords>, которое рассказывает о том, как сделать систему более защищенной в отношении паролей, как включить поддержку паролей MD5 и как выжать из пакета Shadow максимум пользы для системы. См. http://hints.linuxfromscratch.org/hints/shadowpasswd_plus.txt.
Для инсталляции Shadow Password Suite выполните:
./configure --prefix=/usr \ |
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 эта символическая ссылка не создается, создадим ее вручную.
Последняя проверка: версия 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 изменяет число дней между сменами паролей и дату последнего изменения.
chfn изменяет полное имя пользователя и прочую информацию о нем (номер рабочего кабинета, рабочий и домашний телефоны).
chpasswd читает файл, содержащий пользовательские имена и пароли, и использует эту информацию для обновления группы существующих пользователей.
chsh меняет командный интерпретатор, используемый пользователем.
dpasswd добавляет, удаляет и обновляет пароли dial-up подключений для командных оболочек.
expiry просматривает и изменяет правила истечения срока действия паролей.
faillog форматирует содержимое журнала ошибок /var/log/faillog и поддерживает счетчики и лимиты ошибок.
gpasswd используется для редактирования /etc/group.
groupadd создает новую группу, используя заданные параметры и параметры по умолчанию.
groupdel изменяет файлы учетных записей, удаляя все относящееся к заданной группе.
groupmod изменяет файлы учетных записей групп, внося заданные изменения.
groups выводит группы, к которым принадлежит пользователь.
grpck проверяет целостность системной информации об аутентификации.
grpunconv конвертирует обычные файлы групп в теневые.
grpunconv конвертирует теневые файлы групп в обычные.
lastlog форматирует и выводит содержимое журнала регистраций /var/log/lastlog. Выводится регистрационное имя, порт и время регистрации.
login используется для начала новой сессии работы с системой.
logoutd контролирует время регистрации и прочие ограничения, указанные в /etc/porttime.
mkpasswd читает файл в заданном формате и конвертирует его в базу данных соответствующего формата.
newgrp изменяет текущую группу.
newusers читает файл с именами пользователей и пустыми полями паролей и обновляет группу существующих пользователей или создает новых.
passwd меняет пароли пользователей и групп.
pwck проверяет целостность файлов паролей.
pwconv конвертирует обычный файл паролей в теневой.
pwunconv конвертирует теневой файл паролей в обычный.
sg меняет GID пользователя на соответствующий указанной группе или выполняет заданную команду с правами указанной группы.
useradd создает нового пользователя или обновляет данные по умолчанию о новых пользователях.
userdel изменяет файлы, содержащие информацию о пользователях, удаляя все записи, относящиеся к указаннному регистрационному имени.
usermod изменяет файлы учетных записей пользователей, внося заданные изменения..
vipw и vigr позволяют безопасно редактировать /etc/passwd и /etc/group. С флагом -s будут редактироваться теневые версии файлов, /etc/shadow и /etc/gshadow.
libmisc.[a,so], libshadow.[a,so]
На данный момент нет описания.
libshadow предоставляет большинство функций для программ 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
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.01 SBU |
Мы будем использовать скрипты инициализации SysV. Выбор в их пользу был сделан нами ввиду его распространености и комфорта для нас. Если вы не разделяете наших предпочтений, см. руководство Марка Хеердинка по установке скриптов инициализации BSD http://hints.linuxfromscratch.org/hints/bsd-init.txt.
Если вы решите использовать скрипты BSD, или какие-либо другие, отличные от SysV, можете смело пропустить Главу 7.
Для инсталляции LFS-Bootscripts выполните:
cp -a rc.d sysconfig /etc && |
Последняя проверка: версия 1.10.
checkfs, cleanfs, functions, halt, ifdown, ifup, loadkeys, localnet, mountfs, mountproc, network, rc, reboot, sendsignals, setclock, swap, sysklogd и template
checkfs проверяет файловые системы перед их монтированием (исключая журналируемые и сетевые файловые системы).
cleanfs удаляет файлы, которые не нужно хранить между перезагрузками, такие, как /var/run/*, /var/lock/*, создает пустой /var/run/utmp и удаляет /etc/nologin, /fastboot, /forcefsck.
functions содержит общие для многих скриптов функции, такие как проверки ошибок и статуса, etc.
halt останавливает систему.
ifdown и ifup используются совместно с network.
loadkeys загружает keymap table, соответствующую раскладке клавиатуры.
localnet устанавливает имя системы и local loopback device.
mountfs монтирует все локальные файловые системы, не помеченные как noauto.
mountproc монтирует файловую систему proc.
network активирует сетевые интерфейсы и определяет шлюз по умолчанию.
rc - основной скрипт, управляющий runlevel и отвечающий за исполнение прочих скриптов в установленном порядке.
reboot перезагружает систему.
sendsignals проверяет, остановлены ли все процессы, перед перезагрузкой ил остановкой системы.
setclock устанавливает часы ядра на местное время в случае, если системный таймер не установлен на GMT.
swap разрешает/запрещает использование файлов и разделов подкачки.
sysklogd запускает и останавливает демоны журнализации ядра и системы в целом.
template - шаблон, который можно использовать для создания собственных загрузочных скриптов для других демонов.
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Теперь, когда все установлено, надо сконфигурировать программы для их корректного запуска.
По умолчанию vim запускается в режиме совместимости с vi. Некоторым это нравиться, но нам надо запускать vim в режиме vim (иначе мы бы не включили vim в описание, а оставили бы vi). Создайте /root/.vimrc запустив следующее:
cat > /root/.vimrc << "EOF" " Begin /root/.vimrc set nocompatible set bs=2 " End /root/.vimrc EOF |
Нам надо создать новый файл /etc/nsswitch.conf запустив следующее:
cat > /etc/nsswitch.conf << "EOF" # Begin /etc/nsswitch.conf passwd: files group: files shadow: files publickey: files hosts: files dns networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: db files # End /etc/nsswitch.conf EOF |
Скрипт tzselect должен быть запущен, и вы должны ответить на вопрос о вашей временной зоне. Когда ответите, скрипт возьмет значение вашего местоположения из файла.
Создайте /etc/localtime симлинк на:
ln -sf ../usr/share/zoneinfo/<tzselect's output> /etc/localtime |
tzselect's должно иметь значение, типа EST5EDT or Canada/Eastern.
Комманда на создание симлинка должна быть типа такой:
ln -sf ../usr/share/zoneinfo/EST5EDT /etc/localtime |
Или:
ln -sf ../usr/share/zoneinfo/Canada/Eastern /etc/localtime |
По умолчанию Dinamic Loader (/lib/ld-linux.so.2)
производит поиск в /lib и /usr/lib на предмет
наличия dinamic libraries для программ, которые в
них нуждаются. Однако, если dinamic libraries
находятся в других директориях, вы должны
добавить их в файл /etc/ld.so.conf, что-бы Dinamic
Loader смог их найти. Две директории
общеизвестны для дополнительных
библиотек: /usr/local/lib и /opt/lib поэтому мы
добавим эти директории в пути поиска Dinamic
Loader:
Создайте новый файл /etc/ld.so.conf следующей
командой:
cat > /etc/ld.so.conf << "EOF" # Begin /etc/ld.so.conf /usr/local/lib /opt/lib # End /etc/ld.so.conf EOF |
Создайте новый файл /etc/syslog.conf используя следующее:
cat > /etc/syslog.conf << "EOF" # Begin /etc/syslog.conf auth,authpriv.* -/var/log/auth.log *.*;auth,authpriv.none -/var/log/sys.log daemon.* -/var/log/daemon.log kern.* -/var/log/kern.log mail.* -/var/log/mail.log user.* -/var/log/user.log *.emerg * # End /etc/syslog.conf EOF |
Этот пакет содержит утилиты для
изменения пользовательских паролей,
добавления или удаления пользователей и
групп и все в этом духе. Мы не хотим
разъяснять вам, что есть теневые пароли.
Полное разъяснение вы получите прочитав
соответствующий HOWTO поставляемый вместе
с Shadow Password Suite Надо запомнить только одну
вещь: если вы хотите использовать теневые
пароли, то убедитесь, что ваши программы (например
xdm, ftp daemons, pop3 daemons) способны работать с
ними (являются ли программы shadow-compliant). Это
все, что нам надо знать.
Для включения механизма теневых паролей
запустите следующую комманду:
/usr/sbin/pwconv |
Создайте новый файл /etc/inittab запустив следующее:
cat > /etc/inittab << "EOF" # Begin /etc/inittab id:3:initdefault: si::sysinit:/etc/rc.d/init.d/rc sysinit l0:0:wait:/etc/rc.d/init.d/rc 0 l1:S1:wait:/etc/rc.d/init.d/rc 1 l2:2:wait:/etc/rc.d/init.d/rc 2 l3:3:wait:/etc/rc.d/init.d/rc 3 l4:4:wait:/etc/rc.d/init.d/rc 4 l5:5:wait:/etc/rc.d/init.d/rc 5 l6:6:wait:/etc/rc.d/init.d/rc 6 ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now su:S016:once:/sbin/sulogin 1:2345:respawn:/sbin/agetty tty1 9600 2:2345:respawn:/sbin/agetty tty2 9600 3:2345:respawn:/sbin/agetty tty3 9600 4:2345:respawn:/sbin/agetty tty4 9600 5:2345:respawn:/sbin/agetty tty5 9600 6:2345:respawn:/sbin/agetty tty6 9600 # End /etc/inittab EOF |
Ничего не раздражает в LINUX так, как
неправильно настроеная клавиатура (раскладка,
keymap). Если вы хотите использовать
раскладку по умолчанию (US keyboard) вы можете
пропустить эту часть. US keymap используется
по умолчанию.
Для установки keymap нужной раскладки,
создайте симлинк /usr/share/kbd/keymaps/defkeymap.map.gz
используя следующую комманду:
ln -s <path/to/keymap> /usr/share/kbd/keymaps/defkeymap.map.gz |
Замените
ln -s i386/qwerty/nl.map.gz /usr/share/kbd/keymaps/defkeymap.map.gz |
Вторая часть конфигурации раскладки заключается в компиляции раскладки прямо в ядро. В этом случае раскладка клавиатуры будет работать корректно даже в режиме maintenance (когда ядро плучает команду init=/bin/sh), для которого сценарии загрузки не выполняются.
Запутите следующую команду для того, что бы пропатчить ядро на предмет правильной раскладки. Вы должны выполнить эту комманду до того как вы распакуете новое ядро.
loadkeys -m /usr/share/kbd/keymaps/defkeymap.map.gz > \ /usr/src/linux/drivers/char/defkeymap.c |
Таким программам как login, shutdown, uptime и другие требуется читать и записывать данные в /var/run/utmp, /var/log/btmp и /var/log/wtmp. Эти файлы содержат информацию о том, кто в текущий момент залогинен в системе. Они так же содержат информацию о моменте последней загрузки и shutdown, и записи о неудачных попытках входа в систему.
Создайте эти файлы и установите на них следующие права доступа:
touch /var/run/utmp /var/log/{btmp,lastlog,wtmp} && chmod 644 /var/run/utmp /var/log/{btmp,lastlog,wtmp} |
Придумайте пароль для пользователя root и установите его следующей командой:
passwd root |
Назад | Домой | Вперед |
Установка LFS-Bootscripts-1.10 | Наверх | Setting up system boot scripts |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.03 SBU |
Последняя проверка: версия 1.4.1.
klogd and syslogd
klogd - системный демон, перехватывающий и сохраняющий в журнале сообщения ядра Linux.
syslogd предоставляет способ журналирования, используемый многими современными программами. Каждое сохраненное сообщение содержит, по крайней мере, информацию о времени и хосте, обычно также имя программы, прочие сведения зависят от приложения.
Последняя проверка: версия 1.4.1.
Binutils: as, ld, strip
Fileutils: install
Gcc: cc1, collect2, cpp0, gcc
Make: make
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.06 SBU |
Когда изменяется уровень (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} && |
Для инсталляции Sysvinit выполните:
make -C src && |
Последняя проверка: версия 2.84.
halt, init, killall5, last, lastb (ссылка на last), mesg, pidof (ссылка на killall5), poweroff (ссылка на halt), reboot (ссылка на halt), runlevel, shutdown, sulogin, telinit (ссылка на init), utmpdump и wall
halt отмечает в /var/log/wtmp завершение работы системы и сообщает ядру о необходимости остановить, перезагрузить или отключить систему. Если halt или reboot вызваны, когда система не на уровнях выполнения 0 или 6, вместо них запускается (с флагами -h и -r соответственно).
init - предок всех процессов. Его основная роль - создание процессов из скрипта /etc/inittab. Этот файл содержит записи для создания getty, к которым подключаются пользователи. initt также контролирует различные автономные процессы.
killall5 - команда killall из SystemV. Посылается сигнал всем процессам вне собственной сессии, так что интерпретатор, выполняющий скрипт, из которого была вызвана эта команда, не будет завершен.
last просматривает /var/log/wtmp (или файл, указанный флагом -f) и выводит список всех пользователей, зарегистрировавшихся и завершивших сеанс с момента создания файла.
lastb действует аналогично last, но по умолчанию выводится журнал /var/log/btmp, содержащий записи о неудачных попытках регистрации.
mesg контролирует внешний доступ к терминалу пользователя. Обычно используется для разрешения записи на данный терминал прочим пользователям.
pidof выводит идентификаторы процессов (PIDs) указанных программ.
poweroff действует аналогично shutdown -h -p. Выполняется останов системы и ее физическое отключение (необходим APM совместимый BIOS и поддержка APM в ядре).
reboot действует аналогично shutdown -r. Выполняется перезагрузка системы.
runlevel читает файл utmp (обычно /var/run/utmp), ищет записи об уровне выполнение, и выводит предыдущий и текущий уровни выполнения на стандартный вывод, разделенные пробелом.
shutdown безопасно останавливает систему. Все зарегистрированные пользователи уведомляются об останове, регистрация в системе запрещается.
sulogin вызывается init, когда система переходит в однопользовательский режим (указывается записью в in /etc/inittab). Init также выполняет sulogin, когда получает флаг -b от загрузчика (например, LILO).
telinit посылает сигналы init, сообщающие о необходимости смены уровня выполнения.
utmpdump выводит содержимое файла (обычно /var/run/utmp) на стандартный вывод в удобном пользователю формате.
wall посылает сообщение всем зарегистрированным пользователям, но лишь в случае, если mesg установлено yes.
Последняя проверка: версия 2.84.
Bash: sh
Binutils: as, ld
Fileutils: chown, cp, install, ln, mknod, rm
Gcc: cc, cc1, collect2, cpp0
Make: make
Sed: sed
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.26 SBU |
Есди вы хотите иметь возможность распаковывать файлы bzip2 программой tar напрямую, примените патч с FTP-сервера LFS. Этот патч добавляет возможность использования опции -j к команде tar, которая работает аналогично с опцией -z, использующейся для распаковки файлов gzip.
Примените патч, выполнив следующую команду:
patch -Np1 -i ../tar-1.13.patch |
Для инсталляции Tar выполните:
./configure --prefix=/usr \ |
Последняя проверка: версия 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
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 6. Установка основных компонентов системы | Вперед |
Приблизительное время компиляции: 0.38 SBU |
Стандарт FHS рекомендует использовать /var/lib/hwclock для хранения файла adjtime, вместо привычного каталога /etc. Для приведения hwclock, являющегося частью пакета util-linux, к соответствию стандарту FHS, выполните:
cp hwclock/hwclock.c{,.backup} && |
Для инсталляции Util-linux выполните:
./configure && |
HAVE_SLN=yes: Не инсталлировать данную программу, т.к. она уже была установлена при инсталляции пакета Glibc.
Последняя проверка: версия 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 открывает tty, запрашивает регистрационное имя и запускает /bin/login.
arch выводит информацию об архитектуре машины.
blockdev позволяет вызывать ioctls блочного устройства из командной строки.
cal выводит простой календарь.
cfdisk - редактор разделов диска, основанный на библиотеке libncurses.
chkdupexe находит дублирующиеся исполняемые файлы.
col фильтрует перевернутые строки, поступающие с ввода.
colcrt фильтрует вывод nroff для предпросмотра CRT.
colrm удаляет колонки из файла.
column объединяет списки в файл из нескольких колонок.
ctrlaltdel устанавливает действие для комбинации клавиш CTRL+ALT+DEL (жесткая или мягкая перезагрузка).
cytune запрашивает и изменяет порог прерывания для драйвера Cyclades.
ddate конвертирует дату по Грегорианскому календарю в дату по календарю Discordian.
dmesg просматривает и контролирует буфер kernel ring (сообщения загрузки ядра).
elvtune позволяет настраивать the I/O elevator per block device queue basis.
fdformat выполняет низкоуровневое форматирование дискет.
fdisk - редактор дисковых разделов.
На данный момент нет описания.
fsck.minix проверяет целостность файловых систем MINIX.
getopt анализирует переданные из командной строки параметры таким же образом как и одноименная функция C.
hexdump выводит указанные файлы на стандартный вывод в указанном формате (ascii, десятичный, шестнадцатеричный, восьмеричный).
hwclock устанавливает системные часы (часы RTC или BIOS).
ipcrm удаляет указанный ресурс.
ipcs выводит информацию об устройствах IPC.
isosize выводит объем файловой системы iso9660.
line копирует одну строку (до символа новой строки) из стандартного ввода на стандартный вывод.
logger делает записи в системном журнале.
look выводит строки, начинающиеся с заданной.
losetup управляет устройствами loop.
mcookie генерирует "магические" ключи для xauth.
mkfs создает файловую систуму Linux на устройстве, обычно разделе диска.
mkfs.bfs создает файловую систему SCO bfs на устройстве, обычно разделе диска.
На данный момент нет описания.
mkfs.minix создает файловую систему Linux MINIX на устройстве, обычно разделе диска.
mkswap создает пространство подкачки на устройстве или в файле.
more - фильтр для поэкранного просмотра текста.
mount монтирует файловую систему устройства в каталог (точку монтирования).
namei переходит по заданному пути до тех пор, пока не будет найдена точка терминала.
Это примеры скриптов, использующих getopt с BASH или TCSH.
На данный момент нет описания.
pivot_root изменяет корневую файловую систему текущего процесса.
ramsize запрашивает и меняет размер RAM диска.
raw используется для привязки символьных устройств к блочным.
rdev запрашивает и устанавливает образ корневого устройства, устройства подкачки, объем RAM диска или видорежим.
readprofile выводит информацию из профиля ядра.
rename переименовывает файлы.
renice меняет приоритет запущенных процессов.
rev инвертирует строки файлов.
rootflags запрашивает и сохраняет дополнительную информацию, используемую для монтирования корневой файловой системы.
script создает скрипт терминальной сессии.
setfdprm устанавливает параметры гибких дисков.
setsid запускает программы в новой сессии.
setterm устанавливает параметры терминала.
sfdisk - редактор дисковых разделов.
swapoff деактивирует файлы и устройства подкачки.
swapon активирует файлы и устройства подкачки.
tunelp устанавливает различные параметры LP устройств.
ul читает файл и переводит символы подчеркивания в последовательность, отображающую подчеркивание на используемом терминале.
umount размонтирует смонтированную файловую систему.
vidmode запрашивает и устанавливает видеорежим.
whereis находит исполняемый файл, исходные коды и документацию для указанной команды.
write посылает сообщение другому пользователю.
Последняя проверка: версия 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
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Вперед |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 5. Подготовка системы LFS | Вперед |
В этой главе мы скомпилируем и установим минимальную Linux-систему. Эта система будет располагать инструментами, необходимыми для сборки окончательной системы LFS в следующей главе.
Файлы, скомпилированные в данной главе, будут инсталлированы в директорию $LFS/static,
для того, чтобы отделить их от тех файлов, которые будут установлены в следующей
главе. Так как эти программы можно рассматривать как временные, нет необходимости
засорять ими нашу будущую систему LFS.
Ключ к пониманию работы Linux - четкое знание о том, для чего нужен системе и пользователю каждый пакет программ, и что он делает. Для этого после инструкций по установке по каждому пакету приведены короткие описания входящих в него программ.
Перед использованием ко многим пакетам необходимо применить патчи. Мы будем делать это только там и тогда, где необходимо, так что не стоит волноваться, если инструкции по применению патча отсутствуют.
Во время инсталляции
некоторых пакетов, на экран будут выводиться многочисленные предупреждения
компилятора. В них нет ничего страшного, не обращайте на них внимание. Это
просто предупреждения -- в основном, связанные с некорректным, но не запрещенным
использованием синтакса C или C++. Дело в том, что стандарты C довольно часто
менялись, а некоторые пакеты все еще используют старый стандарт, однако это
не проблема.
Прежде чем начать, убедитесь, что переменная LFS задана корректно. Для проверки выполните:
echo |
Убедитесь, что вывод на экране соответствует точке монтирования раздела LFS (например /mnt/lfs).
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 5. Подготовка системы LFS | Вперед |
(Спасибо Plasmatic'у за разъяснение этого вопроса в одном из списков рассылки LFS.)
При компиляции программы, вместо того, чтобы при создании нового файла каждый раз переписывать все функции работы с ядром, аппаратными средствами, файлами, все базовые функции хранятся в библиотеках. glibc, которую мы установим позже, является одной из главных библиотек такого рода. Она содержит код для всех основных функций, таких как открытие файлов, печать информации на экран, получение ввода от пользователя. После компиляции программы эти библиотеки связываются ссылками с новой программой, чтобы она могла использовать любую функцию этих библиотек.
Однако такие библиотеки могут оказаться довольно большими (например, libc.a обычно занимает 2.5 MB), и держать отдельную копию каждой библиотеки прикрепленной к программе не очень то и логично. Представьте себе простую команду вроде ls с лишними 2.5 MB, прикрепленными к ней! Вместо того, чтобы делать библиотеку частью программы, или связывать статической ссылкой, библиотеку можно хранить в отдельном файле, который будет подгружаться по мере необходимости. Это называется динамическими ссылками, т.к. библиотека загружается и выгружается динамически, по мере необходимоти программы.
Итак, у нас есть файл размером 1 KB и файл размером 2.5 MB. Пока мы не съэкономили дискового пространства (разве что освободили оперативную память до того, как библиотека понадобится). Настоящая выгода от использования динамических ссылок состоит в том, что нам необходимо хранить лишь одну копию библиотеки. Если ls и rm используют одну и ту же библиотеку, то нам не нужно иметь две копии этой библиотеки. Обе команды могут пользоваться кодом из одного файла. Также и с оперативной памятью - две программы используют один код вместо того, чтобы загружать в память его дубликаты. Таким образом экономится не только место на диске, но и драгоценная оперативная память.
Если динамические ссылки позволяют съэкономить столько места, почему же мы везде используем статические ссылки? Потому что, когда вы входите в новую (и далекую от совершенства) систему LFS с помощью команды chroot, динамические библиотеки будут недоступны, т.к. они находятся в дереве старого дистрибутива (например в /usr/lib). Эти каталоги будут недоступны из корневой директории системы LFS ($LFS).
Для того чтобы скомпилированные программы работали в среде chroot, при компиляции убедитесь, что библиотеки связаны статическими ссылками, отсюда возникают опции --enable-static-link, --disable-shared, и -static в Главе 5. Первое, что описывает Глава 6, это компиляция основных библиотек системы, glibc. После этого, мы перекомпилируем все программы, собранные в Главе 5, но в этот раз с динамическими ссылками, чтобы воспользоваться всеми преимуществами экономии дискового пространства.
Именно поэтому мы и используем эти странные опции -static. Если скомпилировать пакеты без них, вы довольно быстро увидите, что случится, после того как вы войдете в парализованную систему LFS при помощи команды chroot.
Для получения более детальной информации по динамически связанным библиотекам, обратитесь к книгам и Linux-ориентированным сайтам по программированию.
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 5. Подготовка системы LFS | Вперед |
Как уже говорилось во вступлении в данную главу, все, что будет инсталлировано в этой главе, попадет в директорию $LFS/static, чтобы не загрязнять раздел LFS кучей временных файлов. Нам необходимо лишь создать эту директорию:
mkdir $LFS/static |
Для удобства можно поместить загруженные пакеты в директорию $LFS/static, например сохранить их в подкаталоге $LFS/static/src.
Назад | Домой | Вперед |
Почему мы используем статические ссылки? | Наверх | Установка всех компонентов в режиме непривилегированного пользователя |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 5. Подготовка системы LFS | Вперед |
Если при выполнении шагов, описанных в Главе 5, вы будете зарегистрированы в системе как root, есть вероятность, что некоторые файлы системы будут заменены файлами, которые будут скомпилированы в Главе 5. На это есть ряд причин, неопределенная переменная $LFS - одна из них. Замена файлов на вашей системе скорее всего приведет к возникновению всякого рода проблем, поэтому рекомендуется выполнять шаги Главы 5 от имени непривилегированного пользователя. Для чистоты эксперимента создадим новую учетную запись "lfs", которую будем использовать на стадии компиляции со статическими ссылками. Для добавления новой учетной записи, выполните следующие команды в режиме пользователя root:
useradd -s /bin/bash -m lfs && |
Теперь скорректируем права на директорию $LFS/static, чтобы пользователь "lfs" имел к ней доступ на запись:
chown -R lfs $LFS/static |
Теперь войдите в систему под учетной записью "lfs". Это можно сделать двумя способами: через новую виртуальную консоль или оконный менеджер, или командой su - lfs. После этого выполните следующие команды от имени пользователя "lfs" для создания благоприятной среды:
cat > ~/.bash_profile << "EOF" |
Этот профиль устанавливает umask равным 022, чтобы созданные файлы и директории автоматически получали правильные права. Настоятельно рекомендуется использование этой установки на протяжении всей инсталляции LFS. Также были заданы переменные $LFS, $LC_ALL, и $CC. Про переменную $LFS мы уже не раз говорили. Переменная $LC_ALL используется для интернационализации.
Если на вашем базовом дистрибутиве установлена библиотека glibc версии 2.2.4 и ранее, и на протяжении Главы 5 переменная $LC_ALL определена не как "C" или "POSIX", могут возникнуть проблемы при выходеи повторном входе в среду chroot в Главе 6. Для того чтобы быть уверенным в том, что в среде chroot все будет работать корректно, присвойте этой переменной значение "POSIX" ("C" is an alias for "POSIX").
Использование переменной $CC вызвано необходимостью предотвратить компиляцию отладочных символов в статические пакеты. Таким образом экономится дисковое пространство и существенно сокращается время компиляции.
Приблизительное время компиляции: 1 SBU |
Перед тем как установить Bash, убедитесь, что в вашем базовом дистрибутиве есть файлы /usr/lib/libcurses.a и usr/lib/libncurses.a. Если ваш дистрибутив - LFS system, оба файла должны быть на месте при условии, что вы в точности следовади инструкциям книги.
Если этих файлов нет, следует установить пакет разработки Ncurses, его иногда называют ncurses-dev. Если этот пакет уже установлен, или вы только что его установили, проверьте наличие этих двух файлов еще раз. Зачастую файл libcurses.a отсутствует. В таком случае, создайте символическую ссылку libcurses.a, выполнив следующую команду в режиме пользователя root:
ln -s libncurses.a /usr/lib/libcurses.a |
Теперь можно продолжить инсталляцию Bash:
./configure --enable-static-link \ |
Если стадия make install выдает следующие сообщения об ошибках:
install-info: unknown option `--dir-file=/mnt/lfs/usr/info/dir'
usage: install-info [--version] [--help] [--debug] [--maxwidth=nnn]
[--section regexp title] [--infodir=xxx] [--align=nnn]
[--calign=nnn] [--quiet] [--menuentry=xxx]
[--info-dir=xxx]
[--keep-old] [--description=xxx] [--test]
[--remove] [--] filename
make[1]: *** [install] Error 1
make[1]: Leaving directory `/mnt/lfs/usr/src/bash-2.05a/doc'
make: [install] Error 2 (ignored)
это означает, что у вас Debian-2.2 (potato), в котором используется старая версия пакета texinfo. Данная ошибка не критична: страницы документации будут заново установлены в Главе 6, при перекомпиляции bash с динамическими ссылками. В текущем релизе Debian (3.0; известном под названием Woody) эта проблема отсутствует.
--enable-static-link: Эта опция configure указывает на использование статических ссылок.
--prefix=$LFS/static: Эта опция configure инсталлирует все файлы Bash в директорию $LFS/static, которая будет именоваться /static после того, как мы войдем в систему LFS с помощью команды chroot или перезагрузки.
--with-curses: Эта опция связывает bash с библиотекой curses вместо устаревающей библиотеки termcap.
Совершенно
необязательно связывать статичеккую версию bash с libncurses (можно связать
ее с termcap, т.к. в любом случае мы перекомпилируем Bash в Главе 6 с использованием
libncurses), однако это хороший способ убедиться, что пакет Ncurses установлен
корректно. В обратном случае, это повлечет за собой сбои при инсталляции
пакета Texinfo, которому необходима библиотека ncurses, т.к. с termcap он
ведет себя нестабильно.
Символы && в конце каждой строки указывают на то, что следующая команда должна быть выполнена лишь в том случае, если предыдущая команда возвратила значение 0 на выходе, т.е. успешно завершила операцию. В том случае если вы копируете и вставляете эти команды в оболочку, не забывайте убедиться, что если скрипт ./configure дал сбой, не выполняется команда make, а также, если команда make дала сбой, не выполняется команда make install, и т.д.
Последняя проверка: версия 2.05a.
bash, sh (ссылка на bash) и bashbug
bash - Bourne-Again SHell, широко используемый в Unix системах командный интерпретатор. Bash считывает данные со стандартного ввода, с клавиатуры. Пользователь вводит что-либо, интерпретатор распознает введенное и выполняет это, например запускает программу.
bashbug - скрипт, помогающий пользователю составлять и отправлять сообщения об ошибках bash в стандартном формате.
sh - символическая ссылка на bash. Будучи вызванным как sh, bash имитирует запуск старых версий sh для лучшего соответствия стандартам POSIX.
Последняя проверка: версия 2.05a.
Bash: bash, sh
Binutils: ar, as, ld, ranlib, size
Diffutils: cmp
Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm
Gcc: cc, cc1, collect2, cpp0, gcc
Grep: egrep, grep
Make: make
Gawk: awk
Sed: sed
Sh-utils: basename, echo, expr, hostname, sleep, uname
Texinfo: install-info
Textutils: cat, tr, uniq
Назад | Домой | Вперед |
Установка всех компонентов в режиме непривилегированного пользователя | Наверх | Установка Binutils-2.13 |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 5. Подготовка системы LFS | Вперед |
Приблизительное время компиляции: 2.05 SBU |
Этот пакет известен своим нестабильным поведением при компиляции с измененными опциями оптимизации (включая опции -march и -mcpu). Binutils рекомендуется компилировать с настройками по умолчанию. Следовательно, если вы задали переменные такие как CFLAGS или CXXFLAGS, изменяющие уровень оптимизации по умолчанию, рекомендуется убрать их при сборке пакета binutils. Изменяя оптимизации для binutils, вы действуете на свой страх и риск.
Для инсталляции Binutils выполните:
mkdir ../binutils-build && |
mkdir ../binutils-build: В инструкциях установки Binutils рекомендуется создать отдельную директорию для сборки, вместо того, чтобы компилировать программу в директории исходников. Итак, мы создаем директорию binutils-build и будем работать из нее.
--disable-nls: Эта опция выключает поддержку интернационализации (или i18n), которая не нужна нам на стадии статически связанных программ, т.к. часто дает сбои при использовании статических ссылок.
LDFLAGS=-all-static: Присваиваем переменной LDFLAGS значение -all-static для того, чтобы использовать статические ссыдки.
Последняя проверка: версия 2.12.1.
addr2line, ar, as, gasp, gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings and strip
addr2line переводит программные адреса в имена файлов и номера строк. Given an address and an executable, используется отладочная информация исполняемого файла, чтобы определить, какое имя файла и номер строки связаны с данным адресом.
ar создает и изменяет архивы, а также производит их распаковку. Архив - файл, содержащий несколько файлов в виде, позволяющем восстановить оригинал.
as используется для ассемблирования вывода the GNU C Compiler, gcc для использования с линкером ld.
gasp - Assembler Macro Preprocessor.
gprof отображает статистику системных вызовов.
ld объединяет несколько объектных и архивных файлов и устанавливает символьные отношения. Последний шаг в сборке скомпилированной программы - запуск ld.
nm перечисляет символы из объектных файлов.
objcopy utility копирует содержимое одного объектного файла в другой. objcopy использует библиотеку GNU BFD для чтения/записи объектных файлов. Возможна запись конечного объектного файла в формате, отличном от исходного.
objdump выводит информацию об одном или нескольких объектных файлах. Опции указываеют, какую информацию выводить. Эта информация полезна для программистов, разрабатывающих компиляторы, в противоположность тем, кому нужно просто скомпилировать и запустить программу.
ranlib генерирует оглавление содержимого архива и сохраняет его в архиве. Список будет содержать все символы, определенные членами архива, that is a relocatable object file.
readelf выводит информацию об бинарных файлах типа elf.
size выводит размеры секций --и общий размер-- каждого указанного объектного файла. По умолчанию, генерируется одна строка для каждого объектного файла или модуля в архиве.
Для каждого задананного файла strings выводит последовательность отображаемых символов длиной минимум 4 знака (или указанной длины), завершающуюся непечатным символом. По умолчанию, выводятся лишь строки из инициализированных и загруженных частей объектных файлов. Для других типов файлов выводятся строки из всего файла.
strings зачастую используется для определения содержимого нетекстовых файлов.
strip удаляет все или указанные символы из объектных файлов. Список объектных файлов может включать архивы. Должен быть задан как минимум один объектный файл. Модификация указанных файлов приоритетнее, чем запись модифицированных копий под другими именами.
libbfd.[a,so] и libopcodes.[a,so]
libbfd - библиотека Binary File Descriptor.
libopcodes - библиотека для работы с опкодами, используется в сборке утилит вроде objdump. Опкоды - "читаемые" версии инструкций процессора.
Последняя проверка: версия 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
Приблизительное время компиляции: 0.07 SBU |
Для инсталляции Bzip2 выполните:
make CC="gcc -static" && |
Стоит заметить, что имеет смысл загрузить патч для программы Tar, который позволяет ей без труда запаковывать и распаковывать архивы с помощью bzip2/bunzip2. Однако этот патч не является частью базовой системы LFS. С обычной версией tar, для работы с bzip2/bunzip2 используются конструкции вида bzcat file.tar.bz | tar -xv или tar --use-compress-prog=bunzip2 -xvf file.tar.bz2. Вышеупомянутый патч предоставляет возможность использования опции -j, при помощи которой распаковать архив bzip2 командой tar -xvfj file.tar.bz2. Применение данного патча будет рассмотрено далл, при установке пакета Tar.
make CC="gcc -static": Таким образом мы сообщаем gcc, что компиляция bzip2 должна быть выполнена с использованием статических ссылок.
Последняя проверка: версия 1.0.2
bunzip2 (ссылка на bzip2), bzcat (ссылка на bzip2), bzcmp, bzdiff, bzegrep, bzfgrep, bzgrep, bzip2, bzip2recover, bzless и bzmore
bunzip2 распаковывает файлы, сжатые bzip2.
bzcat (или bzip2 -dc) распаковывает указанные файлы на стандартный вывод.
bzcmp и bzdiff позволяют использовать cmp и diff для файлов, сжатых bzip2.
bzegrep, bzfgrep, и bzgrep позволяют использовать egrep, fgrep, or grep для файлов, сжатых bzip2.
bzip2 сжимает файлы, используя Burrows-Wheeler block sorting алгоритм сжатия текста и код Huffman. Сжатие, обычно: значительно лучше, чем достигаемое традиционными архиваторами, основанными на LZ77/LZ78, и достигает производительности PPM семейства статистических архиваторов.
bzip2recover восстанавливает данные из поврежденных файлов bzip2.
bzless - подобный less фильтр, позволяющий поэкранный просмотр сжатых или текстовых файлов.
bzmore - подобный more фильтр, позволяющий поэкранный просмотр сжатых или текстовых файлов.
libbz2.a, libbz2.so (ссылка на libbz2.so.1.0), libbz2.so.1.0 (ссылка на libbz2.so.1.0.2) и libbz2.so.1.0.2
libbz2 - библиотека, реализующая сжатие данных без потерь, используя block-sorting алгоритм Burrows-Wheeler.
Последняя проверка: версия 1.0.1.
Bash: sh
Binutils: ar, as, ld, ranlib
Fileutils: cp, ln, rm
Gcc: cc1, collect2, cpp0, gcc
Make: make
Приблизительное время компиляции: 0.39 SBU |
Для инсталляции Diffutils выполните:
LDFLAGS=-static CPPFLAGS=-Dre_max_failures=re_max_failures2 \ |
CPPFLAGS=-Dre_max_failures=re_max_failures2: Переменная CPPFLAGS считывается программой cpp (препроцессор Си). Значение этой переменной дает указание препроцессору заменить re_max_failures на re_max_failures2 во всех случаях перед тем, как передать файл исходного кода компилятору для компиляции. Известны случаи, когда этот пакет ведет себя некорректно при попытке использовать статические ссылки на системах со старой версией Glibc. Данная конструкция устраняет проблему.
Последняя проверка: версия 2.8.1.
cmp, diff, diff3 и sdiff
cmp и diff сравнивают пару файлов и сообщают об их различиях. Обе программы имеют дополнительные опции сравнения файлов в различных ситуациях.
Разница между diff и diff3 состоит в том, что diff сравнивает 2 files, а diff3 - 3.
sdiff выполняет слияние 2 файлов и интерактивно выводит результаты.
Последняя проверка: версия 2.7.
Bash: sh
Binutils: ld, as
Diffutils: cmp
Fileutils: chmod, cp, install, mv, rm
Gcc: cc1, collect2, cpp0, gcc
Grep: egrep, grep
Make: make
Sed: sed
Sh-utils: date, hostname
Textutils: cat, tr
Приблизительное время компиляции: 0.94 SBU |
Некоторые программы из статически слинкованного пакета Fileutils могут вызвать ошибку сегментации на системах, где используется Glibc-2.2.3. Чаще всего эта проблема встречается на системах с процессорами AMD, однако было зафиксировано несколько случаев на Intel-системах. Если ваша система попадает под данную категорию, примените патч.
В некоторых случаях после применения патча компиляция пакета будет невозможна, даже если у вас процессор AMD и библиотеки Glibc-2.2.3 (или новее). В таком случае удалите директорию fileutils-4.1 и заново распакуйте tar-архив. Предполагается, что это связано с тем, что ваш базовый дистрибутив каким-то образом изменил библиотеки Glibc-2.2.3, однако на данный момент подробности недоступны.
Для того чтобы данный пакет корректно компилировался на системах с процессорами AMD и библиотеками Glibc-2.2.3, выполните следующую команду. Не делайте этго, если у вас не установлена Glibc-2.2.3. Более чем вероятно, это вызовет различные сбои при компиляции.
patch -Np1 -i ../fileutils-4.1.patch |
Для инсталляции Fileutils выполните:
LDFLAGS=-static \ |
Теперь можно проверить, удалось ли избежать проблемы с ошибкой сегментации. Выполните $LFS/static/bin/ls. Если программа работает, все в порядке. Если нет, повторите инсталляцию с применением патча, если вы инсталлировали пакет без него, или без применения патча, если до этого вы инсталлировали пакет с его применением.
patch -Np1 -i ../fileutils-4.1.patch: Эта команда решает проблему компиляции fileutils с использованием статических ссылок на системах с библиотеками glibc 2.2.3. Если этого не сделать, то впоследствии вы вероятно столкнетесь с ошибками сегментации при выполнении программ из пакета fileutils, когда войдете в систему LFS с помощью chroot в Главе 6.
Последняя проверка: версия 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 группу владельца указанных файлов, возможно указание как имени группы, так и ее номера.
chmod изменяет права доступа к указанному файлу, в соответствии с параметрами, заданными символьно или в восьмеричном представлении двоичного выражения новых прав.
chown изменяет владельца и/или группу указанных файлов.
cp копирует файлы.
dd копирует файл (по умолчанию, со стандартного ввода на стандартный вывод) с указанным размером блока и опциональными преобразованиями.
df показывает количество свободного места на файловых системах, содержащих указанные файлы. Если файлы не заданы, показывется свободное место на всех смонтированных файловых системах.
dir и vdir - версии ls с разными форматами вывода по умолчанию. Эти программы выводят список заданных файлов и каталогов. Содержимое каталога сортируется по алфавиту. ls, по умолчанию, перечисляет файлы в столбцах если стандартный вывод - терминал, иначе идет перечисление по одному в строке. dir, по умолчанию, перечисляет файлы в столбцах. vdir, по умолчанию перечисляет файлы в полном формате.
dircolors выводит значение LS_COLOR. Переменная LS_COLOR используется для установки цветовой схемы, используемой ls и прочими утилитами.
du выводит количество дискового пространства, занятого указанными файлами и каталогами (включая подкаталоги).
install копипует файлы, устанавливает права доступа и, если возможно, владельца и группу.
ln создаетжесткие или мягкие (символические) ссылки на файлы.
mkdir создает каталог с заданным именем.
mkfifo создает FIFO с заданным именем.
mknod создает FIFO, символьный или блочный файл с заданным именем.
mv перемещает файлы из одного каталога в другой или переименовывает их, в зависимости от заданных параметров.
rm удаляет файлы или каталоги.
rmdir удаляет пустые каталоги.
shred безопасно удаляет файл, перезаписывая занимаемые им блоки, так что содержимое невозможно восстановить.
sync принудительно записывает изменившиеся блоки на диск и обновляет superblock.
touch изменяет время доступа и изменения каждого заданного файла на текущее время. Если файл не существует, то создается пустой файл.
Последняя проверка: версия 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
Приблизительное время компиляции: 0.12 SBU |
Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.
Для инсталляции Findutils выполните:
patch -Np1 -i ../findutils-4.1.patch && |
patch -Np1 -i ../findutils-4.1.patch: Этот патч исправляет некоторые ошибки при компиляции, избегая конфликта переменных и исправляя синтакс.
Последняя проверка: версия 4.1.
bigram, code, find, frcode, locate, updatedb и xargs
bigram используется вместе с code для создания поисковых баз старого типа. Больше информации об этих программах приведено на locatedb.5 man page.
code - предшественник frcode. Он использовался в старых поисковых базах.
find ищет файлы, отвечающие заданному критерию. Если критерий не задан, выводится список файлов в текущем каталоге и каталогах нижнего уровня.
frcode вызывается updatedb для сжатия списка файлов, используя front-compression и уменьшая размер базы данных в 4-5 раз.
locate просматривает базу данных, содержащую сведения обо всех файлах и каталогах на файловой системе. Программа выводит имена файлов и каталогов в базе, совпадающие с заданным критерием. Если пользователь ищет файлы, программа просмотрит базу и сообщит, где находятся запрошенные файлы. Поиск даст результаты, только если база часто обновляется, иначе будет выдана устаревшая информация.
updatedb обновляет поисковую базу. Просматривается вся файловая система (включая все смонтированные, если не указано обратное), каждый найденный файл и каталог записывается в базу, используемую locate. Неплохо обновлять базу хотя бы раз в день, чтобы избежать ее устаревания.
xargs выполняет команду относительно списка файлов. Список должен содержать одно имя в строке.
Последняя проверка: версия 4.1.
Bash: sh
Binutils: ar, as, ld, ranlib
Diffutils: cmp
Fileutils: chmod, cp, install, mv, rm
Grep: egrep, grep
Gcc: cc1, collect2, cpp0, gcc
Make: make
Patch: patch
Sed: sed
Sh-utils: basename, date, echo, hostname
Textutils: cat, tr
Приблизительное время компиляции: 0.39 SBU |
Для инсталляции Gawk выполните:
CPPFLAGS=-Dre_max_failures=re_max_failures2 \ |
Последняя проверка: версия 3.1.1.
awk, gawk, gawk-3.1.1, grcat, igawk, pgawk, pgawk-3.1.1, pwcat
awk - символьная ссылка на gawk.
gawk - GNU реализация awk, языка поиска и обработки текстовых образцов.
grcat выполняет слияние базы групп, /etc/group.
igawk - скрипт, дающий gawk возможность включения файлов.
pgawk - профильная версия gawk.
pwcat выполняет слияние базы паролей, /etc/passwd.
Приблизительное время компиляции: 9.48 SBU |
Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.
Этот пакет известен своим нестабильным поведением при компиляции с измененными опциями оптимизации (включая опции -march и -mcpu). GCC рекомендуется компилировать с настройками по умолчанию. Следовательно, если вы задали переменные такие как CFLAGS или CXXFLAGS, изменяющие уровень оптимизации по умолчанию, рекомендуется убрать их при сборке пакета GCC. Изменяя оптимизации для GCC, вы действуете на свой страх и риск.
Для инсталляции GCC выполните:
patch -Np1 -i ../gcc-3.2.patch && |
patch -Np1 -i ../gcc-3.2.patch: Этот патч исправляет некоторые ошибки, в частности содержит "copy fix" и "var fix", документированные на сайте http://www.zipworld.com.au/~gschafer/lfs-tweaks.html.
patch -Np1 -i ../gcc-3.2-nofixincludes-2.patch: Предотвращает запуск скрипта fixincludes.
--prefix=/static: Это НЕ опечатка. При компиляции, GCC жестко прописывает пути, и нам необходимо передать путь /static в качестве префикса к скрипту ./configure. Реальный путь инсталляции мы укажем команде make install.
--enable-languages=c: Указание собрать компилятор Си. Компилятор C++ будет собран позже, в Главе 6, когда мы будем перекомпилировать GCC. Для сборки других компиляторов, опустите параметр --enable-languages.
echo "#define HAVE_GAS_HIDDEN 1": Определям директиву ассемблера .hidden, для того чтобы впоследствии скомпилировать Glibc правильно.
make BOOT_LDFLAGS=-static: Это эквивалент опции LDFLAGS=-static, который мы задаем для использования статическихх ссылок при компиляции.
ln -s gcc $LFS/static/bin/cc: Создание символической ссылки $LFS/static/bin/gcc, необходимой для некоторых пакетов.
Последняя проверка: версия 3.1.
c++, c++filt, cc (link to gcc), cc1, cc1plus, collect2, cpp, cpp0, g++, gcc, gccbug, gcov и tradcpp0
Компилятор C. Компилятор переводит код из текстового формата в формат, понятный компьютеру. После того, как исходный код скомпилирован в объектный файл, линкер создаст исполняемый файл из одного или нескольких объектных.
Компилятор C++, эквивалент cc, gcc etc.
Язык C++ позволяет осуществлять перезагрузку фуннкций, делая возможным написание многих функций с одним именем (с разным набором параметром). Все имена фунций C++ закодированы в низкоуровневые метки ассемблера (этот процесс известен как mangling). c++filt совершает обратное действие: низкоуровневые имена переводятся (demangling) в имена, понятные пользователю, так что линкер избегает конфликта между перезагруженными функциями.
collect2 помогает в компиляции конструкторов.
cpp осуществляет препроцессинг исходных файлов, например включает в них содержимое заголовочных файлов. Просто добавьте в ваш исходный файл строку вроде #include <filename>. Препроцессор вставит содержимое заголовочного файла.
gccbug - скрипт, облегчающий создание сообщений об ошибках.
gcov анализирует программы, чтобы помочь в создании более эффективного и быстрого кода путем его оптимизации.
На данный момент описания нет.
libgcc.a, libgcc_eh.a, libgcc_s.so, libiberty.a, libstdc++.[a,so], libsupc++.a
Файлы поддержки gcc времени исполнения.
libiberty - коллекция подпрограмм, используемых различными программами GNU, включая getopt, obstack, strerror, strtol и strtoul.
libstdc++ - библиотека C++. Она используется программами на C++ и содержит часто используемые функции. Таким образом, программисту не нужно писать стандартные фунции (например, вывод строки текста на экран) с нуля при каждом создании программы.
libsupc++ предоставляет поддержку языка программирования C++. Помимо прочего, libsupc++ содержит функции для обработки исключений.
Последняя проверка: версия 2.95.3.
Bash: sh
Binutils: ar, as, ld, nm, ranlib
Diffutils: cmp
Fileutils: chmod, cp, ln, ls, mkdir, mv, rm, touch
Find: find
Gcc: cc, cc1, collect2, cpp0, gcc
Grep: egrep, grep
Make: make
Patch: patch
Sed: sed
Sh-utils: basename, dirname, echo, expr, hostname, sleep, true, uname
Tar: tar
Texinfo: install-info, makeinfo
Textutils: cat, tail, tr
Estimated build time: 0.26 SBU |
Install Grep by running the following commands:
LDFLAGS=-static CPPFLAGS=-Dre_max_failures=re_max_failures2 \ |
Последняя проверка: версия 2.5.
egrep (ссылка на grep), fgrep (ссылка на grep) и grep
Последняя проверка: версия 2.4.2.
Autoconf: autoconf, autoheader
Automake: aclocal, automake
Bash: sh
Binutils: as, ld
Diffutils: cmp
Fileutils: chmod, install, ls, mkdir, mv, rm
Gettext: msgfmt, xgettext
Gcc: cc, cc1, collect2, cpp0, gcc
Glibc: getconf
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, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 5. Подготовка системы LFS | Вперед |
Приблизительное время компиляции: 0.04 SBU |
Для инсталляции Gzip выполните:
./configure --prefix=$LFS/static && |
Последняя проверка: версия 1.2.4a.
gunzip (ссылка на gzip), gzexe, gzip, uncompress (ссылка на gunzip), zcat (ссылка на gzip), zcmp, zdiff, zforce, zgrep, zmore и znew
gunzip и uncompress распаковывают файлы, сжатые gzip.
gzexe позволяет сжать исполняемые файлы и автоматически распаковывать их при запуске (уменьшается производительность ).
gzip уменьшает размер указанных файлов используя код Lempel-Ziv (LZ77).
zcat распаковывает и выводит на стандартный вывод либо файлы из заданного списка, либо файл со стандартного ввода.
zcmp применяет cmp к сжатым файлам.
zdiff применяет diff к сжатым файлам.
zforce присваивает расширение .gz всем файлам gzip, так что они не будут сжаты дважды. Может быть полезно для файлов, чьи имена были изменены после их передачи.
zgrep применяет grep к сжатым файлам.
zmore - фильтр, позволяющий поэкранный просмотр (не)сжатых текстовых файлов (вроде more).
znew конвертирует файлы формата .Z (compress) в .gz (gzip).
Последняя проверка: версия 1.2.4a.
Bash: sh
Binutils: as, ld, nm
Fileutils: chmod, cp, install, ln, mv, rm
Gcc: cc1, collect2, cpp, cpp0, gcc
Grep: egrep, grep
Make: make
Sed: sed
Sh-utils: hostname
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 5. Подготовка системы LFS | Вперед |
Приблизительное время компиляции: 0.26 SBU |
Для инсталляции Make выполните:
./configure --prefix=$LFS/static --disable-nls && |
Во время стадии make install на экран будет выведено следующее предупреждение:
chgrp: changing group of `/mnt/lfs/static/bin/make': Operation not permitted
/mnt/lfs/static/bin/make needs to be owned by group kmem and setgid;
otherwise the `-l' option will probably not work. You may need special
privileges to complete the installation of /mnt/lfs/static/bin/make.
Не обращайте на него внимания. Программа make не должна принадлежать группе kmem и setgid для выполнения опции -l . (Данная опция говорит команде make не начинать новых заданий, если загрузка системы достигла определенного уровня.)
Последняя проверка: версия 3.79.1.
Autoconf: autoconf, autoheader
Automake: aclocal, automake
Bash: sh
Binutils: as, ld
Diffutils: cmp
Fileutils: chgrp, chmod, install, ls, mv, rm
Gcc: cc, cc1, collect2, cpp0, gcc
Glibc: getconf
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, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 5. Подготовка системы LFS | Вперед |
Приблизительное время компиляции: 0.10 SBU |
Для инсталляции Patch выполните:
CPPFLAGS=-D_GNU_SOURCE \ |
CPPFLAGS=-D_GNU_SOURCE: Установка этого параметра исправляет ошибки инсталляции на платформах PPC и m68k. Этот параметр не помешает компиляции на других платформах, например на x86, поэтому мы устанавливаем его по умолчанию.
Последняя проверка: версия 2.5.4.
patch
patch модифицирует файл в соответствии с патчем. Патч обычно является списком, созданным diff, содержащим инструкции к изменению. Patch часто используется для исправлений в исходном коде, поскольку сохраняет время и место на диске. Например, имеется пакет объемом 1 MB. Следующая версия пакета имеет изменения только в 2 файлах. Новая версия может быть как новым пакетом в 1 MB или патчем в 1 KB. Таким образом, патчи позволяют избежать объемных загрузок.
Последняя проверка: версия 2.5.4.
Bash: sh
Binutils: as, ld
Diffutils: cmp
Fileutils: chmod, install, mv, rm
Gcc: cc, cc1, collect2, cpp0, gcc
Glibc: getconf
Grep: egrep, grep
Make: make
Sed: sed
Sh-utils: echo, expr, hostname, uname
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 5. Подготовка системы LFS | Вперед |
Приблизительное время компиляции: 0.09 SBU |
Для инсталляции Sed выполните:
CPPFLAGS=-Dre_max_failures=re_max_failures2 \ |
Последняя проверка: версия 3.02.
Autoconf: autoconf, autoheader
Automake: aclocal, automake
Bash: sh
Binutils: ar, as, ld, ranlib
Diffutils: cmp
Fileutils: chmod, install, ls, mv, rm
Gcc: cc1, collect2, cpp0, gcc
Glibc: getconf
Grep: egrep, fgrep, grep
M4: m4
Make: make
Gawk: gawk
Sed: sed
Sh-utils: echo, expr, hostname, sleep
Texinfo: install-info, makeinfo
Textutils: cat, tr
Linux From Scratch: Version 4.0 | ||
---|---|---|
Назад | Глава 5. Подготовка системы LFS | Вперед |
Приблизительное время компиляции: 0.47 SBU |
Перед инсталляцией Sh-utils необходимо применить патч, необходимый для избежания конфликта имен переменных с некоторыми версиями Glibc (обычно glibc-2.1.x) при компиляции sh-utils с использованием статических ссылок. Рекомендуем воспользоваться данным патчем вне зависимости от используемой версии glibc.
patch -Np1 -i ../sh-utils-2.0.patch |
Для инсталляции Sh-utils выполните:
./configure --prefix=$LFS/static \ |
На стадии make install следующее предупреждение будет выведено на экран:
WARNING: insufficient access; not installing su
NOTE: to install su, run 'make install-root' as root
Не обращайте на него внимание. В соответствии с требованиями Sh-utils для установки программы su, вы должны находиться в системе в режиме пользователя root. Смело проигнорируйте это предупреждение, т.к. на данном этапе команда su не нужна, мы установим ее должным образом при перекомпилировании пакета Sh-utils в Главе 6.
Последняя проверка: версия 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 удаляет каталоги и суффиксы из имен файлов.
chroot запускает команду или оболочку в указанном корневом каталоге.
date выводит текущее время в указанном формате или устанавливает.
dirname удаляет суффиксы, не относящиеся к каталогам, из имен файлов.
echo выводит строку текста.
env запускает программу в измененном окружении.
expr вычисляет выражения.
factor выводит разложение на простые множители всех указанных целых чисел.
false всегда завершается с кодом "ошибка".
groups выводит группу, к которой принадлежит пользователь.
hostid выводит числовой идентификатор (шестандцатеричный) текущего хоста.
id выводит пользовательский и групповой ID текущего или заданного пользователя.
logname выводит регистрационное имя текущего пользователя.
nice запускает программу с заданным приоритетом.
nohup выполняет команду, защищенную от зависаний, с выводом в журнальный файл.
pathchk проверяет наличие файла.
pinky - простая утилита finger, показывающая информацию о конкретном пользователе.
printenv выводит значения переменных окружения.
printf выводит форматированные данные (аналогично функции printf в C).
pwd выводит имя текужего каталога.
seq выводит числа в заданном диапазоне с заданным шагом.
sleep делает задержку на указанное количество времени.
stty выводит и изменяет настройки терминала.
su запускает командный интерпретатор с правами указанного пользователя и группы.
tee считывает данные со стандартного ввода и записывает их на стандартый вывод и в файлы.
test проверяет типы файлов и сравнивает значения.
true всегда завершается с кодом "успех".
tty выводит файловое имя терминала, подключенного к стандартному вводу.
uname выводит информацию о системе.
uptime сообщает, как долго активна система.
users выводит имена пользователей, зарегистрированных на локальном хосте.
who показывает зарегистрированных пользователей.
whoami выводит имя пользователя, ассоциированное с текущим пользовательским ID.
yes выводит 'y' или заданную строку до принудительного завершения.
Последняя проверка: версия 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
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 5. Подготовка системы LFS | Вперед |
Приблизительное время компиляции: 0.25 SBU |
Для того чтобы использовать tar с файлами формата bzip2 напрямую, примените патч с FTP-сервера LFS. Этот патч добавляет опцию -j, которая работает с командой tar также как опция -z (которая используется с файлами gzip).
Примените патч следующим образом:
patch -Np1 -i ../tar-1.13.patch |
Для инсталляции Tar выполните:
./configure --prefix=$LFS/static --disable-nls && |
Последняя проверка: версия 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
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 5. Подготовка системы LFS | Вперед |
Приблизительное время компиляции: 0.47 SBU |
Для установки Texinfo выполните:
LDFLAGS=-static ./configure --prefix=$LFS/static \ |
Последняя проверка: версия 4.2.
info, infokey, install-info, makeinfo, texi2dvi и texindex
info читает документы Info, обычно находящиеся в /usr/share/info. Документы Info documents схожи с man pages, но содержат больше, чем простое объяснение опций программы.
infokey компилирует в бинарный формат исходный файл персонализаций Info.
install-info обновляет записи info. Когда запускается info, выводится список тем (т.е. доступных документов info). install-info обновляет этот список. Если файлы info удалены вручную, необходимо также удалить тему в оглавлении. Для этого и используется данная программа. Она работает аналогично в случае добавления новых документов.
makeinfo транслирует документы Texinfo в различные форматы. Доступны: файлы info, простой текст и HTML.
texi2dvi выводит документы Texinfo
texindex используется для сортировки оглавлений Texinfo.
Последняя проверка: версия 4.0.
Bash: sh
Binutils: ar, as, ld, ranlib
Diffutils: cmp
Fileutils: chmod, install, ln, ls, mkdir, mv, rm
Gcc: cc1, collect2, cpp0, gcc
Grep: egrep, fgrep, grep
Make: make
Sed: sed
Sh-utils: basename, echo, expr, hostname, sleep
Texinfo: makeinfo
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 5. Подготовка системы LFS | Вперед |
Приблизительное время компиляции: 0.95 SBU |
Для инсталляции Textutils выполните:
CPPFLAGS=-Dre_max_failures=re_max_failures2 \ |
Последняя проверка: версия 2.0.
cat, cksum, comm, csplit, cut, expand, fmt, fold, head, join, md5sum, nl, od, paste, pr, ptx, sort, split, sum, tac, tail, tr, tsort, unexpand, uniq и wc
cat выводит файлы на стандартный вывод.
cksum выводит контрольную сумму CRC и объем в байтах каждого указанного файла.
comm построчно сравнивает два отсортированных файла.
csplit выводит части файла, разделенные заданными строками, в файлы xx01, xx02, ..., и размер каждой части на стандартный вывод.
cut выводит указанные строки из указанных файлов на стандартный вывод.
expand конвертирует знаки табуляции в файле в пробелы и выводит результат на стандартный вывод.
fmt форматирует каждый абзац в указанных файлах и выводит результат на стандартный вывод.
fold делает переносы вводимых строк из указанных файлов (по умолчанию, со стандартного ввода) и выводит результат на стандартный вывод.
head выводит первые x (по умолчанию 10) строк каждого указанного файла на стандартный вывод.
join соединяет строки двух файлов в поля.
md5sum выводит или проверяет контрольные суммы MD5.
nl выводит каждый указанный файл на стандартный вывод, добавляя номера строк.
od выводит выводит файл в различных форматах, по умолчанию в восьмеричном, на стандартный вывод.
paste выводит строки, соответствующие заданным образцам из указанных файлов и разделенные символами табуляции, на стандартный вывод.
pr разделяет файлы на страницы или колонки для распечатки.
ptx составляет оглавление файла.
sort выводит на стандартный вывод построчно отсортированное слияние файлов.
split разбивает входной файл на части заданного размера PREFIXaa, PREFIXab, ...
sum выводит контрольную сумму и количество занимаемых блоков каждого указанного файла.
tac выводит каждый указанный файл на стандартный вывод last line first.
tail выводит последние xx (по умолчанию 10) строк каждого указанного файла на стандартный вывод.
tr заменяет, вставляет, и/или удаляет символы из стандартного ввода, выводя результат на стандартный вывод.
tsort выводит полностью упорядоченные списки, учитывая уже проведенную сортировку указанных файлов.
unexpand конвертирует пробелы в каждом файле в символы табуляции, выводя результат на стандартный вывод.
uniq удаляет повторяющиеся строки из отсортированного файла.
wc выводит количество строк, слов и размер в байтах кажого указанного файла и сумму результатов, если указано более одного файла.
Последняя проверка: версия 2.0.
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
Perl: perl
Sed: sed
Sh-utils: basename, echo, expr, sleep, uname
Tar: tar
Texinfo: install-info, makeinfo
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 5. Подготовка системы LFS | Вперед |
Приблизительное время компиляции: 0.09 SBU |
Мы не собираемся компилировать весь пакет целиком, т.к. на данном этапе нам нужны только программы mount и umount.
Для инсталляции Util-linux выполните:
./configure && |
Последняя проверка: версия 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
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Вперед |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 4. Готовим новый раздел | Вперед |
В этой главе речь пойдет о создании раздела для системы LFS. Мы создадим сам раздел, файловую систему на нем, и монтируем его.
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 4. Готовим новый раздел | Вперед |
Возможно построить систему LFS на одном разделе с уже установленным дистрибутивом. Несмотря на то, что для первой установки LFS данный шаг не рекомендуется, это удобно, если у вас дефицит дискового пространства. Если вы решили рискнуть, см. совет по Инсталляции LFS на один раздел с сосуществующими системами на http://hints.linuxfromscratch.org/hints/lfs_next_to_existing_systems.txt.
Перед тем как перейти к установке LFS необходимо иметь пустой Linux-native раздел. Для установки LFS рекомендуется раздел размеров не менее 1 GB. Это дает возможность хранить tar-архивы с программами и компилировать пакеты. Если вы планируете использовать LFS в качестве основной Linux-системы, вам придется отвести для нее больше места для инсталляции дополнительного программного обеспечения. Если Linux-native раздел для LFS уже существует, можете смело пропустить эту подсекцию.
В связи с тем, что оперативная память компьютера может одновременно уместить ограниченное количество информации, рекомендуется отвести место на диске для файлов swap. Файл swap - это место, где хранится информация из памяти, которую можно вызвать в любой момент. LFS и ваш дистрибутив могут свместно использовать это дисковое пространство. Другими словами, если у вас уже есть swap-раздел, нет особого смысла создавать еще один. Если же у вас его нет, создайте его программой fdisk. В любом случае, запомните обозначение swap-раздела (например, hda2), это понадобится при создании файла /etc/fstab.
Программа cfdisk (аналогичная fdisk) запускается с соответствующим обозначением жесткого диска в качестве аргумента (например /dev/hda, в случае если новый раздел следует создать на жестком диске primary master с IDE интерфейсом). С помощью этой программы создайте раздел Linux native. Обратитесь к документации программы fdisk ( руководства man обычно неплохое начало для поиска информации) для получения информации о создании разделов Linux native и записи таблиц разделов.
Запомните обозначение раздела, оно будет выглядеть как например hda11. Этот раздел мы впоследствии будем называть разделом LFS.
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 4. Создаем новый раздел | Вперед |
После того как новый раздел создан, создадим на нем файловую систему. На данный момент стандартная файловая система - ext2, однако так называемые журналируемые файловые системы становятся очень популярными. Мы будем подразумевать, что вы собираетесь использовать ext2. Инструкции по созданию других файловых систем см. на http://beyond.linuxfromscratch.org/view/cvs/postlfs/filesystems.html.
Для создания файловой системы ext2, используйте команду mke2fs. Наименование раздела LFS - единственная опция к команде, и файловая система создана.
mke2fs /dev/xxx |
Замените "xxx" на наименование раздела LFS (например hda11).
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 4. Готовим новый раздел | Вперед |
Итак, файловая система создана и готова к эксплуатации. Для того чтобы получить доступ к разделу (возможность чтения и записи информации на нем), необходимо его монтировать.Если точка монтирования /mnt/lfs, перейти к этому разделу можно с помощью команды cd /mnt/lfs. Мы будем подразумевать, что точка монтирования раздела - /mnt/lfs. Выбор директории для точки монтирования не принципиален, просто запомните, что вы выбрали.
Создайте директорию /mnt/lfs:
mkdir -p /mnt/lfs |
Монтируем LFS раздел:
mount /dev/xxx |
Замените "xxx" наименованием раздела (например hda11).
Эта директория (/mnt/lfs) и есть значение переменной LFS variable из Главы 2. Если вы планируете использовать переменную среды LFS, самое время выполнить export LFS=/mnt/lfs.
Если вы решили выделить LFS несколько разделов (к примеру $LFS и $LFS/usr), монтируйте их следующим образом:
mkdir -p /mnt/lfs && |
Естественно, замените /dev/xxx и /dev/yyy на соответствующие наименования разделов.
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 3. Необходимые пакеты | Вперед |
Ниже приведен список пакетов программ, необходимых для построения базовой системы. Указанные номера версий соответствуют стабильным версиям программ, на которых основана эта книга.
Все ссылки указаны на главный сервер LFS. Можно также воспользоваться FTP-зеркалами, см. Глава 1 - Зеркала.
LFS FTP-архив содержит версии программ, используемые в книге. Для того чтобы узнать о появлении новой версии, посетите официальные места загрузки программ, см. Приложение A.Если вам удастся установить новую версию программы, используя инструкцииэтой книги, мы будем рады узнать об этом.
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Вперед |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 3. Необходимые пакеты | Вперед |
Сервер FTP:
ftp://ftp.linuxfromscratch.org/
Сервер HTTP:
http://ftp.linuxfromscratch.org/
Загрузите все необходимые пакеты для компиляции системы LFS в одном tar-архиве:
Все пакеты LFS - 105,560 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/lfs-packages-4.0.tar
http://ftp.linuxfromscratch.org/lfs-packages/4.0/lfs-packages-4.0.tar
Или все пакеты по отдельности:
Autoconf (2.53) - 739 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/autoconf-2.53.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/autoconf-2.53.tar.bz2
Automake (1.6.3) - 465 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/automake-1.6.3.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/automake-1.6.3.tar.bz2
Bash (2.05a) - 1,400 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/bash-2.05a.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/bash-2.05a.tar.bz2
Bin86 (0.16.3) - 113 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/bin86-0.16.3.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/bin86-0.16.3.tar.bz2
Binutils (2.13) - 9,651 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/binutils-2.13.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/binutils-2.13.tar.bz2
Bison (1.35) - 613 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/bison-1.35.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/bison-1.35.tar.bz2
Bzip2 (1.0.2) - 610 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/bzip2-1.0.2.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/bzip2-1.0.2.tar.bz2
Diffutils (2.8.1) - 642 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/diffutils-2.8.1.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/diffutils-2.8.1.tar.bz2
E2fsprogs (1.27) - 1,176 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/e2fsprogs-1.27.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/e2fsprogs-1.27.tar.bz2
Ed (0.2) - 158 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/ed-0.2.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/ed-0.2.tar.bz2
Ed Patch (0.2) - 1 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/ed-0.2.patch.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/ed-0.2.patch.bz2
File (3.39) - 151 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/file-3.39.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/file-3.39.tar.bz2
Fileutils (4.1) - 1,217 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/fileutils-4.1.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/fileutils-4.1.tar.bz2
Fileutils Patch (4.1) - 1 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/fileutils-4.1.patch.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/fileutils-4.1.patch.bz2
Findutils (4.1) - 226 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/findutils-4.1.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/findutils-4.1.tar.bz2
Findutils Patch (4.1) - 1 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/findutils-4.1.patch.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/findutils-4.1.patch.bz2
Flex (2.5.4a) - 278 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/flex-2.5.4a.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/flex-2.5.4a.tar.bz2
Gawk (3.1.1) - 1,420 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/gawk-3.1.1.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/gawk-3.1.1.tar.bz2
Gawk Patch (3.1.1-2) - 1 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/gawk-3.1.1-2.patch.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/gawk-3.1.1-2.patch.bz2
GCC (3.2) - 20,043 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/gcc-3.2.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/gcc-3.2.tar.bz2
GCC Patch (3.2) - 4 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/gcc-3.2.patch.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/gcc-3.2.patch.bz2
GCC nofixincludes Patch (3.2) - 1 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/gcc-3.2-nofixincludes-2.patch.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/gcc-3.2-nofixincludes-2.patch.bz2
Gettext (0.11.5) - 2,489 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/gettext-0.11.5.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/gettext-0.11.5.tar.bz2
Glibc (2.2.5) - 12,114 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/glibc-2.2.5.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/glibc-2.2.5.tar.bz2
Glibc Patch (2.2.5-2) - 8 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/glibc-2.2.5-2.patch.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/glibc-2.2.5-2.patch.bz2
Glibc-linuxthreads (2.2.5) - 164 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/glibc-linuxthreads-2.2.5.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/glibc-linuxthreads-2.2.5.tar.bz2
Grep (2.5) - 545 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/grep-2.5.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/grep-2.5.tar.bz2
Groff (1.18) - 1,739 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/groff-1.18.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/groff-1.18.tar.bz2
Gzip (1.2.4a) - 179 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/gzip-1.2.4a.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/gzip-1.2.4a.tar.bz2
Gzip Patch (1.2.4b) - 1 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/gzip-1.2.4b.patch.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/gzip-1.2.4b.patch.bz2
Kbd (1.06) - 559 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/kbd-1.06.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/kbd-1.06.tar.bz2
Kbd Patch (1.06-3) - 3 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/kbd-1.06-3.patch.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/kbd-1.06-3.patch.bz2
Less (374) - 189 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/less-374.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/less-374.tar.bz2
LFS-Bootscripts (1.10) - 27 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/lfs-bootscripts-1.10.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/lfs-bootscripts-1.10.tar.bz2
Libtool (1.4.2) - 653 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/libtool-1.4.2.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/libtool-1.4.2.tar.bz2
Lilo (22.2) - 292 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/lilo-22.2.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/lilo-22.2.tar.bz2
Linux (2.4.19) - 25,432 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/linux-2.4.19.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/linux-2.4.19.tar.bz2
M4 (1.4) - 249 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/m4-1.4.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/m4-1.4.tar.bz2
Make (3.79.1) - 794 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/make-3.79.1.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/make-3.79.1.tar.bz2
MAKEDEV (1.7) - 8 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/MAKEDEV-1.7.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/MAKEDEV-1.7.bz2
Man (1.5k) - 168 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/man-1.5k.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/man-1.5k.tar.bz2
Man Patch (1.5k) - 1 KB
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/man-1.5k.patch.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/man-1.5k.patch.bz2
Man-pages (1.52) - 569 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/man-pages-1.52.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/man-pages-1.52.tar.bz2
Modutils (2.4.19) - 213 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/modutils-2.4.19.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/modutils-2.4.19.tar.bz2
Ncurses (5.2) - 1,308 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/ncurses-5.2.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/ncurses-5.2.tar.bz2
Ncurses Patch (5.2-2) - 1 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/ncurses-5.2-2.patch.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/ncurses-5.2-2.patch.bz2
Netkit-base (0.17) - 49 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/netkit-base-0.17.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/netkit-base-0.17.tar.bz2
Net-tools (1.60) - 194 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/net-tools-1.60.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/net-tools-1.60.tar.bz2
Patch (2.5.4) - 149 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/patch-2.5.4.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/patch-2.5.4.tar.bz2
Perl (5.8.0) - 8,416 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/perl-5.8.0.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/perl-5.8.0.tar.bz2
Procinfo (18) - 22 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/procinfo-18.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/procinfo-18.tar.bz2
Procps (2.0.7) - 153 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/procps-2.0.7.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/procps-2.0.7.tar.bz2
Procps Patch (2.0.7) - 1 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/procps-2.0.7.patch.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/procps-2.0.7.patch.bz2
Psmisc (21) - 172 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/psmisc-21.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/psmisc-21.tar.bz2
Sed (3.02) - 221 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/sed-3.02.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/sed-3.02.tar.bz2
Shadow (4.0.3) - 760 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/shadow-4.0.3.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/shadow-4.0.3.tar.bz2
Sh-utils (2.0) - 824 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/sh-utils-2.0.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/sh-utils-2.0.tar.bz2
Sh-utils Hostname Patch (2.0-hostname) - 1 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/sh-utils-2.0-hostname.patch.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/sh-utils-2.0-hostname.patch.bz2
Sh-utils Patch (2.0) - 1 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/sh-utils-2.0.patch.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/sh-utils-2.0.patch.bz2
Sysklogd (1.4.1) - 67 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/sysklogd-1.4.1.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/sysklogd-1.4.1.tar.bz2
Sysvinit (2.84) - 76 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/sysvinit-2.84.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/sysvinit-2.84.tar.bz2
Tar (1.13) - 730 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/tar-1.13.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/tar-1.13.tar.bz2
Tar Patch (1.13) - 1 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/tar-1.13.patch.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/tar-1.13.patch.bz2
Texinfo (4.2) - 1,175 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/texinfo-4.2.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/texinfo-4.2.tar.bz2
Textutils (2.1) - 1,847 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/textutils-2.1.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/textutils-2.1.tar.bz2
Util-linux (2.11u) - 1,073 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/util-linux-2.11u.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/util-linux-2.11u.tar.bz2
Vim (6.1) - 2,823 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/vim-6.1.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/vim-6.1.tar.bz2
Vim Patch (6.1) - 1 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/vim-6.1.patch.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/vim-6.1.patch.bz2
Zlib (1.1.4) - 144 KB:
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/zlib-1.1.4.tar.bz2
http://ftp.linuxfromscratch.org/lfs-packages/4.0/zlib-1.1.4.tar.bz2
Общий объем пакетов: 105,560 KB (103.88 MB)
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 2. Важная информация | Вперед |
Убедительная просьба прочесть этот раздел внимательно: переменная LFS будет часто использоваться далее. $LFS всегда необходимо заменять на путь директории, где монтирован раздел LFS. Как создать такой раздел и куда его монтировать, описано в Главе 4. Допустим, например, что раздел LFS монтирован на /mnt/lfs.
Когда вас просят выполнить ./configure --prefix=$LFS/static , на самом деле вам необходимо исполнить ./configure --prefix=/mnt/lfs/static.
Необходимо запомнить, что так следует поступать везде, где вы видите переменную $LFS - как в командной строке, так и в создаваемых или редактируемых файлах.
Однако можно существенно облегчить задачу. Для того чтобы использовать $LFS, а не прописывать каждый раз путь к директории, создайте переменную среды LFS следующей командой:
export LFS=/mnt/lfs |
Теперь, если вас просят выполнить команду ./configure --prefix=$LFS/static, можно печатать как есть, не заменяя $LFS на путь к директории. После нажатия клавишы Enter, оболочка сама подставит вместо $LFS значение этой переменной, как мы ее определили командой export.
Если вы собираетесь использовать $LFS, никогда не забывайте задавать переменную LFS. В случае если она не задана, оболочка проигнорирует $LFS и выполнит остаток команды. Например, если выполнить команду echo "root:x:0:0:root:/root:/bin/bash" > $LFS/etc/passwd , не задав переменную LFS, оболочка заново создаст файл /etc/passwd. Иными словами, уничтожит текущую базу паролей системы.
Для того чтобы всегда быть уверенным в том, что переменная LFS задана, добавьте ее в файлы /root/.bash_profile и /root/.bashrc. Теперь каждый раз когда вы входите в систему под учетной записью root, или получаете его права с помощью команды su , переменная LFS будет задана автоматически.
Назад | Домой | Вперед |
Важная информация | Наверх | Про SBU |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 2. Важная информация | Вперед |
SBU или Static Bash Units <Статические единицы Bash> используются для определения времени, необходимого для компиляции программы. Почему мы не используем привычные единицы времени, такие как секунды, минуты, часы?
Проблема заключается в том, что использование привычных единиц времени в данном случае дает слишком неточные результаты. Люди инсталлируют LFS на множестве различных систем, и время, затраченное на компиляцию определенной программы будет разным для каждой системы. На одной системе пакет компилируется за 20 минут, на другой системе тот же самый пакет собирается за 3 дня (заметьте, это не преувеличение). Поэтому мы решили использовать SBU.
Как это работает: первым пакетом, который вам будет предложено скомпилировать в Главе 5 будет оболочка Bash со статическими ссылками. Время, потраченное на его компиляцию, будет взято за базис и названо SBU. Время компиляции других программ попадет в прямую зависимость от времени, затраченного на компиляцию Bash. К примеру, компиляция GCC-3.2 занимает примерно 9.5 SBU, и проверено, что это число довольно постоянно на разных системах. Теперь мы умножим 9.5 на число секунд, потраченных на компиляцию Bash (значение SBU), и получим приблизительное время в секундах, необходимое для компиляции GCC.
Примечание: Использование SBU не подходит для многопроцессорных систем. В случае если вы счастливый обладатель такого компьютера, время компиляции, подсчитанное с помощью SBU будет неточным.
Назад | Домой | Вперед |
Про $LFS | Наверх | Где хранить загруженные программы |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Вперед |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 2. Важная информация | Вперед |
На протяжении этой книги мы допускаем, что все скаченные пакеты находятся в директории $LFS/usr/src.
Несмотря на то, что не имеет принципиального значения, где сохранены пакеты, убедительная просьба расположить их по крайней мере на разделе LFS, т.к необходимо иметь доступ к ним, когда вы входите в $LFS с помощью команды chroot или когда вы загружаетесь в систему LFS. Директория $LFS/usr/src - довольно логичное место для хранения исходных кодов, однако это не является необходимым условием. Можно создать подкаталог в $LFS/usr/src для хранения tar-архивов, отделив таким образом tar-архивы от временных директорий компиляции. Опять же, решать вам.
Следующая глава содержит список программ для скачивания. Так как раздел LFS еще не создан, сохранить их там мы пока не можем. На данном этапе сохраните их в другом месте, и переместите на раздел LFS, когда его создадите.
Назад | Домой | Вперед |
Про SBU | Наверх | Как инсталлировать программы |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 2. Важная информация | Вперед |
Прежде чем начать, примите к сведению, что все команды в этой книге подразумевают, что вы используете оболочку Bash. Команды могут работать и с другими оболочками, но этого мы гарантировать не можем. Не хотите проблем - используйте Bash.
Перед тем как инсталлировать пакет, его надо распаковать. Обычно пакеты заархивированы в формате gzip или bzip2. Мы не собираемся каждый раз объяснять, как распаковать пакет. Мы объясним это в данном разделе раз и навсегда.
Для начала перейдите в каталог $LFS/usr/src:
cd $LFS/usr/src |
Если файл запакован в tar и gzip, разархивируйте его следующим образом, в зависимости от имени файла:
tar -xvzf filename.tar.gz tar -xvzf filename.tgz |
Если файл запакован в tar и bzip2:
bzcat filename.tar.bz2 | tar -xv |
Большинство программ tar способны использовать файлы формата bzip2 напрямую. Они используют параметры -I, -y, или -j, которые аналогичны параметру -z для файлов в формате gzip. Команда, приведенная выше, универсальна и не зависит от того, как ваша система интерпретирует tar.
Если файл запакован просто в формате tar, выполните
tar -xvf filename.tar |
При распаковке архива в текущем каталоге создается подкаталог (мы подразумеваем, что архивы распаковываются в директории $LFS/usr/src). Войдите в созданный подкаталог перед выполнением инсталляционных инструкций. Повторим еще раз: каждый раз при установке программы, вы должны распаковать ее архив и перейти в созданный архиватором подкаталог.
Иногда вы столкнетесь с патчами. Обычно они просто запакованы с использованием gzip или bzip2. Перед тем как ими воспользоваться, распакуйте их.
Если файл запакован в формате gzip, распакуйте его следующей командой:
gunzip filename.gz |
Если файл запакован в формате bzip2, распакуйте его следующей командой:
bunzip2 filename.bz2 |
После инсталляции пакета можно либо удалить директорию его исходных кодов, либо сохранить ее. Настоятельно рекомендуем удалять эту директорию. Если этого не сделать и повторно использовать директорию исходников (например, повторно использовать исходники из Главы 5 в Главе 6), получится не совсем то, чего вы ожидали. Деревья исходных кодов в Главе 5 содержат настройки базового дистрибутива, которые не всегда подойдут к системе LFS, после того как вы войдете в среду chroot. Даже выполнение make clean не гарантирует чистого дерева исходников.
Так что просто удаляйте каталог исходных кодов сразу же после их инсталляции, однако на будущее сохраняйте скаченный tar-архив.
Исключение их этого правила - дерево исходных кодов ядра. Не удаляйте ее, т.к. она понадобится в дальнейшем. До того момента никакая программа не будет использовать это дерево, так что оно не помешает. Однако если у вас дефицит дискового пространства, можете смело удалить каталог с исходниками ядра и повторно распаковать этот архив позже.
Назад | Домой | Вперед |
Где хранить загруженные программы | Наверх | Поддерживаемые платформы |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 2. Важная информация | Вперед |
Мы стараемся сделать LFS как можно более универсальной. Однако, примите к сведению,что основная разработка ведется на платформе x86. Мы постараемся включить информацию о различиях компиляции для других платформ, например для PPC. Если вы столкнетесь с проблемой компиляции на платформе, отлично от x86, в любом случае отправьте сообщение об этом в список рассылки. Более того, если вам удастся решить проблему, дайте нам знать - пошлите сообщение в список lfs-dev. Проверив правильность решения, мы включим его в книгу.
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 2. Важная информация | Вперед |
В том случае, если при прочтении этой книги вы столкнетесь с проблемой, недокументированной в FAQ, многие участники проекта LFS в списках рассылки и на канале IRC будут рады помочь. Получить общее представление о списках рассылки LFS вы можете в разделе Глава 1 - Списки рассылки и архивы. Чтобы нам было легче диагностировать и решать вашу проблему, пострайтесь привести как можно больше деталей в запросе.
Помимо краткого описания проблемы, не забудьте указать нижеприведенные вещи:
версию используемой книги,
название пакета или секции, с которой у вас проблемы,
сообщение об ошибке или симптомы проблемы,
отклонялись ли вы от шагов,описанных в книге
(Заметьте, что если вы отклонялись от книги, это не значит, что мы не попытаемся помочь, ведь весь смысл LFS - в возможности выбора. Просто напросто ваше признание поможет нам найти решение.)
Если при выполнении скрипта configure, что-то прошло не так как надо, обратите внимание на последние строки в файле config.log. Обычно этот файл содержит сообщения об ошибках, которые не были выведены на экран. Если вы задумали попросить нас о помощи, не забудьте включить эти строки в ваше сообщение.
Для того чтобы помочь нам найти причину проблемы, важен как вывод на экране, так и содержание некоторых файлов. Вывод на экране скрипта ./configure и команды make содержат много полезной информации. Не стоит слепо включать в свое сообщение весь вывод, но и не следует включать слишком мало информации. Ниже приведен вывод на экран команды make:
gcc |
В таком случае,большинство просто включают в сообщении с просьбой помочь строку:
make [2]: *** [make] Error 1 |
В Интернете есть замечательная статья от том, как правильно задавать вопросы, написанная Эриком С. Реймондом. Она находится по адресу http://www.tuxedo.org/~esr/faqs/smart-questions.html. Следую советам статьи, вы научитесь правильно задавать вопросы и ваши шансы получить квалифицированный ответ возрастут.
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 1. Вступление | Вперед |
Мы благодарим всех людей и организации за их вклад в развитие проекта Linux From Scratch:
Назад | Домой | Вперед |
Вступление | Наверх | Как мы будем работать |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 1. Вступление | Вперед |
4.0 - 5 октября 2002 г.
3 октября 2002 [gerard]: Глава 06 - Linuxthreads: Вместо cd man используйте опцию -C для make. В этом больше смысла, и так короче.
29 сентября 2002 [gerard]: Глава 05 - GCC: Исправлен и заново инсталлирован старый патч nofixincludes.
29 сентября 2002 [markh]: Глава 05 - Bash: Правильная ссылка к предыдущему стабильному релизу Debian (potato), т.к. он не подходит к нынешнему (woody). Сообщил h2k1 на канале #lfs.
4.0-RC1 - 28 сентября 2002
Обновления:
automake-1.6.3
bin86-0.16.3
binutils-2.13
bison-1.35
diffutils-2.8.1
file-3.39
gawk-3.1.1
gcc-3.2
gettext-0.11.5
groff-1.18
gzip-1.2.4b.patch
lfs-bootscripts-1.10
linux-2.4.19
MAKEDEV-1.7
man-1.5k
man-pages-1.52
modutils-2.4.19
ncurses-5.2-2.patch
perl-5.8.0
psmisc-21
texinfo-4.2
textutils-2.1
util-linux-2.11u
Добавления:
ed-0.2.patch
fileutils-4.1.patch
gawk-3.1.1-2.patch
gcc-3.2.patch
gcc-3.2-nofixincludes.patch
glibc-2.2.5-2.patch
gzip-1.2.4b.patch
kbd-1.06-3.patch
man-1.5k.patch
ncurses-5.2.patch
procps-2.0.7.patch
sh-utils-2.0-hostname.patch
vim-6.1.patch
zlib-1.1.4
Удалено:
gzip-1.2.4a.patch
kbd-1.06-2.patch
reiserfsprogs-3.x.1b
28 сентября 2002 [gerard]: Глава 05 - GCC: Добавлен патч nofixincludes, чтобы предотвратить запуск этого скрипта в Главе 05. Он должен запускаться в Главе 06, для этого нужен отдельный патч.
28 сентября 2002 [gerard]: Глава 06 - Man: Удалена конструкция sed, теперь используется патч.
28 сентября 2002 [gerard]: Глава 06 - Bzip2: Удалено PREFIX=/usr из команды make install, т.к. PREFIX уже указывает на /usr по умолчанию.
28 сентября 2002 [gerard]: Глава 06 - Vim: Удалены записи о соответствии с FHS. Они не имеют смысла, т.к. Vim вообще не использует localstatedir.
28 сентября 2002 [timothy]: Применен грамматический патч от Bill Maltby. Изменен "$LFS" на "LFS", в случаях когда речь идет о переменной среды LFS.
23 сентября 2002 [timothy]: Применены различные грамматические патчи от Bill Maltby.
23 сентября 2002 [timothy]: Добавлено - опции tar (для ясности).
22 сентября 2002 [timothy]: Глава 06: Применен грамматический патч от Alex.
21 сентября 2002 [timothy]: Глава 02: Применены различные грамматические патчи от Bill Maltby.
21 сентября 2002 [timothy]: Глава 06 - Zlib: mv общую библиотеку в /lib.
20 сентбяря 2002 [timothy]: Глава 05 - GCC: Удалена опция --enable-threads=posix, т.к. компилятор С++ не собирается в данной главе.
18 сентября 2002 [timothy]: Глава 05 - Вступление: Удален параграф о статических ссылках, т.к. темы лучше раскрыта в разделе "Почему статические ссылки?"
18 сентября 2002 [timothy]: Глава 08 - Linux: Удалена команда cd.
18 сентября 2002 [timothy]: Глава 06 - Ncurses: Удалены старые пояснения команд mv /lib/*.a /usr/lib.
13 сентября 2002 [gerard]: Глава 06 - Shadow: Добавлено --libdir=/usr/lib к опциям скрипта configure. This way a proper libshadow.la is generated. Also changed the mv command to move all the libshadow.so* files to the /lib directory. The lib*a files are already in the /usr/lib directory.
September 13th, 2002 [gerard]: Chapter 06 - Man: Added another regex to the sed command that modifies the man.conf file. The added regex comments out the MANPATH /usr/man line which causes for duplicate results when using the whatis command
September 13th, 2002 [gerard]: Chapter 06: Added the Linux Threads Man Pages installation after the Perl installation.
September 12th, 2002 [gerard]: Chapter 06 - Create mtab link: Made the ln command an ln -sf so the existing /etc/mtab file, created by the mount command, will be removed before re-creating it as a symlink.
September 12th, 2002 [gerard]: Chapter 06 - Sh-utils: Added the sh-utils-hostname patch that supresses the build of the hostname program. This is done because the hostname program from the net-tools package is superior over this version.
September 12th, 2002 [gerard]: Chapter 06 - Gawk: Updated the Gawk patch. It also changes the DDEFPATH directory location now.
September 12th, 2002 [gerard]: Chapter 06 - Procps: Added patch that fixes a locale problem that makes top crash under certain locale settings.
September 12th, 2002 [timothy]: Chapter 04 - Creating a file system: Referenced alternative filesystems in BLFS.
September 12th, 2002 [gerard]: Removed all superfluous /usr/lib/*.so symbolic links from library installations.
September 12th, 2002 [gerard]: Upgraded to lfs-bootscripts-1.10
September 12th, 2002 [gerard]: Chapter 06 - Configure Sysvinit: Changed the sulogin line to once instead of having it respawn. This way it'll behave as expected (ie: a CTRL+D will continue instead of restart sulogin).
September 12th, 2002 [gerard]: Chapter 06 - GCC: Added the --enable-clocale=gnu option to ensure the proper locale mode is used by the C++ libraries.
September 11th, 2002 [timothy]: Preface: Grammatic changes.
September 8th, 2002 [timothy]: Chapter 06: Applied Alex's grammar changes patch.
September 7th, 2002 [timothy]: Chapter 06 - Gzip: Added gzip-1.2.4b.patch.
September 7th, 2002 [timothy]: Chapter 05 - Textutils: Added re_max_failures2 for old host systems.
September 2nd, 2002 [timothy]: Chapter 06 - Bash: Removed creation of sh symlink. Creating the bash and sh symlinks: Added /bin/bash symlink, symlinked sh to bash. Gzip, Sysvinit, Util-Linux: Shortened cp command. Makedev: Removed /bin/bash creation and removal. Man: Modified sed statement to edit less call, so SGR will work.
September 1st, 2002 [timothy]: Chapter 06 - About debugging symbols: Removed info. about stripping /static. Man: Added sed statement to prevent groff from using SGR escape sequences.
September 1st, 2002 [timothy]: Chapter 05 - Install all software as an unprivileged user: Added $CC='gcc -s' to omit the compilation of symbols in static packages.
August 30th, 2002 [timothy]: Chapter 06 - Makedev: Put rm /bin/bash after device creation. Perl: Removed information about the old patch.
August 30th, 2002 [timothy]: Chapter 05 - GCC: Re-added HAVE_GAS_HIDDEN; removed --enable-__cxa-atexit which was incorrect and not needed in this chapter; added information about the patch.
August 26th, 2002 [gerard]: Added a new Glibc patch and introducted a GCC patch.
August 26th, 2002 [gerard]: Updated to automake-1.6.3, gcc-3.2, groff-1.18, makedev-1.7, perl-5.8.0, util-linux-2.11u
August 22nd, 2002 [timothy]: Appendix: Added missing URLs to patches.
August 18th, 2002 [timothy]: Chapter 05 & 06: Changed ln -sf to ln -s wherever possible.
August 18th, 2002 [timothy]: Chapter 06 - Binutils: cp libiberty.h after install, as it is needed by certain software. Shadow: added command to remove the groups program installed by Shadow because Sh-utils installs a (better) groups program.
August 18th, 2002 [timothy]: Chapter 05 - Sh-utils: Re-added sh-utils-2.0.patch.
August 16th, 2002 [markh]: Chapter 06 - Move man-pages to just after the kernel headers installation.
August 15th, 2002 [markh]: Chapter 06 - Move the MAKEDEV installation to before glibc and remove the temporary creation of /dev/null as we don't need it anymore.
August 15th, 2002 [timothy]: Chapter 04 - Preparing a new partition: mentioned that a swap partition can be shared between the LFS and host systems, grammatic changes.
August 13th, 2002 [gerard]: Chapter 06: Removed the --with-curses switch from the Bash installation as it's unnecessary here.
August 9th, 2002 [timothy]: Updated to modutils-2.4.19, linux-2.4.19, gettext-0.11.5, binutils-2.13, textutils-2.1.
August 9th, 2002 [timothy]: Chapter 06 - Vim: changed alternative editors link from hints to BLFS.
August 8th, 2002 [gerard]: Chapter 06 - Ncurses: removed the --disable-termcap configure option. Termcap is disabled by default now, so no need for this option (left over from a long time ago when it was needed).
August 8th, 2002 [gerard]: Chapter 06 - Linux: Added the command cp include/asm-generic /usr/include. There are programs which use the files in there, as well as headers in the asm directory may be split up in the future, and put in the asm-generic.
August 8th, 2002 [gerard]: Appendix A - Gettext: added the missing program description of msgcat.
August 4th, 2002 [timothy]: Added zlib-1.1.4.
August 3rd, 2002 [timothy]: Updated to man-pages-1.52, man-1.5k, gettext-0.11.4, modutils-2.4.18.
July 29th, 2002 [timothy]: Removed Reiserfsprogs. Updated to util-linux-2.11t and file-3.39.
July 29th, 2002 [timothy]: Chapter 04 & 05 - Creating a new partition, Introduction, Why static: grammatic changes. Diffutils, Fileutils, Grep, Texinfo: set LDFLAGS=-static before configure instead of as an argument to make. GCC: appended HAVE_GAS_HIDDEN to auto-host.h.
July 29th, 2002 [timothy]: Chapter 06 - Glibc: added --disable-profile flag.
July 29th, 2002 [timothy]: Chapter 08 - Linux: added information about modules and kernel documentation.
July 29th, 2002 [timothy]: Chapter 09 - Rebooting the system: added a command to remove the static directory.
July 8th, 2002 [timothy]: Chapter 09 - Rebooting the system: Pointed to BLFS as the next step.
July 3rd, 2002 [timothy]: Chapter 06 - Sysvinit: Simplified the sed command and updated the installation description because init now prints "Sending processes" instead of "Sending all processes".
July 2nd, 2002 [markh]: Internal change - Made all patches use a &package-patch-version; entity and removed all hardcoding of patch versions.
June 30th, 2002 [timothy]: Updated to man-pages-1.51 and automake-1.6.2
June 24th, 2002 [timothy]: Chapter 06 - Shadow, Util-linux, LFS-Bootscripts: Updated package contents.
June 23rd, 2002 [timothy]: Chapter 05 & 06 - Net-tools, Perl, Texinfo, Autoconf, Automake, File, Libtool, Bin86, Vim, Linux, Bison, Less, Man-pages, Groff, Bzip2, E2fsprogs, Grep, Lilo, Modutils, Procps, Psmisc, Reiserfsprogs: Updated package contents.
June 23rd, 2002 [timothy] Chapter 05 & 06 - M4, Bzip2, File, E2fsprogs: Added "last checked against" for uniformity. GCC: Removed i686-specific programs.
June 16th, 2002 [timothy]: Chapter 06 - Gettext: Updated package contents.
June 14th, 2002 [timothy]: Chapter 05 & 06 - Binutils, Bzip2, Diffutils, Grep: Updated package contents. GCC: Updated description of c++filt.
June 13th, 2002 [timothy]: Chapter 09 - The End: Changed $LFS/etc/lfs-4.0 to $LFS/etc/lfs and put the version number inside this file.
June 12th, 2002 [timothy]: Chapter 05 - GCC: Modified the build instructions and command explanations to only build the C compiler. The C++ compiler is not needed until after the second GCC build.
June 12th, 2002 [timothy]: Chapter 06 - Shadow: grammatic changes.
June 11th, 2002 [timothy]: Chapter 05 & 06 - Gawk: Created a list of package contents and descriptions. Fileutils: Removed a confusing paragraph about the fileutils patch. GCC: Updated the package contents.
June 11th, 2002 [timothy] All software: Updated the estimated required disk space.
June 9th, 2002 [markh]: Chapter 06 - Creating Directories: Changed usr,usr/local to just usr/local as we use the -p option to mkdir which will create the usr directory anyways.
June 7th, 2002 [timothy] Chapter 06 - Reiserfsprogs: added a description for unpack.
June 7th, 2002 [timothy] Chapter 02 - How to ask for help: mentioned the FAQ.
June 6th, 2002 [markh] - Chapter 05 - Tidy up explanations following the /static change.
June 5th, 2002 [timothy]: Preface - Who would not want to read this book: applied a revised version of Scot's grammar patch.
June 5th, 2002 [timothy]: Chapter 09 - Rebooting the system, Lilo, Bootscripts: named the hint authors. Chapter 06 - Vim: updated the hint URL. Chapter 05 - Gawk: to avoid confusion, mentioned that the patch will be applied in Chapter 06.
June 3rd, 2002 [timothy] Chapter 01 - FAQ: edited to include reporting typos.
May 31st, 2002 [gerard] Chapter 05 - Findutils: Added the CPPFLAGS...re_max_failures fix which is needed on Glibc-2.1 systems.
May 30th, 2002 [markh]: Chapter 05 & 06 - Update to binutils-2.12.1.
May 30th, 2002 [markh]: Chapter 05 - Bash: Removed section about "last two commands executing anyways" because we no longer have the commands referred to there.
May 30th, 2002 [gerard]: Chapter 06 - Glibc: Replaced the various sed fixes with a regular patch.
May 30th, 2002 [gerard]: Chapter 06 - Gawk: Replaced the sed fix with a regular patch.
May 30th, 2002 [gerard]: Chapter 05 - Fileutils: Replaced the sed fix with a regular patch.
May 30th, 2002 [gerard]: Chapter 06 - Ed: Replaced the sed fix with a regular patch.
May 28th, 2002 [gerard]: Chapter 06 - Changing ownership: removed the explicit command to chown /lost+found. This is done by the first command now that proc isn't mounted anymore in chapter 5.
May 27th, 2002 [gerard]: Upgraded to ncurses-5.2-2.patch (this patch is smaller than the previously used one).
May 26th, 2002 [gerard]: Upgraded to: automake-1.6.1, bin86-0.16.3, file-3.38, gawk-3.1.1, gcc-3.1, gettext-0.11.2, modutils-2.4.16, psmisc-21 and util-linux-2.11r. Added gcc-3.1 compile fix patches for ncurses, perl and vim.
May 26th, 2002 [gerard]: Chapter 05+06 - Binutils: Removed the tooldir setting from chapter 05-binutils, moved its description to chapter 06-binutils.
May 26th, 2002 [gerard]: Chapter 05 - Gawk & Findutils: simplified the installation by removing the libexecdir modifications. We can live with a $LFS/static/libexecdir being created. The whole $LFS/static directory is temporarily anyways, so we're not all that concerned with what it looks like.
May 26th, 2002 [gerard]: Chapter 06 - Creating Directories: removed the cd / command and changed the two chmod commands to use absolute paths instead.
May 25th, 2002 [markh]: Chapter 06 - Some minor corrections dealing with removing the $LFS variable where it isn't wanted.
May 23rd, 2002 [gerard]: Implemented the keep_chap5_and_chap6_sep lfs-hint. Highlights of the change: added findutils and util-linux to chapter 5, installed everything from chapter 5 into $LFS/static and re-ordered the installation of packages in chapter 6 to prevent hard-wiring the wrong path (files from $LFS/static).
May 23rd, 2002 [gerard]: Appendix A - E2fsprogs: Added some more descriptions.
May 23rd, 2002 [gerard]: Appendix A - Bin86: Added some descriptions.
May 23rd, 2002 [gerard]: Appendix A - Flex: Added some descriptions.
May 23rd, 2002 [gerard]: Appendix A - Glibc: Added some more descriptions.
May 18th, 2002 [gerard]: Appendix A - E2fsprogs: Added some descriptions.
May 18th, 2002 [gerard]: Appendix A - Glibc: Added some more descriptions.
May 17th, 2002 [markh]: Changed all chown X.X's to chown X:X's which is less likely to run into problems (according to info chown).
May 16th, 2002 [gerard]: Chapter 01 - Mirror sites: Added http interface to FTP mirror at idge.net
May 16th, 2002 [gerard]: Appendix A - Glibc: Added some more descriptions.
May 15th, 2002 [markh]: Chapter 05 - Bzip2. Changed the instructions to deal with hard links in older distros a'la the Chapter 05 gzip instructions.
May 11th, 2002 [markh]: Various XML fixups; mainly altering <ulink> tags to remove erroneous in the HTML output.
May 9th, 2002 [gerard]: Appendix A - Glibc: Filled in the missing descriptions.
May 6th, 2002 [gerard]: Chapter 06 - Shadow: Fixed the symlink location of vigr to /usr/sbin
May 2nd, 2002 [gerard]: Chapter 06 - Procps: Changed the two single quotes to two double quotes (the two single quotes can be mistaken for one double quote which will cause an error).
May 2nd, 2002 [gerard]: Changed the cd dir && ln -sf commands to one single command (such as ln -sf bash $LFS/bin/sh Same goes for cd dir && mv/cp constructions which are now replaced with constructions like mv $LFS/usr/bin/{bzcat,bzip2} $LFS/bin
May 2nd, 2002 [markh]: Removed the "Removing old NSS library files" section.
1 мая 2002 [gerard]: Removed all Glibc-2.0 workarounds - gzip patch, sh-utils patch, copying of libnss files. Also removed the export VAR=VALUE...unset VAR constructions and changed them to VAR=VALUE ./configure constructions.
26 апреля 2002 [marcheerdink]: Глава 06 Findutils: добавлен libexecdir=/usr/bin к команде make. Исправляет неверный путь libexecdir в updatedb.
25 апреля 2002 [gerard]: Глава 06 Glibc: добавлена заметка от том, что вручную можно установить только нужные локали, а не все. Для этого необходимо создать директорию /usr/lib/locale.
21 апреля 2002 [gerard & markh]: Обновлен пакет MAKEDEV-1.5
12 апреля 2002 [markh]: Добавлена организация директорий к cvs и разделен index.xml.
10 апреля 2002 [marcheerdink]: Обновлены следующие пакеты: bison-1.35, diffutils-2.8.1, texinfo-4.2, util-linux-2.11q
9 апреля 2002 [marcheerdink]: Добавлено --disable-perl-regexp к configure-опциям grep, чтобы избежать ссылки на несуществующую статическую библиотеку pcre.
8 апреля 2002 [gerard]: Добавлено зеркало http://ftp.de.linuxfromscratch.org (в дополнение к ftp://ftp.de).
Назад | Домой | Вперед |
Зеркала | Наверх | Списки рассылки и архивы |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Вперед |
Назад | Домой | Вперед |
Часть 1 - Вступление | Наверх | Благодарности |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 1. Вступление | Вперед |
Убедительная просьба направлять все сообщения в списки рассылки. См. Глава 1 - Списки рассылки и архивы для получения информации об имеющихся списках.
Если вам необходимо связаться с Герардом Бикмансом лично, пишите на gerard@linuxfromscratch.org
Прим. переводчика - Все вопросы по переводу просьба направлять Денису Каледину, hannibal@nline.ru
Назад | Домой | Вперед |
FAQ | Наверх | Важная информация |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 1. Вступление | Вперед |
Для облегчения понимания книги, ознакомьтесь с условными обозначениями, используемыми в дальнейшем:
./configure --prefix=/usr
Текст такого формата предназначен для набора в командной строке в точности как на экране, помимо случаев, когда даны иные указания. Также он используется в пояснительных разделах для определения команды, о которой идет речь.
install-info: unknown option `--dir-file=/mnt/lfs/usr/info/dir'
Текст такого формата (с фиксированной шириной) показывает вывод на экране, как результат выполнения той или иной команды. Также он используется для обозначения имени файла, например /etc/lilo.conf.
Emphasis
Текст такго формат имеет несколько назначений в книге. В основном он используется для подчеркивания наиболее важных моментов, а также для примеров.
http://www.linuxfromscratch.org/
Текст такого формата используется для ссылок, как по книге так и для ссылок на внешние ресурсы - на руководства, вебсайты и т.д.
cat > $LFS/etc/group << "EOF" root:x:0: bin:x:1: ...... EOF |
Данный раздел используется в основном для создания конфигурационных файлов. Первая команда (выделенная жирным шрифтом) создает файл $LFS/etc/group, наполняя его строчками до EOF. В командной строке данная секция печатается в точности как на экране.
Назад | Домой | Вперед |
Как мы будем работать | Наверх | Версия книги |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 1. Вступление | Вперед |
Если вы столкнетесь с трудностями, если у вас возникнут вопросы или вы найдете опечатку в книге, обратитесь к странице ЧАсто задаваемых ВОпросов.
Назад | Домой | Вперед |
Сервер новостей | Наверх | Контактная информация |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 1. Вступление | Вперед |
Мы собираемся построить систему LFS, используя заранее установленный дистрибутив Linux, как например Debian, SuSE, Slackware, Mandrake, RedHat, и т.д. Мы будем использовать установленную систему как платформу для разработки, т.к. нам понадобится компилятор, линкер, текстовый редактор и другие средства разработки, необходимые для построения нашей системы. Обычно эти инструменты доступны по умолчанию, если выбрать опцию "development" при инсталляции дистрибутива Linux.
После скачивания необходимых для построения системы LFS пакетов, мы создадим раздел Linux native и файловую систему на нем. Там будет скомпилирована и установлена система LFS.
Затем, в Главе 5, мы опишем процесс инсталляции различных пакетов, которые сформируют среду разработки, которую мы используем для построения самой системы и для решения проблемы зависимостей. Например, для сборки нового компилятора необходим компилятор, а для установки оболочки необходима оболочка. Пакеты в этой главе будут слинкованы статически.
Использование статических ссылок позволяет нам избежать необходимости в наличии библиотек на момент завершения сборки. Собранная программа самодостаточна, т.к. части программы, которые обычно находятся в библиотеках, в нашем случае копируются из библиотек и вставляются в программу. Обычно программы компилируются с использованием динамических ссылок. Это позволяет съэкономить место на диске и повышает эффективность многих программ. В Главе 5 мы используем статические ссылки, т.к. теоретически мы перемещаем нашу систему разработки в виртуальную среду, где указанные библиотеки отсутствуют. Если скомпилировать программы на данном этапе с динамическими ссылками, то средства разработки не будут работать. Так как необходимые библиотеки предоставлены нам установленным дистрибутивом Linux, цель Главы 5 - создание среды разработки, в которой эти библиотеки не требуются, что делает эту среду независимым дистрибутивом.
В Главе 6 мы скомпилируем и инсталлируем конечную систему. Мы используем программу chroot, для того, чтобы войти в виртуальную среду и запустить оболочку, для которой корневой каталог будет тот раздел, куда мы установили программы из Главы 5. Это похоже на то, когда при перезагрузке системы мы даем указание ядру монтировать раздел LFS как корневой. Почему мы используем chroot вместо того, чтобы перезагрузиться? Дело в том, что создание загрузочной системы LFS со статическими ссылками подразумевает выполнение дополнительных шагов, которые сейчас излишни. А также мы хотим иметь возможность использовать наш базовый дистрибутив во время установки LFS. Пока компилируется LFS, вы сможете переключиться в другую виртуальную консоль и сессию Х и заняться своими делами.
Когда все пакеты из Главы 6 проинсталлированы, Главы 7, 8 и 9 опишут завершающую стадию установки. Следуя указаниям Главы 7, мы напишем загрузочные скрипты. С помощью Главы 8 мы скомпилируем ядро Linux и установим загрузчик. Глава 9 содержит дополнительные указания по доводке системы после прочтения книги. И наконец можно будет перезагрузить систему и начать использовать LFS.
Это краткое изложение процесса установки. Более конкретную информацию вы можете найти в соответствующих главах и описаниях программных пакетов. Если сейчас вам что-то непонятно, ничего страшного. Скоро все приобретет смысл.
Прочтите Главу 2 внимательно. Она объясняет некоторые важные моменты, необходимые для понимания перед тем, как приступить к Главе 5 и далее.
Назад | Домой | Вперед |
Благодарности | Наверх | Условные обозначения, используемые в книге |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 1. Вступление | Вперед |
На сервере linuxfromscratch.org размещены следующие списки рассылки общего доступа:
lfs-support
lfs-dev
lfs-announce
lfs-security
lfs-book
lfs-chat
alfs-discuss
blfs-dev
blfs-book
blfs-support
Список рассылки lfs-support предоставляет поддержку пользователям, собирающим систему LFS в рамках данной книги. Поддержку по дальнейшим этапам работы с LFS ищите в списке blfs-support.
В списоке рассылки lfs-dev обсуждаются вопросы, строго связанные с книгой LFS. Если у вас есть проблемы с книгой, если вы хотите сообщить об ошибке в ней, или хотите дать совет по улучшению данной книги, этот список для вас.
Все просьбы о поддержке направляйте в lfs-support или blfs-support.
lfs-announce - модерируемый список. На него можно подписаться, но нельзя отправлять сообщения. Он используется в основном для сообщения о выходе новых стабильных релизов. Список lfs-dev сообщает о выходе нестабильных релизов, релизов в разработке. Если вы подписались на lfs-dev, особого смысла подписываться на lfs-announce нет, т.к. все сообщения из него дублируются в lfs-dev..
В списке lfs-security обсуждаются проблемы безопасности. Все вопросы по безопасности системы и отдельных пакетов направляйте в этот список.
Список lfs-book используют редакторы Книги LFS для координирования вопросов эксплуатации, например проблемы XML и т.д. Однако дискуссии о том, что добавлять и что удалять из книги, проводятся в списке lfs-dev.
Список lfs-chat - место отдыха членов группы LFS (вы один из них) и разной болтовни, необязательно связанной с компьютерами. Оффтопиков не существует.
Список alfs-discuss обсуждает развитие Автоматизированной Linux From Scratch, сокращенно ALFS. Цель этого проекта - создание автоматического инсталлятора системы LFS, позволяющего значительно ускорить процесс компиляции, т.к. не нужно вводить команды вручную..
Список blfs-devобсуждает развитие книги BLFS (Beyond <После>LFS). Направляйте сообщения об ошибках и ваши советы по улучшению Книги BLFS в этот список.
Просьбы помочь со сборкой программ вне книги LFS направляйте в список blfs-support.
Список blfs-book используют редакторы Книги BLFS для координирования вопросов эксплуатации, например проблемы XML и т.д. Однако дискуссии о том, что добавлять и что удалять из книги, проводятся в списке blfs-dev.
Список blfs-support предоставляет помощь по установке программ, не вошедших в Книгу LFS. Разрешается обсуждать любые программы, не являющиеся базовыми программами системы LFS.
Все списки рассылки архивируются и могут быть просмотрены на http://archive.linuxfromscratch.org/mail-archives или скачены с http://ftp.linuxfromscratch.org/mail-archives или ftp://ftp.linuxfromscratch.org/mail-archives.
Совсем необязательно подписываться на список для того, чтобы отправить в него сообщение. В таком случае, не забудьте указать в сообщении, что вы не подписаны на этот список рассылки, чтобы при ответе участники списка указали ваш адрес в поле CC:. (это позволит вам получать ответы на ваше сообщение).
Адрес списка рассылки выгляди следующим образом: listname@linuxfromscratch.org где listname - один из списков, описанных выше. Например, lfs-dev@linuxfromscratch.org, lfs-support@linuxfromscratch.org and blfs-support@linuxfromscratch.org.
Для того чтобы подписаться на список рассылки, пошлите email по адресу listar@linuxfromscratch.org. В поле заголовка впишите subscribe listname, где listname - имя списка.
Если вы хотите подписаться сразу на несколько списков рассылки, оставьте поле заголовка сообщения пустым, а команды перенесите в тело сообщения, например:
To: listar@linuxfromscratch.org
Subject:
subscribe lfs-dev
subscribe blfs-support
subscribe alfs-discuss
После отправки сообщения, программа Listar пришлет вам письмо с просьбой подтвердить подписку. После отправки подтверждения подписки, Listar вышлет вам письмо, уведомляющее о том, что вы подписаны на соответствующий список рассылки, и приветствие от данного списка.
Для отмены подписки пошлите email по адресу listar@linuxfromscratch.org. В поле заголовка введите unsubscribe listname.
Если вы хотите отменить подписку нескольких списков рассылки, оставьте поле заголовка сообщения пустым, а команды перенесите в тело сообщения, например:
To: listar@linuxfromscratch.org
Subject:
unsubscribe lfs-dev
unsubscribe blfs-support
unsubscribe alfs-discuss
После отправки сообщения, программа Listar пришлет вам письмо с просьбой подтвердить отмену подписки. После отправки подтверждения отмены подписки, Listar вышлет вам письмо, уведомляющее о том, что подписка аннулирована.
Для установления режимов списка, пользователь должен отправить email по адресу listar@linuxfromscratch.org. Режимы задаются командами, прописанными в поле заголовка сообщения.
Команда Set command включает режим. Команда Unset command его выключает.
Слово "listname" в примере, приведенном ниже, следует заменить на имя списка, для которого необходимо установить режим. Если необходимо установить несколько режимов (для одного или нескольких списков) с помощью одного сообщения, оставьте заголовок сообщения пустым и перенесите все команды в тело сообщения.
Включить режим: set listname digest
Выключить режим: unset listname digest
После подписки на список рыссылки, пользователь может включить режим обзора. В данном случае вместо получения отдельных сообщений из списка, пользователь будет ежедневно получать email, содержащий все сообщения списка за этот день.
Существует другой режим обзора, digest2. В этом случае, пользователь будет получать как обзорное сообщение, так и все сообщения списка отдельно. Режим включается командой set listname digest2, и выключается командой unset digest2.
Включить режим: set listname vacation
Выключить режим unset listname vacation
В случае вашего временного отсутствия, вы вероятно не захотите получать сообщения от списка рассылки. Для этого, вам не обязательно отменять подписку, вы можете включить режим "vacation". В отличие от аннулирования подписки, данный режим позволит вам избежать необходимости подтверждать подписку и отмену от подписки.
Назад | Домой | Вперед |
Changelog | Наверх | Сервер новостей |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 1. Вступление | Вперед |
Ниже приведен список HTTP и FTP зеркал по состоянию на 10 апреля 2002 г. Для обновления этой информации, посетите http://www.linuxfromscratch.org.
Fremont, California, USA [8 Mbit] - http://www.linuxfromscratch.org/lfs/intro.shtml
Lufkin, Texas, USA [6 Mbit] - http://linuxfromscratch.idge.net/lfs/intro.shtml
Columbus, Ohio, United States [1 Mbit] - http://www.us.linuxfromscratch.org/lfs/intro.shtml
Mainz, Germany [100 Mbit] - http://lfs.linux-provider.net/lfs/intro.shtml
Amsterdam, The Netherlands [100 Mbit] - http://www.nl.linuxfromscratch.org/lfs/intro.shtml
Oslo, Norway [100 Mbit] - http://www.no.linuxfromscratch.org/lfs/intro.shtml
Lancaster, United Kingdom [100 Mbit] - http://linuxfromscratch.mirror.ac.uk/lfs/intro.shtml
Vienna Univ. of Technology, Austria [64 Mbit] - http://www.at.linuxfromscratch.org/lfs/intro.shtml
Karlskrona, Sweden [10 Mbit] - http://www.se.linuxfromscratch.org/lfs/intro.shtml
Freising, Germany [4 Mbit] - http://www.de.linuxfromscratch.org/lfs/intro.shtml
Teeside, United Kingdom [256 Kbit] - http://www.linuxfromscratch.co.uk/lfs/intro.shtml
Brisbane, Australia [155 Mbit] - http://www.au.linuxfromscratch.org/lfs/intro.shtml
Fremont, California, USA [FTP] [8 Mbit] - ftp://ftp.linuxfromscratch.org
Fremont, California, USA [HTTP] [8 Mbit] - http://ftp.linuxfromscratch.org
Lufkin, Texas, USA [FTP] [6 Mbit] - ftp://linuxfromscratch.idge.net/linuxfromscratch
Lufkin, Texas, USA [HTTP] [6 Mbit] - http://ftp.idge.net/linuxfromscratch
Univ. of Twente, The Netherlands [HTTP] [100 Mbit] - http://ftp.snt.utwente.nl/linux/lfs/
Univ. of Twente, The Netherlands [FTP] [100 Mbit] - ftp://ftp.snt.utwente.nl/pub/linux/lfs/
Oslo, Norway [FTP] [100 Mbit] - ftp://ftp.no.linuxfromscratch.org/mirrors/lfs/
Lancaster, United Kingdom [HTTP] [100 Mbit] - http://www.mirror.ac.uk/sites/ftp.linuxfromscratch.org/
Vienna Univ. of Tech., Austria [FTP] [64 Mbit] - ftp://ftp.at.linuxfromscratch.org/pub/lfs/
Vienna Univ. of Tech., Austria [HTTP] [64 Mbit] - http://ftp.at.linuxfromscratch.org/pub/lfs
Karlskrona, Sweden [FTP] [10 Mbit] - ftp://ftp.se.linuxfromscratch.org/lfs
Freising, Germany [HTTP] [4 Mbit] - http://ftp.de.linuxfromscratch.org/
Freising, Germany [FTP] [4 Mbit] - ftp://ftp.de.linuxfromscratch.org/mirrors/ftp.linuxfromscratch.org/
Brisbane, Australia [FTP] [155 Mbit] - ftp://ftp.planetmirror.com/pub/lfs/
Назад | Домой | Вперед |
Версия книги | Наверх | Changelog |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 1 - Вступление | Вперед |
Все списки рассылки linuxfromscratch.org доступны также через сервер NNTP. Все сообщения, посланные в список, копируются в соответствующую группу новостей и наоборот.
Адрес сервера новостей - news.linuxfromscratch.org.
Назад | Домой | Вперед |
Списки рассылки и архивы | Наверх | FAQ |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Глава 1. Вступление | Вперед |
Перед вами Книга LFS версии 4.0 от 5 октября 2002 г. В случае, если данная версия старше месяца, наверняка обновленная версия книги доступна для скачивания с нижеперечисленных зеркал.
Назад | Домой | Вперед |
Условные обозначения, используемые в книге | Наверх | Зеркала |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение B. Ресурсы | Вперед |
Далее последует список полезных книг, HOWTO и прочих документов, которые можно скачать или приобрести. Это весьма небольшой список, с которого можно начать. Мы надеемся со временем расширить этот список, как только обнаружатся полезные документы .
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение B. Ресурсы | Вперед |
Linux Network Administrator's Guide, опубликовано O'Reilly. ISBN: 1-56502-087-2
Running Linux, опубликовано O'Reilly. ISBN: 1-56592-151-8
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение B. Ресурсы |
Различные man и info pages, поставляемые вместе с пакетами
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Вперед |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение B. Ресурсы | Вперед |
Все нижеуказанные HOWTO доступны на сайте Linux Documentation Project (http://www.tldp.org)
Linux Network Administrator's Guide
From-PowerUp-To-Bash-Prompt-HOWTO
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Вперед |
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Autoconf (2.53):
ftp://ftp.gnu.org/gnu/autoconf/
Последняя проверка: версия 2.53.
autoconf, autoheader, autom4te, autoreconf, autoscan, autoupdate и ifnames
autoconf - инструмент для создания скриптов командного интерпретатора, автоматически конфигурирующих пакеты с исходным кодом для адаптации ко многим Unix системам. Настроечные скрипты, созданные autoconf, независимы от autoconf во время их исполнения, так что пользователям необязательно использование autoconf.
autoheader создает шаблонный файл, состоящий из выражений C #define для использования configure.
autom4te запускает GNU M4 для обработки заданных файлов.
При наличии множества настроечных скриптов, созданных autoconf, autoreconf может сэкономить время. Утилита повторно запускает autoconf and autoheader (когда необходимо) для повторной генерации настроечных скриптов autoconf и настройки шаблонов заголовков рекурсивно, начиная с текущего каталога.
autoscan может помочь в написании configure.in для программного пакета. autoscan просматривает исходные файлы в дереве каталогов. Если не указан каталог, то используется текущий. Исходный код проверяется на наличие распространенных проблем переносимости, создаваемый configure.scan служит предварительным configure.in для пакета.
autoupdate обновляет имена вызова макросов autoconf в configure.in.
ifnames может помочь во время написания configure.in для программного пакета. Выводятся идентификаторы, которые пакет уже использует в условиях препроцессора C. Если пакет уже настроен для некоторой переносимости, программа может помочь в определении, что необходимо проверить configure. Она также может заполнить некоторые пропуски в configure.in, вставленные autoscan.
Последняя проверка: версия 2.52.
Bash: sh
Diffutils: cmp
Fileutils: chmod, install, ln, ls, mkdir, mv, rm
Grep: fgrep, grep
M4: m4
Make: make
Gawk: gawk
Sed: sed
Sh-utils: echo, expr, hostname, sleep, uname
Texinfo: install-info
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Automake (1.6.3):
ftp://ftp.gnu.org/gnu/automake/
Последняя проверка: версия 1.6.2.
acinstall, aclocal, aclocal-1.6, automake, automake-1.6, compile, config.guess, config.sub, depcomp, elisp-comp, install-sh, mdate-sh, missing, mkinstalldirs, py-compile, ylwrap
acinstall - сценарий, устанавливающий файлы aclocal-style M4.
automake включает несколько макросов autoconf, используемых в пакетах, часть которых необходима automake в ряде случаев. Эти макросы должны быть определены в aclocal.m4, иначе autoconf не сможет их использовать.
aclocal program автоматически создаст aclocal.m4, основываясь на содержимом configure.in. Это дает возможность получения предоставленных automake макросов без их поиска. Также. механизм aclocal расширяем для использования другими пакетами.
Для создания всех файлов Makefile.in пакета, запустите automake в каталоге верхнего уровня без параметров. automake найдет все соответствующие Makefile.am (просматривая configure.in) и создаст Makefile.in.
compile - cценарий-обертка для компиляторов.
config.guess - сценарий, определяющий каноническое имя системы.
config.sub - скрипт проверки конфигурации.
depcomp - cкрипт, компилирующий программу вместе с генерацией зависимостей.
elisp-comp - скрипт для байт-компиляции файлов .el.
install-sh - скрипт, устанавливающий программу, скрипт или файл данных.
mdate-sh - скрипт, выводящий время изменения файла или каталога.
missing - заменяющий некоторые отсутствующие программы GNUво время инсталляции.
mkinstalldirs - скрипт для иерархической сборки каталога.
py-compile - скрипт, собирающий программу на Python.
ylwrap - скрипт-обертка для вызовов lex/yacc.
Последняя проверка: версия 1.5.
Bash: sh
Diffutils: cmp
Fileutils: chmod, install, ls, mkdir, mv, rm, rmdir
Grep: fgrep, grep
Make: make
Perl: perl
Sed: sed
Sh-utils: echo, expr, hostname, sleep
Texinfo: install-info
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Bash (2.05a):
ftp://ftp.gnu.org/gnu/bash/
Последняя проверка: версия 2.05a.
bash, sh (ссылка на bash) и bashbug
bash - Bourne-Again SHell, широко используемый в Unix cистемах командный интерпретатор. Bash считывает данные со стандартного ввода, клавиатуры. Пользователь вводит что-либо, интерпретатор распознает введенное и выполняет это, например запускает программу.
bashbug - скрипт, помогающий пользователю составлять и отправлять сообщения об ошибкахs bash в стандартном формате.
sh - символическая ссылка на bash. Будучи вызванным как sh, bash имитирует запуск старых версий sh, для лучшего соответствия стандартам POSIX.
Последняя проверка: версия 2.05a.
Bash: bash, sh
Binutils: ar, as, ld, ranlib, size
Diffutils: cmp
Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm
Gcc: cc, cc1, collect2, cpp0, gcc
Grep: egrep, grep
Make: make
Gawk: awk
Sed: sed
Sh-utils: basename, echo, expr, hostname, sleep, uname
Texinfo: install-info
Textutils: cat, tr, uniq
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Bin86 (0.16.3):
http://www.cix.co.uk/~mayday/
Последняя проверка: версия 0.16.3
as86, as86_encap, ld86, nm86 (ссылка на objdump86), objdump86 и size86 (ссылка на objdump86)
as86 - ассемблер для процессоров 8086...80386.
as86_encap - скрипт для вызова as86 и конвертирования полученного кода в код C (prog.v) для включения или слинковки с программами вроде инсталляторов загрузочных секторов.
ld86 понимает только объектные файлы, полученные от ассемблера as86. Возможна линковка как в смешанный, так и раздельный исполняемый код I&D.
Таблица символов для бинарного файла.
Сохраняет детальную информацию о бинарном файле.
Выводит общий объем данных в бинарном файле.
Последняя проверка: версия 0.16.0.
Bash: sh
Binutils: as, ld, strip
Fileutils: chmod, install, ln, mv
Gcc: cc, cc1, collect2, cpp0
Make: make
Sed: sed
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Последняя проверка: версия 3.37.
Autoconf: autoconf, autoheader
Automake: aclocal, automake
Bash: sh
Binutils: as, ld
Diffutils: cmp
Fileutils: chmod, install, ln, ls, mv, rm, touch
Gcc: cc1, collect2, cpp0, gcc
Grep: egrep, grep
M4: m4
Make: make
Gawk: gawk
Sed: sed
Sh-utils: echo, expr, hostname, sleep
Texinfo: makeinfo
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Ed (0.2):
ftp://ftp.gnu.org/gnu/ed/
Ed Patch (0.2):
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/
http://ftp.linuxfromscratch.org/lfs-packages/4.0/
Последняя проверка: версия 0.2.
Bash: sh
Binutils: ar, as, ld, ranlib
Diffutils: cmp
Fileutils: chmod, cp, install, ln, mv, rm, touch
Gcc: cc1, collect2, cpp0, gcc
Grep: egrep, grep
Make: make
Sed: sed
Sh-utils: hostname
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
E2fsprogs (1.27):
ftp://download.sourceforge.net/pub/sourceforge/e2fsprogs/
http://download.sourceforge.net/e2fsprogs/
Последняя проверка: версия 1.27.
badblocks, chattr, compile_et, debugfs, dumpe2fs, e2fsck, e2image, e2label, fsck, fsck.ext2, fsck.ext3, lsattr, mk_cmds, mke2fs, mkfs.ext2, mkfs.ext3, mklost+found, resize2fs, tune2fs и uuidgen
badblocks используется для поиска сбойных блоков на устройстве (обычно, дисковом разделе).
chattr изменяет атрибуты файлов в файловых системах Linux second extended.
compile_et используется для преобразования таблицы, листинга кодов ошибок и связанных сообщений в исходный код C, что удобно для использования с библиотекой com_err.
debugfs - файловый отладчик. Используется для исследования и и изменения состояния файловой системы ext2.
dumpe2fs выводит superblock и информацию о группе блоков для файловой системы, присутствующей на указанном устройстве.
e2fsck и fsck.ext2 используются для проверки и исправления файловых систем Linux second extended.
e2image используется для сохранения критичных данных файловой системы ext2в файл.
e2label выводит и изменяет метку файловой системы ext2 filesystem, расположенной на указанном устройстве.
fsck используется для проверки и исправления файловых систем Linux.
fsck.ext3 используется для проверки и исправления файловых систем Linux ext3.
lsattr выводит атрибуты файла на second extended file system.
mk_cmd, получая таблицу команд на входе, выводит исходный код C, который задается для использования с подсистемной библиотекой, libss.
mke2fs используется для создания Linux second extended file system на устройстве (обычно, разделе диска). mkfs.ext2 выполняет те же функции, что и mke2fs.
mkfs.ext3 используется для создания файловой системы ext3.
mklost+found создает каталог lost+found в текущем рабочем каталогу в Linux second extended file system. mklost+found заранее выделяет блоки диска для этого каталога, делая его доступным для e2fsck.
resize2fs используется для изменения размеров файловой системы ext2.
tune2fs изменяет настраиваемые параметры Linux second extended filesystem.
uuidgen создает новый универсальный уникальный идентификатор (UUID), используя библиотеку libuuid. Новый UUID будет уникален среди всех созданных UUID на любой системе и в любое время.
libcom_err.[a,so], libe2p.[a,so], libext2fs.[a,so], libss.[a,so], libuuid.[a,so]
Вывод стандартных ошибок.
libe2p используется dumpe2fs, chattr и lsattr.
Библиотека ext2fs создана для работы пользовательских программ с файловыми системами ext2.
libss используется debugfs.
Библиотека libuuid используется для генерации уникальных идентификаторов для объектов, которые могут быть доступны извне.
Последняя проверка: версия 1.25.
Bash: sh
Binutils: ar, as, ld, ranlib, strip
Diffutils: cmp
Fileutils: chmod, cp, install, ln, mkdir, mv, rm, sync
Gcc: cc, cc1, collect2, cpp0
Glibc: ldconfig
Grep: egrep, grep
Gzip: gzip
Make: make
Gawk: awk
Sed: sed
Sh-utils: basename, echo, expr, hostname, uname
Texinfo: makeinfo
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Diffutils (2.8.1):
ftp://ftp.gnu.org/gnu/diffutils/
Последняя проверка: версия 2.8.1.
cmp, diff, diff3 и sdiff
cmp и diff сравнивают пару файлов и сообщают об их различиях. Обе программы имеют дополнительные опции сравнения файлов в различных ситуациях.
Разница между diff и diff3 состоит в том, что diff сравнивает 2 files, а diff3 - 3.
sdiff выполняет слияние 2 файлов и интерактивно выводит результаты.
Последняя проверка: версия 2.7.
Bash: sh
Binutils: ld, as
Diffutils: cmp
Fileutils: chmod, cp, install, mv, rm
Gcc: cc1, collect2, cpp0, gcc
Grep: egrep, grep
Make: make
Sed: sed
Sh-utils: date, hostname
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Bzip2 (1.0.2):
ftp://sourceware.cygnus.com/pub/bzip2/
Последняя проверка: версия 1.0.2
bunzip2 (ссылка на bzip2), bzcat (ссылка на bzip2), bzcmp, bzdiff, bzegrep, bzfgrep, bzgrep, bzip2, bzip2recover, bzless и bzmore
bunzip2 распаковывает файлы, сжатые bzip2.
bzcat (или bzip2 -dc) распаковывает указанные файлы на стандартный вывод.
bzcmp и bzdiff позволяют использовать cmp и diff для файлов, сжатых bzip2.
bzegrep, bzfgrep, и bzgrep позволяют использовать egrep, fgrep, or grep для файлов, сжатых bzip2.
bzip2 сжимает файлы, используя Burrows-Wheeler block sorting алгоритм сжатия текста и код Huffman. Сжатие, обычно: значительно лучше, чем достигаемое традиционными архиваторами, основанными на LZ77/LZ78, и достигает производительности PPM семейства статистических архиваторов.
bzip2recover восстанавливает данные из поврежденных файлов bzip2.
bzless - подобный less фильтр, позволяющий поэкранный просмотр сжатых или текстовых файлов.
bzmore - подобный more фильтр, позволяющий поэкранный просмотр сжатых или текстовых файлов.
libbz2.a, libbz2.so (ссылка на libbz2.so.1.0), libbz2.so.1.0 (ссылка на libbz2.so.1.0.2) и libbz2.so.1.0.2
libbz2 - библиотека, реализующая сжатие данных без потерь, используя block-sorting алгоритм Burrows-Wheeler.
Последняя проверка: версия 1.0.1.
Bash: sh
Binutils: ar, as, ld, ranlib
Fileutils: cp, ln, rm
Gcc: cc1, collect2, cpp0, gcc
Make: make
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
LFS-Bootscripts (1.10):
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/
http://ftp.linuxfromscratch.org/lfs-packages/4.0/
Последняя проверка: версия 1.10.
checkfs, cleanfs, functions, halt, ifdown, ifup, loadkeys, localnet, mountfs, mountproc, network, rc, reboot, sendsignals, setclock, swap, sysklogd и template
checkfs проверяет файловые системы перед их монтированием (исключая журналируемые и сетевые файловые системы).
cleanfs удаляет файлы, которые не нужно хранить между перезагрузками, такие, как /var/run/*, /var/lock/*, создает пустой /var/run/utmp и удаляет /etc/nologin, /fastboot, /forcefsck.
functions содержит общие для многих скриптов функции, такие как проверки ошибок и статуса, etc.
halt останавливает систему.
ifdown и ifup используются совместно с network.
loadkeys загружает keymap table, соответствующую раскладке клавиатуры.
localnet устанавливает имя системы и local loopback device.
mountfs монтирует все локальные файловые системы, не помеченные как noauto.
mountproc монтирует файловую систему proc.
network активирует сетевые интерфейсы и определяет шлюз по умолчанию.
rc - основной скрипт, управляющий runlevel и отвечающий за исполнение прочих скриптов в установленном порядке.
reboot перезагружает систему.
sendsignals проверяет, остановлены ли все процессы, перед перезагрузкой ил остановкой системы.
setclock устанавливает часы ядра на местное время в случае, если системный таймер не установлен на GMT.
swap разрешает/запрещает использование файлов и разделов подкачки.
sysklogd запускает и останавливает демоны журнализации ядра и системы в целом.
template - шаблон, который можно использовать для создания собственных загрузочных скриптов для других демонов.
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Bison (1.35):
ftp://ftp.gnu.org/gnu/bison/
Последняя проверка: версия 1.35.
bison и yacc
bison - генератор анализаторов синтаксиса (parser) выражений (заменяет yacc - Yet Another Compiler Compiler). Что же делает bison? Это программа, генерирующая программу, анализирующую структуру текстового файла. Вместо написания собственной программы пользователь указывает, как соотносятся объекты, и основываясь на данных правилах, создается анализатор. Существует множество примеров анализа синтаксиса, например калькулятор.
Дано выражение:
1 + 2 * 3
Человек легко получит результат 7. Почему? Because of the structure. Наш мозг знает, как интерпретировать выражение. Компьютер этого не знает, и bison инструмент, представляющий выражение компьютеру в следующем виде:
+
/ \
* 1
/ \
2 3
Начиная с вершины дерева и обрабатывая 2 and 3, соединенных знаком умножения, компьютер перемножает 2 и 3. Результат умножения запоминается и следующее, что обрабатывается - 2*3 и 1, соединенные знаком сложения. Сложение 1 и предыдущего результата дает 7. Все составные выражения могут быть преобразованы в подобное дерево и вычислены. Конечно же, bison используется не только в калькуляторах.
Мы написали скрипт bash с именем yacc, вызывающий bison с опцией -y. Это необходимо для совместимости с программами, использующими yacc вместо bison.
Последняя проверка: версия 1.31.
Bash: sh
Binutils: ar, as, ld, ranlib
Diffutils: cmp
Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm, rmdir
Gcc: cc, cc1, collect2, cpp0, gcc
Grep: egrep, fgrep, grep
Make: make
Sed: sed
Sh-utils: basename, dirname, echo, expr, hostname, sleep, uname
Texinfo: install-info
Textutils: cat, head, tr, uniq
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
В этом приложении рассмотрены следующие аспекты пакетов, описанных в этой книге:
официальная ссылка для загрузки пакета
содержимое пакета,
что делает каждая программа пакетаs,
что необходимо для компиляции пакета.
Большинство информации о пакетах (в особенности, их описания) взяты из их man pages. Мы приводим не полные man pages, а некоторые ключевые элементы для облегчения понимания функций программ. Для получения более детальной информации о программах, обращайтесь к их man или info pages.
Некоторые пакеты более глубоко освещены чем другие лишь потому, что нам необходимо знать о них больше чем о прочих. Если вы считаете, что что-то должно быть добавлено к описаниям, сообщайте об этом в списки рассылки. Мы стремимся к наибольшей полноте описаний пакетов, но без вашей помощи ничего не выйдет.
Заметьте, что в текущей версии книги описано лишь то, что делает пакет, а не почему его необходимо установить. Возможно, позже это будет добавлено.
Также перечислены все зависимости для всех пакетов, перечисленных в этой книге. Описано, какие программы из каких пакетов необходимы для успешной компиляции.
Приведенные зависимости указают лишь на пакеты, необходимые для компиляции, а не исполнения программ.
Список зависимостей, со временем,устаревает относительно текущей версии пакета. У нас нет времени на проверку зависимостей при каждом обновлении, так что реальный их список может отличаться. Но при небольших обновлениях зависимости редко изменяются, так что они будут соответствовать в большинстве случаев. При внесении крупных измений в пакеты, зависимости обязательно будут проверены.
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Binutils (2.13):
ftp://ftp.gnu.org/gnu/binutils/
Последняя проверка: версия 2.12.1.
addr2line, ar, as, gasp, gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings and strip
addr2line переводит программные адреса в имена файлов и номера строк. Given an address and an executable, используется отладочная информация исполняемого файла, чтобы определить, какое имя файла и номер строки связаны с данным адресом.
ar создает и изменяет архивы, а также производит их распаковку. Архив - файл, содержащий несколько файлов в виде, позволяющем восстановить оригинал.
as используется для ассемблирования вывода the GNU C Compiler, gcc для использования с линкером ld.
gasp - Assembler Macro Preprocessor.
gprof отображает статистику системных вызовов.
ld объединяет несколько объектных и архивных файлов и устанавливает символьные отношения. Последний шаг в сборке скомпилированной программы - запуск ld.
nm перечисляет символы из объектных файлов.
objcopy utility копирует содержимое одного объектного файла в другой. objcopy использует библиотеку GNU BFD для чтения/записи объектных файлов. Возможна запись конечного объектного файла в формате, отличном от исходного.
objdump выводит информацию об одном или нескольких объектных файлах. Опции указываеют, какую информацию выводить. Эта информация полезна для программистов, разрабатывающих компиляторы, в противоположность тем, кому нужно просто скомпилировать и запустить программу.
ranlib генерирует оглавление содержимого архива и сохраняет его в архиве. Список будет содержать все символы, определенные членами архива, that is a relocatable object file.
readelf выводит информацию об бинарных файлах типа elf.
size выводит размеры секций --и общий размер-- каждого указанного объектного файла. По умолчанию, генерируется одна строка для каждого объектного файла или модуля в архиве.
Для каждого задананного файла strings выводит последовательность отображаемых символов длиной минимум 4 знака (или указанной длины), завершающуюся непечатным символом. По умолчанию, выводятся лишь строки из инициализированных и загруженных частей объектных файлов. Для других типов файлов выводятся строки из всего файла.
strings зачастую используется для определения содержимого нетекстовых файлов.
strip удаляет все или указанные символы из объектных файлов. Список объектных файлов может включать архивы. Должен быть задан как минимум один объектный файл. Модификация указанных файлов приоритетнее, чем запись модифицированных копий под другими именами.
libbfd.[a,so] и libopcodes.[a,so]
libbfd - библиотека Binary File Descriptor.
libopcodes - библиотека для работы с опкодами, используется в сборке утилит вроде objdump. Опкоды - "читаемые" версии инструкций процессора.
Последняя проверка: версия 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
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Package descriptions and dependencies | Вперед |
Fileutils (4.1):
ftp://ftp.gnu.org/gnu/fileutils/
Fileutils Patch (4.1):
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/
http://ftp.linuxfromscratch.org/lfs-packages/4.0/
Последняя проверка: версия 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 группу владельца указанных файлов, возможно указание как имени группы, так и ее номера.
chmod изменяет права доступа к указанному файлу, в соответствии с параметрами, заданными символьно или в восьмеричном представлении двоичного выражения новых прав.
chown изменяет владельца и/или группу указанных файлов.
cp копирует файлы.
dd копирует файл (по умолчанию, со стандартного ввода на стандартный вывод) с указанным размером блока и опциональными преобразованиями.
df показывает количество свободного места на файловых системах, содержащих указанные файлы. Если файлы не заданы, показывется свободное место на всех смонтированных файловых системах.
dir и vdir - версии ls с разными форматами вывода по умолчанию. Эти программы выводят список заданных файлов и каталогов. Содержимое каталога сортируется по алфавиту. ls, по умолчанию, перечисляет файлы в столбцах если стандартный вывод - терминал, иначе идет перечисление по одному в строке. dir, по умолчанию, перечисляет файлы в столбцах. vdir, по умолчанию перечисляет файлы в полном формате.
dircolors выводит значение LS_COLOR. Переменная LS_COLOR используется для установки цветовой схемы, используемой ls и прочими утилитами.
du выводит количество дискового пространства, занятого указанными файлами и каталогами (включая подкаталоги).
install копипует файлы, устанавливает права доступа и, если возможно, владельца и группу.
ln создаетжесткие или мягкие (символические) ссылки на файлы.
mkdir создает каталог с заданным именем.
mkfifo создает FIFO с заданным именем.
mknod создает FIFO, символьный или блочный файл с заданным именем.
mv перемещает файлы из одного каталога в другой или переименовывает их, в зависимости от заданных параметров.
rm удаляет файлы или каталоги.
rmdir удаляет пустые каталоги.
shred безопасно удаляет файл, перезаписывая занимаемые им блоки, так что содержимое невозможно восстановить.
sync принудительно записывает изменившиеся блоки на диск и обновляет superblock.
touch изменяет время доступа и изменения каждого заданного файла на текущее время. Если файл не существует, то создается пустой файл.
Последняя проверка: версия 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
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Findutils (4.1):
ftp://ftp.gnu.org/gnu/findutils/
Findutils Patch (4.1):
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/
http://ftp.linuxfromscratch.org/lfs-packages/4.0/
Последняя проверка: версия 4.1.
bigram, code, find, frcode, locate, updatedb и xargs
bigram используется вместе с code для создания поисковых баз старого типа. Больше информации об этих программах приведено на locatedb.5 man page.
code - предшественник frcode. Он использовался в старых поисковых базах.
find ищет файлы, отвечающие заданному критерию. Если критерий не задан, выводится список файлов в текущем каталоге и каталогах нижнего уровня.
frcode вызывается updatedb для сжатия списка файлов, используя front-compression и уменьшая размер базы данных в 4-5 раз.
locate просматривает базу данных, содержащую сведения обо всех файлах и каталогах на файловой системе. Программа выводит имена файлов и каталогов в базе, совпадающие с заданным критерием. Если пользователь ищет файлы, программа просмотрит базу и сообщит, где находятся запрошенные файлы. Поиск даст результаты, только если база часто обновляется, иначе будет выдана устаревшая информация.
updatedb обновляет поисковую базу. Просматривается вся файловая система (включая все смонтированные, если не указано обратное), каждый найденный файл и каталог записывается в базу, используемую locate. Неплохо обновлять базу хотя бы раз в день, чтобы избежать ее устаревания.
xargs выполняет команду относительно списка файлов. Список должен содержать одно имя в строке.
Последняя проверка: версия 4.1.
Bash: sh
Binutils: ar, as, ld, ranlib
Diffutils: cmp
Fileutils: chmod, cp, install, mv, rm
Grep: egrep, grep
Gcc: cc1, collect2, cpp0, gcc
Make: make
Patch: patch
Sed: sed
Sh-utils: basename, date, echo, hostname
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Flex (2.5.4a):
ftp://ftp.gnu.org/non-gnu/flex/
Последняя проверка: версия 2.5.4a.
flex, flex++ (ссылка на flex) and lex
flex - инструмент для генерации программ, распознающих заданные образцы в тексте. Распознавание образцов часто используется во многих приложениях. Пользователь задает правила поиска, и flex создает программу для поиска образцов. Причина, по которой люди используют flex, состоит в том, что гораздо проще задать правила, чем писать собственную программу.
flex++ вызывает версию flex, используемую для сканеров C++.
Мы создали скрипт lex, вызывающий flex с опцией -l. Это необходимо для совместимости с программами, использующими lex вместо flex.
libfl.a
Последняя проверка: версия 2.5.4a.
Bash: sh
Binutils: ar, as, ld, ranlib
Bison: bison
Diffutils: cmp
Fileutils: chmod, cp, install, ln, mv, rm, touch
Gcc: cc1, collect2, cpp0, gcc
Grep: egrep, grep
Make: make
Sed: sed
Sh-utils: echo, hostname
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Gawk (3.1.1):
ftp://ftp.gnu.org/pub/gnu/gawk/
Gawk Patch (3.1.1-2):
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/
http://ftp.linuxfromscratch.org/lfs-packages/4.0/
Последняя проверка: версия 3.1.1.
awk, gawk, gawk-3.1.1, grcat, igawk, pgawk, pgawk-3.1.1, pwcat
awk - символьная ссылка на gawk.
gawk - GNU реализация awk, языка поиска и обработки текстовых образцов.
grcat выполняет слияние базы групп, /etc/group.
igawk - скрипт, дающий gawk возможность включения файлов.
pgawk - профильная версия gawk.
pwcat выполняет слияние базы паролей, /etc/passwd.
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Next |
GCC (3.2):
ftp://ftp.gnu.org/pub/gnu/gcc/
GCC Patch (3.2):
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/
http://ftp.linuxfromscratch.org/lfs-packages/4.0/
GCC nofixincludes Patch (3.2):
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/
http://ftp.linuxfromscratch.org/lfs-packages/4.0/
Последняя проверка: версия 3.1.
c++, c++filt, cc (link to gcc), cc1, cc1plus, collect2, cpp, cpp0, g++, gcc, gccbug, gcov и tradcpp0
Компилятор C. Компилятор переводит код из текстового формата в формат, понятный компьютеру. После того, как исходный код скомпилирован в объектный файл, линкер создаст исполняемый файл из одного или нескольких объектных.
Компилятор C++, эквивалент cc, gcc etc.
Язык C++ позволяет осуществлять перезагрузку фуннкций, делая возможным написание многих функций с одним именем (с разным набором параметром). Все имена фунций C++ закодированы в низкоуровневые метки ассемблера (этот процесс известен как mangling). c++filt совершает обратное действие: низкоуровневые имена переводятся (demangling) в имена, понятные пользователю, так что линкер избегает конфликта между перезагруженными функциями.
collect2 помогает в компиляции конструкторов.
cpp осуществляет препроцессинг исходных файлов, например включает в них содержимое заголовочных файлов. Просто добавьте в ваш исходный файл строку вроде #include <filename>. Препроцессор вставит содержимое заголовочного файла.
gccbug - скрипт, облегчающий создание сообщений об ошибках.
gcov анализирует программы, чтобы помочь в создании более эффективного и быстрого кода путем его оптимизации.
На данный момент описания нет.
libgcc.a, libgcc_eh.a, libgcc_s.so, libiberty.a, libstdc++.[a,so], libsupc++.a
Файлы поддержки gcc времени исполнения.
libiberty - коллекция подпрограмм, используемых различными программами GNU, включая getopt, obstack, strerror, strtol и strtoul.
libstdc++ - библиотека C++. Она используется программами на C++ и содержит часто используемые функции. Таким образом, программисту не нужно писать стандартные фунции (например, вывод строки текста на экран) с нуля при каждом создании программы.
libsupc++ предоставляет поддержку языка программирования C++. Помимо прочего, libsupc++ содержит функции для обработки исключений.
Последняя проверка: версия 2.95.3.
Bash: sh
Binutils: ar, as, ld, nm, ranlib
Diffutils: cmp
Fileutils: chmod, cp, ln, ls, mkdir, mv, rm, touch
Find: find
Gcc: cc, cc1, collect2, cpp0, gcc
Grep: egrep, grep
Make: make
Patch: patch
Sed: sed
Sh-utils: basename, dirname, echo, expr, hostname, sleep, true, uname
Tar: tar
Texinfo: install-info, makeinfo
Textutils: cat, tail, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Gettext (0.11.5):
ftp://ftp.gnu.org/gnu/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.rpath выводит зависящий от системы набор переменных, описывающий как установить путь поиска разделяемых библиотек.
gettext используется для интернационализации (aka i18n) и локализации (aka l10n). Программы могут быть скомпилированы с поддержкой Native Language Support (NLS), что позволяет им выводить сообщения на родном языке пользователя вместо стандартного английского.
gettextize копирует все стандартные файлы gettext в каталог. Используется для создания пакетов с переводами gettext.
hostname выводит имя системы в разных форматах.
msgattrib фильтрует сообщения каталога переводов, основываясь на их атрибутах, а также оперирует их атрибутами.
msgcat находит сообщения, встречающиеся в нескольких переводах.
msgcmp сравнивает 2 файла перевода.
msgcomm ищет сообщения, появляющиеся в нескольких файлах .po. Используется для сравнения переводов.
msgconv конвертирует каталог перевода в другую кодировку.
msgen создает каталог переводов для английского языка.
msgexec применяет команду ко всем переводам из каталога перевода.
msgfilter применяет фильтр ко всем переводам из каталога переводов.
msgfmt program компилирует перевод в машинный код. Используется для создания окончательного перевода программы или пакета.
msggrep выдает все сообщения из каталога перевода, соответствующие заданному образцу или принадлежащие заданным исходным файлам.
msginit создает новый файл PO, инициализирую метаинформацию значениями пользовательского окружения.
msgmerge объединяет два перевода в один файл. Используется для обновления перевода при помощи исходных файлов.
msgunfmt декомпилирует файлы перевода. Возможно использование, только если есть скомпилированные версии.
msguniq приводит к единому образцу дублирующиеся переводы в каталоге переводов.
ngettext выводит переводы текстового сообщения, чья грамматическая форма зависит от числа на основной язык.
project-id выводит идентификационную информацию пакета.
team-address выводит адрес команды переводчиков на стандартный вывод и выдает дополнительные инструкции.
trigger проверяет, является ли пакет пакетом GNOME или KDE.
urlget получает содержимое URL.
user-email выводит адрес электронной почты пользователя, с подтверждением.
xgettext извлекает строки сообщений из файлов C. Используется для создания шаблона перевода.
libgettextlib[a,so], libgettextsrc[a,so]
Последняя проверка: версия 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
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Grep (2.5):
ftp://ftp.gnu.org/gnu/grep/
Последняя проверка: версия 2.5.
egrep (ссылка на grep), fgrep (ссылка на grep) и grep
Последняя проверка: версия 2.4.2.
Autoconf: autoconf, autoheader
Automake: aclocal, automake
Bash: sh
Binutils: as, ld
Diffutils: cmp
Fileutils: chmod, install, ls, mkdir, mv, rm
Gettext: msgfmt, xgettext
Gcc: cc, cc1, collect2, cpp0, gcc
Glibc: getconf
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, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Man (1.5k):
ftp://ftp.win.tue.nl/pub/linux-local/utils/man/
Man Patch (1.5k):
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/
http://ftp.linuxfromscratch.org/lfs-packages/4.0/
Последняя проверка: версия 1.5k.
apropos, makewhatis, man, man2dvi, man2html и whatis
apropos ищет ключевые слова в базах данных, содержащих кратное описание системных команд, и отображает результат на стандартный вывод.
makewhatis читает страницы руководства, находящиеся в заданных частях manpath, или преформатированные страницы, находящиеся в заданных частях catpath. Для каждой страницы делается запись в базе whatis. Каждая запись состоит из имени страницы и краткого описания, разделенных дефисом. Описание извлекается, используя содержимое секции NAME страницы руководства.
man форматирует и выводит запрашиваемые страницы руководства.
man2dvi конвертирует страницу руководства в формат dvi.
man2html конвертирует страницу руководства в гипертекст.
whatis ищет ключевые слова в базах данных, содержащих кратное описание системных команд, и отображает результат на стандартный вывод. Выводятся лишь полностью совпадающие сочетания.
Последняя проверка: версия 1.5i2.
Bash: sh
Binutils: as, ld
Fileutils: chmod, cp, install, mkdir, rm
Gcc: c11, collect2, cpp0, gcc
Grep: grep
Make: make
Gawk: awk
Sed: sed
Sh-utils: echo
Textutils: cat
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Man-pages (1.52):
ftp://ftp.kernel.org/pub/linux/docs/manpages/
Последняя проверка: версия 1.52.
Различные страницы руководства, не поставляемые с пакетами
Примеры предоставляемых страниц руководства - описания всех функций C and C++, файлов /dev/ и многое другое.
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
MAKEDEV (1.7):
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/
http://ftp.linuxfromscratch.org/lfs-packages/4.0/
Последняя проверка: версия 1.5.
Bash: sh
Fileutils: chmod, chown, cp, ln, mknod, mv, rm
Grep: grep
Sh-utils: expr, id
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперел |
Make (3.79.1):
ftp://ftp.gnu.org/gnu/make/
Последняя проверка: версия 3.79.1.
Autoconf: autoconf, autoheader
Automake: aclocal, automake
Bash: sh
Binutils: as, ld
Diffutils: cmp
Fileutils: chgrp, chmod, install, ls, mv, rm
Gcc: cc, cc1, collect2, cpp0, gcc
Glibc: getconf
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, tr
Linux From Scratch: Версия 4 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
M4 (1.4):
ftp://ftp.gnu.org/gnu/m4/
Последняя проверка: версия 1.4.
m4
m4 - макропроцессор. Копирует из ввода на вывод, выполняя макросы. Макросы могут быть как встроенными, так и определенными польователем, и могут иметь любое чисо параметров. Кроме обычных макрорасширений, m4 имеет встроенные функции для включения файлов, запуска команд Unix, целочисленной арифметики, различных текстовых операций, рекурсии etc. m4 может быть использовано как оболочка для компилятора, так и собственно макропроцессор.
Последняя проверка: версия 1.4.
Bash: sh
Binutils: ar, as, ld, ranlib
Diffutils: cmp
Fileutils: chmod, cp, install, mv, rm
Make: make
Gcc: cc1, collect2, cpp0, gcc
Grep: egrep, grep
Sed: sed
Sh-utils: date, echo, hostname
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Lilo (22.2):
ftp://ibiblio.org/pub/Linux/system/boot/lilo/
http://ibiblio.org/pub/Linux/system/boot/lilo/
Последняя проверка: версия 22.2.
lilo, mkrescue и keytab-lilo.pl
lilo устанавливает загрузчик Linux, используемый для старта системы.
mkrescue создает загрузочную дискету, используя существующее ядро и любой инициализационный ramdisk.
keytab-lilo.pl компилирует определения keytable в формат, который lilo может использовать для настройки клавиатуры во время загрузки.
Последняя проверка: версия 22.1.
Bash: sh
Bin86: as86, ld86
Binutils: as, ld, strip
Fileutils: cp, dd, ln
Gcc: cc, cc1, collect2, cpp0
Make: make
Sed: sed
Textutils: cat
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Libtool (1.4.2):
ftp://ftp.gnu.org/gnu/libtool/
Последняя проверка: версия 1.4.2.
libtool и libtoolize
libtool предоставляет общие сервисы сборки библиотек.
libtoolize предоставляет стандартный путь добавления поддержки libtool в пакет.
libltdl.a, libltdl.so (ссылка на libltdl.so.3.1.0), libltdl.so.3 (ссылка на libltdl.so.3.1.0) и libltdl.so.3.1.0
Небольшая библиотека, направленная на сокрытие от программиста различных трудностей, связанных с библиотеками (dlopen).
Последняя проверка: версия 1.4.2.
Bash: sh
Binutils: ar, as, ld, nm, ranlib, strip
Diffutils: cmp
Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm, rmdir
Gcc: cc, cc1, collect2, cpp0
Glibc: ldconfig
Grep: egrep, fgrep, grep
Make: make
Sed: sed
Sh-utils: echo, expr, hostname, sleep, uname
Texinfo: install-info
Textutils: cat, sort, tr, uniq
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Less (374):
ftp://ftp.gnu.org/gnu/less/
Последняя проверка: версия 374.
less, lessecho и lesskey
less - текстовый просмотрщик. Отображает содержимое файла с возможностью прокрутки. Less - улучшение утилиты more. Имеется возможность обратной прокрутки, нет необходимости считывать весь файл при его загрузке, что облегчает чтение больших файлов.
lessecho необходим для подстановок метасимволов, вроде * и ?, в именах файлов на системах Unix.
lesskey используется для установок клавиш less.
Последняя проверка: версия 358.
Bash: sh
Binutils: as, ld
Diffutils: cmp
Fileutils: chmod, install, mv, rm, touch
Grep: egrep, grep
Gcc: cc1, collect2, cpp0, gcc
Make: make
Sed: sed
Sh-utils: expr, hostname, uname
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Linux (2.4.19):
ftp://ftp.kernel.org/pub/linux/kernel/
Последняя проверка: версия 2.4.18.
Ядро Linuxи и его заголовочные файлы
Ядро - основа любой системы Linux. Когда компьютер включается и загружает Linux, первое, что загружается - ядро. Ядро инициализирует аппаратные компоненты системы: последовательные и параллельные порты, звуковые и сетевые карты, контроллеры IDE и SCSI и многое другое. In a nutshell the kernel makes the hardware available so that the software can run.
Это файлы, которые мы копируем в /usr/include/{linux,asm} в 5-й главе. Они должны соответствовать тем, с которым был скомпилирован glibc, и поэтому не должны быть заменены при смене ядра. Они имеют ключевое значение для компиляции многих программ.
Последняя проверка: версия 2.4.17.
Bash: sh
Binutils: ar, as, ld, nm, objcopy
Fileutils: cp, ln, mkdir, mv, rm, touch
Findutils: find, xargs
Gcc: cc1, collect2, cpp0, gcc
Grep: grep
Gzip: gzip
Make: make
Gawk: awk
Modutils: depmod, genksyms
Net-tools: dnsdomainname, hostname
Sed: sed
Sh-utils: basename, date, expr, pwd, stty, uname, whoami, yes
Textutils: cat, md5sum, sort, tail
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Kbd (1.06):
ftp://ftp.win.tue.nl/pub/linux-local/utils/kbd/
Kbd Patch (1.06-3):
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/
http://ftp.linuxfromscratch.org/lfs-packages/4.0/
Последняя проверка: версия 1.06.
chvt, deallocvt, dumpkeys, fgconsole, getkeycodes, getunimap, kbd_mode, kbdrate, loadkeys, loadunimap, mapscrn, openvt, psfaddtable (ссылка на psfxtable), psfgettable (ссылка на psfxtable), psfstriptable (ссылка на psfxtable), psfxtable, resizecons, setfont, setkeycodes, setleds, setlogcons, setmetamode, setvesablank, showfont, showkey, unicode_start, и unicode_stop
chvt переключает текущий виртуальный терминал.
deallocvt закрывает неиспользуемые виртуальные терминалы.
dumpkeys выводит таблицы перевода клавиатуры.
fgconsole выводит число активных виртуальных терминалов.
getkeycodes выводит таблицу конвертирования scancode-to-keycode.
getunimap выводит текущий используемый unimap.
kbd_mode выводит или устанавливает режим клавиатуры.
kbdrate устанавливает время повтора и задержки клавиатуры.
loadkeys загружает таблицы перевода клавиатуры.
loadunimap загружает таблицу конвертирования unicode-to-font.
mapscrn загружает определенную пользователем таблицу перевода выводимых символов в драйвер консоли. Заметьте, что утилита устарела, и ее возможности встроены в setfont.
openvt запускает программу на новом виртуальном терминале (VT).
Набор средств для управления таблицами символов Unicode для консольных шрифтов.
resizecons меняет настройки ядра, касающиеся размера консоли.
Позволяет менят консольные шрифты EGA/VGA.
setkeycodes загружает правила преобразования из сканкодов в клавиатурные.
setleds устанавливает индикаторы клавиатуры. Многие люди предпочитают включение numlock по умолчанию. и это может быть выполнено с помощью этой программы.
setlogcons выводит сообщения ядра в консоль.
setmetamode определяет метауправление клавиатурой.
Позволяет использовать встроенный аппаратный хранитель экрана (просто пустой экран).
showfont отображает информацию о шрифте. Показываются свойства шрифта, метрики символов и их образцы.
showkey проверяет сканкоды с клавиатуры.
unicode_start переводит консоль в режим Unicode.
unicode_stop выводит клавиатуру и консоль из режима Unicode.
Последняя проверка: версия 1.06.
Bash: sh
Binutils: as, ld, strip
Bison: bison
Diffutils: cmp
Fileutils: cp, install, ln, mv, rm
Flex: flex
Gettext: msgfmt, xgettext
Gcc: cc1, collect2, cpp0, gcc
Grep: grep
Gzip: gunzip, gzip
Make: make
Patch: patch
Sed: sed
Sh-utils: uname
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описание пакетов и зависимостей | Вперед |
Gzip (1.2.4a):
ftp://ftp.gnu.org/gnu/gzip/
Последняя проверка: версия 1.2.4a.
gunzip (ссылка на gzip), gzexe, gzip, uncompress (ссылка на gunzip), zcat (ссылка на gzip), zcmp, zdiff, zforce, zgrep, zmore и znew
gunzip и uncompress распаковывают файлы, сжатые gzip.
gzexe позволяет сжать исполняемые файлы и автоматически распаковывать их при запуске (уменьшается производительность ).
gzip уменьшает размер указанных файлов используя код Lempel-Ziv (LZ77).
zcat распаковывает и выводит на стандартный вывод либо файлы из заданного списка, либо файл со стандартного ввода.
zcmp применяет cmp к сжатым файлам.
zdiff применяет diff к сжатым файлам.
zforce присваивает расширение .gz всем файлам gzip, так что они не будут сжаты дважды. Может быть полезно для файлов, чьи имена были изменены после их передачи.
zgrep применяет grep к сжатым файлам.
zmore - фильтр, позволяющий поэкранный просмотр (не)сжатых текстовых файлов (вроде more).
znew конвертирует файлы формата .Z (compress) в .gz (gzip).
Последняя проверка: версия 1.2.4a.
Bash: sh
Binutils: as, ld, nm
Fileutils: chmod, cp, install, ln, mv, rm
Gcc: cc1, collect2, cpp, cpp0, gcc
Grep: egrep, grep
Make: make
Sed: sed
Sh-utils: hostname
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Modutils (2.4.19):
ftp://ftp.kernel.org/pub/linux/utils/kernel/modutils/
Последняя проверка: версия 2.4.16.
depmod, genksyms, insmod, insmod_ksymoops_clean, kallsyms (ссылка на insmod), kernelversion, ksyms (ссылка на insmod), lsmod (ссылка на insmod), modinfo, modprobe (ссылка на insmod) и rmmod (ссылка на insmod)
depmod управляет деревьями зависимостей загружаемых модулей.
genksyms читает вывод от gcc -E source.c и генерирует файл, содержащий информацию о версиях.
insmod включает модуль в ядро.
insmod_ksymoops_clean удаляетсохраненные ksym'ы и модули, не использующиеся минимум 2 дня.
kallsyms извлекает символы ядра для отладки.
kernelversion выводит номер основной версии ядра.
ksyms показывает экспортированные символы ядра.
lsmod показывает информацию о загруженных модулях.
modinfo просматривает объектный файл, ассоциированный с модулем ядра, и выводит любую доступную информацию.
modprobe использует файл зависимостей вроде Makefile, созданный depmod, для автоматической загрузки необходимых модулей из набора в предварительно заданном дереве каталогов.
rmmod выгружает модули из ядра.
Последняя проверка: версия 2.4.12.
Bash: sh
Binutils: ar, as, ld, ranlib, strip
Bison: bison
Diffutils: cmp
Fileutils: chmod, install, ln, mkdir, mv, rm
Flex: flex
Gcc: cc, cc1, collect2, cpp0, gcc
Grep: egrep, grep
Make: make
Sed: sed
Sh-utils: basename, expr, hostname, uname
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Ncurses (5.2):
ftp://ftp.gnu.org/gnu/ncurses/
Ncurses Patch (5.2):
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/
http://ftp.linuxfromscratch.org/lfs-packages/4.0/
Последняя проверка: версия 5.2.
captoinfo (ссылка на tic), clear, infocmp, infotocap (ссылка на tic), reset (ссылка на tset), tack, tic, toe, tput и tset.
captoinfo конвертирует описания termcap в описания terminfo.
clear очищает экран, если это возможно. Тип терминала ищется в переменных окружения и базе terminfo, процедура очистки экрана зависит от найденного типа.
infocmp используется для сравнения бинарной записи terminfo с другими записями, перезаписать описание terminfo, использовать поле terminfo use=, или вывести описание terminfo из бинарного файла (term) в различных форматах (противоположность тому. что делает tic).
infotocap конвертирует описания terminfo в описания termcap.
reset устанавливает режимы cooked и echo, отключает режимы cbreak и raw, включает трансляцию символов новой строки и сбрасывает все неустановленные специальные символы на значения по умолчанию перед инициализацией терминала вроде tset.
tack - проверяет действия terminfo.
tic - компилятор описаний записей terminfo. Программа транслирует файл terminfo из исходного в бинарный формат для использоваия библиотекой ncurses. Файлы terminfo содержат информацию о возможностях терминала.
toe перечисляет все доступные типы терминалов по основному имени вместе с описаниями.
tput использует базу terminfo, чтобы сделать инфорамацию о терминале доступной командному интерпретатору, инициализировать или сбросить терминал, либо вернуть полное имя запрошенного типа терминала.
tset инициализирует терминалы, что уже не используется широко. Необходимо для совместимости с 4.4BSD.
libcurses.[a,so] (ссылка на libncurses.[a,so]), libform.[a,so], libform_g.a, libmenu.[a,so], libmenu_g.a, libncurses++.a, libncurses.[a,so], libncurses_g.a, libpanel.[a,so] и libpanel_g.a
Это - основные библиотеки пакета, использются для отображения текста на экране (зачастую нестандартным способом). Пример использования ncurses - процедура "make menuconfig" сборки ядра.
libform используется для реализации форм в ncurses.
libmenu используется для реализации меню в ncurses.
libpanel используется для реализации панелей в ncurses.
Последняя проверка: версия 5.2.
Bash: sh
Binutils: ar, as, ld, ranlib
Diffutils: cmp
Fileutils: chmod, cp, install, ln, mkdir, mv, rm
Gcc: c++, cc1, cc1plus, collect2, cpp0, gcc
Glibc: ldconfig
Grep: egrep, fgrep, grep
Make: make
Gawk: gawk
Sed: sed
Sh-utils: basename, date, echo, expr, hostname, uname
Textutils: cat, sort, tr, wc
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Net-tools (1.60):
http://www.tazenda.demon.co.uk/phil/net-tools/
Последняя проверка: версия 1.60.
arp, dnsdomainname (ссылка на hostname), domainname (ссылка на hostname), hostname, ifconfig, nameif, netstat, nisdomainname (ссылка на hostname), plipconfig, rarp, route, slattach и ypdomainname (ссылка на hostname)
arp используется для манипулирования ARP кэшом ядра, обычно для добавления/удаления записей, или вывода его содержимого.
dnsdomainname выводит DNS доменное имя системы.
domainname выводит или изменяет NIS/YP доменное имя системы.
hostname выводит или изменяет имя текущего хоста.
ifconfig - основная утилита, используемая для настройки сетевых интерфейсов.
nameif указывает сетевые интерфейсы, основанные на адресах MAC.
netstat - многоцелевой инструмент, используемый для отображения сетевых соединений, таблиц роутинга, статистики интерфейсов, маскированных соединений и множественных вызовах.
nisdomainname выводит или изменяет NIS/YP доменное имя системы.
plipconfig - используется для тонкой настройки устройств PLIP device, возможно ускоряя ее.
Как и arp, rarp манипулирует таблицей RARP.
route - основная утилита для управления таблицами IP роутинга.
slattach активирует сетевой интерфейс на последовательной линии, т.е. переводит обычную терминальную линию в один из нескольких "сетевых" режимов.
ypdomainname выводит или изменяет NIS/YP доменное имя системы.
Последняя проверка: версия 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
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Netkit-base (0.17):
ftp://ftp.uk.linux.org/pub/linux/Networking/netkit/
Последняя проверка: версия 0.17.
Bash: sh
Binutils: as, ld, strip
Fileutils: cp, install, rm
Make: make
Gcc: cc1, collect2, cpp0, gcc
Sed: sed
Sh-utils: date
Textutils: cat
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Patch (2.5.4):
ftp://ftp.gnu.org/gnu/patch/
Последняя проверка: версия 2.5.4.
patch
patch модифицирует файл в соответствии с патчем. Патч обычно является списком, созданным diff, содержащим инструкции к изменению. Patch часто используется для исправлений в исходном коде, поскольку сохраняет время и место на диске. Например, имеется пакет объемом 1 MB. Следующая версия пакета имеет изменения только в 2 файлах. Новая версия может быть как новым пакетом в 1 MB или патчем в 1 KB. Таким образом, патчи позволяют избежать объемных загрузок.
Последняя проверка: версия 2.5.4.
Bash: sh
Binutils: as, ld
Diffutils: cmp
Fileutils: chmod, install, mv, rm
Gcc: cc, cc1, collect2, cpp0, gcc
Glibc: getconf
Grep: egrep, grep
Make: make
Sed: sed
Sh-utils: echo, expr, hostname, uname
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Perl (5.8.0):
http://www.perl.com/
Последняя проверка: версия 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 - траслятор с awk на perl.
c2ph выводит структуры C как сгенерированные "cc -g -S".
dprofpp отображает профили perl.
find2perl траслирует командные строки find в код Perl.
h2ph конвертирует заголовочные файлы C в заголовки Perl.
h2xs конвертирует заголовочные файлы C в расширения Perl.
perl - Practical Extraction and Report Language (Язык Практичных Извлечений и Докладов :)). Сочетает достоинства C, sed, awk и sh в одном мощном языке.
perlbug генерирует сообщение об ошибке perl или его модулей и отправляет их по почте.
perlcc генерирует исполняемые файлы из программ на Perl.
perldoc просматривает документацию .pod, поставляемую с perl или скриптом perl и выводит как "pod2man | nroff -man | $PAGER".
pl2pm - утилита для помощи в конвертировании библиотек Perl4 в модули библиотек Perl5.
pod2html конвертирует файлы из формата pod в формат HTML.
pod2latex конвертирует файлы из формата pod в формат LaTeX.
pod2man конвертирует файлы из формата pod в форматированный ввод *roff.
pod2text конвертирует файлы из формата pod в форматированный текст ASCII.
pod2usage выводит в файлы сообщения об использовании из встроенной документации pod.
podchecker проверяет синтаксис файлов документации в формате pod.
podselect выводит выбранные части документации pod на стандартный вывод.
pstruct выводит структуры C как сгенерированные "cc -g -S".
s2p - транслятор с sed на perl.
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
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
На данный момент описания нет.
Последняя проверка: версия 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
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Procinfo (18):
ftp://ftp.cistron.nl/pub/people/svm/
Последняя проверка: версия 18.
lsdev, procinfo и socklist
lsdev получает информацию об установленном оборудовании из файлов interrupts, ioports и dma в каталоге /proc directory, составляя краткий обзор используемых адресов I/O и каналов IRQ и DMA.
procinfo получает системную информацию из каталога /proc и выводит отформатированный результат на стандартный вывод.
Скрипт Perl, выводящий список открытых сокетов, включающий тип, порт, inode, uid, pid, fd и программу, к которой принадлежит сокет.
Последняя проверка: версия 18.
Binutils: as, ld
Fileutils: install, mkdir
Gcc: cc1, collect2, cpp0, gcc
Make: make
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описание пакетов и зависимостей | Вперед |
Glibc (2.2.5):
ftp://ftp.gnu.org/gnu/glibc/
Glibc-linuxthreads (2.2.5):
ftp://ftp.gnu.org/gnu/glibc/
Glibc Patch (2.2.5-2):
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/
http://ftp.linuxfromscratch.org/lfs-packages/4.0/
Последняя проверка: версия 2.2.5.
catchsegv, gencat, getconf, getent, glibcbug, iconv, iconvconfig, ldconfig, ldd, lddlibc4, locale, localedef, mtrace, nscd, nscd_nischeck, pcprofiledump, pt_chown, rpcgen, rpcinfo, sln, sprof, tzselect, xtrace, zdump и zic
catchsegv может быть использования для слежения за состоянием стека, когда выполнение программы прерывается из-за ошибки распределения памяти.
gencat генерирует каталоги сообщений.
getconf отображает значения переменных, зависящих от системной конфигурации.
getent позволяет получить записи административной базы данных.
glibcbug создает сообщение об ошибке в glibc и отправляет по указанному адресу сообщения об ошибках.
iconv осуществляет преобразование наборов символов.
iconvconfig создает конфигурационные файлы для модулей iconv.
ldconfig настраивает привязки времени исполнения динамического линкера.
ldd выводит список разделяемых библиотек, необходимых заданным программам.
lddlibc4 используется ldd при работе с объектными файлами.
locale - скрипт на Perl, разрешающий (или запрещающий) компилятору использование локалей POSIX для встроенных операций.
localedef компилирует спецификации локалей.
mtrace выводит путь multicast от источника к получателю (запрос IP trace).
nscd - демон, предоставляющий кэш для большинства запросов DNS.
nscd_nischeck проверяет нужен или нет защищенный режим для запроса NIS+.
pcprofiledump выводит информацию, полученной из профиля PC.
pt_chown устанавливает влдельца, группу и права доступа подчиненного псеводотерминала в соответствии с основным псевдотерминалом, переданном в описании `3'. Это вспомогательная программа для функции `grantpt'. Не предназначается для прямого запуска из командной строки.
rpcgen генерирует код C для реализации протокола RPC.
rpcinfo делает запрос RPC к серверу.
sln символически связывает dest и source. Программа собрана статически. Использование sln полезно для создания символических ссылок на динамические библиотеки, если система динамического связывания по какой-то причине нефункциональна.
sprof выводит информацию о разделяемом объекте.
tzselect получает от пользователя информацию от его местоположении и выводит на стандартный вывод значение текущей временной зоны.
xtrace отслеживает исполнение программы, выводя исполняемые в данный момент функции.
zdump - сохраняет значение временной зоны.
zic - компилятор временных зон.
ld.so, libBrokenLocale.[a,so], libBrokenLocale_p.a, libSegFault.so, libanl.[a,so], libanl_p.a, libbsd-compat.a, libc.[a,so], libc_nonshared.a, libc_p.a, libcrypt.[a,so], libcrypt_p.a, libdl.[a,so], libdl_p.a, libg.a, libieee.a, libm.[a,so], libm_p.a, libmcheck.a, libmemusage.so, libnsl.a, libnsl_p.a, libnss_compat.so, libnss_dns.so, libnss_files.so, libnss_hesiod.so, libnss_nis.so, libnss_nisplus.so, libpcprofile.so, libpthread.[a,so], libpthread_p.a, libresolv.[a,so], libresolv_p.a, librpcsvc.a, librpcsvc_p.a, librt.[a,so], librt_p.a, libthread_db.so, libutil.[a,so] и libutil_p.a
ld.so - вспомогательная программа для исполняемых файлов разделяемых библиотек.
Используется многими программами, например Mozilla, для использования поврежденных локалей.
libSegFault управляет сигналами ошибок распределения памяти, также пытается их перехватить.
libanl - библиотека асинхронных запросов DNS.
libbsd-compat предоставляет переносимость, необходимую для запуска некоторых программ в Linux.
Эти файлы образуют основную библиотеку C. Библиотека C - набор набор часто используемых в программах функций. Таким образом, программисту не нужно писать свои функции для каждой задачи. Большинство стандартных операций вроде вывода строки на экран уже готовы к использованию.
Библиотека C (в общем случае, любая библиотека) существует как в динамическом, так и статическом виде. Вкратце, когда программа использует статическую библиотеку, код из библиотеки копируется в исполняемый файл. При использовании динамической библиотеки, код из библиотеки не добавляется в исполняемый файл, а загружается только во время исполнения программы. Это позволяет уменьшить размер программ. За подробностями обращайтесь к документации библиотеки C.
libcrypt - криптографическая библиотека.
libdl - библиотека интерфейсов динамической линковки.
libg - библиотека времени исполнения g++.
libieee - IEEE библиотека операций с числами с плавающей запятой.
libm - математическая библиотека.
libmcheck - содержит код, выполняемый при загрузке.
libmemusage - используется memusage для сбора информации о памяти, используемой программой.
libnsl - библиотека сетевых сервисов.
Основная идея - поместить реализацию различных сервисов доступа к базам данных в отдельные модули. Преимущества:
поставщики могут добавлять новые сервисы, не включая их в C библиотеку GNU,
модули могут быть независимо обновлены,
Библиотека C имеет меньший размер.
Код, используемый ядром для отслеживания времени, затрачиваемого процессором на исполнение функций, отдельных строк кода и инструкций.
POSIX библиотека потоков.
Библиотека позволяет DNS-серверам создавать, посылать и интерпретировать пакеты.
Библиотека предоставляет различные сервисы RPC.
Библиотека предоставляет большинство интерфейсов, описанных POSIX.1b Realtime Extension.
Библиотека полезна для создания отладчиков для многопотоковых приложений.
Содержит код "стандартных" функций, используемых многими утилитами Unix.
Последняя проверка: версия 2.2.5.
Bash: sh
Binutils: ar, as, ld, ranlib, readelf
Diffutils: cmp
Fileutils: chmod, cp, install, ln, mknod, mv, mkdir, rm, touch
Gcc: cc, cc1, collect2, cpp, gcc
Grep: egrep, grep
Gzip: gzip
Make: make
Gawk: gawk
Sed: sed
Sh-utils: date, expr, hostname, pwd, uname
Texinfo: install-info, makeinfo
Textutils: cat, cut, sort, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описание пакетов и зависимостей | Вперед |
Procps (2.0.7):
ftp://people.redhat.com/johnsonm/procps/
Procps Patch (2.0.7):
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/
http://ftp.linuxfromscratch.org/lfs-packages/4.0/
Последняя проверка: версия 2.0.7.
free, kill, oldps, pgrep, pkill, ps, skill, snice, sysctl, tload, top, vmstat, w и watch
free показывает количество свободной и занятой физической и виртуальной памяти системы, а также разделяемой памяти и буферы ядра.
kills посылает сигналы процессам.
ps выводит список процессов.
pgrep выводит список процессов, основываясь на заданных именах и атрибутах.
pkill посылает сигналы процессам, основываясь на заданных именах и атрибутах.
skill посылает сигналы процессам, попадающим под критерий.
snice меняет приоритет процесса, попадающего под критерий.
sysctl меняет параметры ядра во время его работы.
tload выводит статистику загрузки системы на указанный tty (или текущий, если не).
top позволяет отслеживать активность процессора в реальном времени.
vmstat выводит информацию о процессах, памяти, разделе подкачки, блоках IO, и активности процессора.
w показывает информацию о зарегистрировавшихся пользователях и их процессах.
watch многократно выполняет команду, отображая ее вывод.
libproc.so
Последняя проверка: версия 2.0.7.
Bash: sh
Binutils: as, ld, strip
Fileutils: install, ln, mv, rm
Gcc: cc1, collect2, cpp0, gcc
Grep: grep
Make: make
Gawk: awk
Sed: sed
Sh-utils: basename, pwd
Textutils: sort, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Psmisc (21):
http://download.sourceforge.net/psmisc/
ftp://download.sourceforge.net/pub/sourceforge/psmisc/
Последняя проверка: версия 21.
fuser, killall и pstree
Заметьте, что в LFS мы не создаем ссылку на pidof по умолчанию, поскольку мы используем pidof из sysvinit.
Последняя проверка: версия 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
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Sed (3.02):
ftp://ftp.gnu.org/gnu/sed/
Последняя проверка: версия 3.02.
Autoconf: autoconf, autoheader
Automake: aclocal, automake
Bash: sh
Binutils: ar, as, ld, ranlib
Diffutils: cmp
Fileutils: chmod, install, ls, mv, rm
Gcc: cc1, collect2, cpp0, gcc
Glibc: getconf
Grep: egrep, fgrep, grep
M4: m4
Make: make
Gawk: gawk
Sed: sed
Sh-utils: echo, expr, hostname, sleep
Texinfo: install-info, makeinfo
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Appendix A. Package descriptions and dependencies | Вперед |
Sh-utils (2.0):
ftp://ftp.gnu.org/gnu/sh-utils/
Sh-utils Patch (2.0):
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/
http://ftp.linuxfromscratch.org/lfs-packages/4.0/
Последняя проверка: версия 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 удаляет каталоги и суффиксы из имен файлов.
chroot запускает команду или оболочку в указанном корневом каталоге.
date выводит текущее время в указанном формате или устанавливает.
dirname удаляет суффиксы, не относящиеся к каталогам, из имен файлов.
echo выводит строку текста.
env запускает программу в измененном окружении.
expr вычисляет выражения.
factor выводит разложение на простые множители всех указанных целых чисел.
false всегда завершается с кодом "ошибка".
groups выводит группу, к которой принадлежит пользователь.
hostid выводит числовой идентификатор (шестандцатеричный) текущего хоста.
id выводит пользовательский и групповой ID текущего или заданного пользователя.
logname выводит регистрационное имя текущего пользователя.
nice запускает программу с заданным приоритетом.
nohup выполняет команду, защищенную от зависаний, с выводом в журнальный файл.
pathchk проверяет наличие файла.
pinky - простая утилита finger, показывающая информацию о конкретном пользователе.
printenv выводит значения переменных окружения.
printf выводит форматированные данные (аналогично функции printf в C).
pwd выводит имя текужего каталога.
seq выводит числа в заданном диапазоне с заданным шагом.
sleep делает задержку на указанное количество времени.
stty выводит и изменяет настройки терминала.
su запускает командный интерпретатор с правами указанного пользователя и группы.
tee считывает данные со стандартного ввода и записывает их на стандартый вывод и в файлы.
test проверяет типы файлов и сравнивает значения.
true всегда завершается с кодом "успех".
tty выводит файловое имя терминала, подключенного к стандартному вводу.
uname выводит информацию о системе.
uptime сообщает, как долго активна система.
users выводит имена пользователей, зарегистрированных на локальном хосте.
who показывает зарегистрированных пользователей.
whoami выводит имя пользователя, ассоциированное с текущим пользовательским ID.
yes выводит 'y' или заданную строку до принудительного завершения.
Последняя проверка: версия 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
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Sysklogd (1.4.1):
http://www.infodrom.org/projects/sysklogd/
Последняя проверка: версия 1.4.1.
klogd and syslogd
klogd - системный демон, перехватывающий и сохраняющий в журнале сообщения ядра Linux.
syslogd предоставляет способ журналирования, используемый многими современными программами. Каждое сохраненное сообщение содержит, по крайней мере, информацию о времени и хосте, обычно также имя программы, прочие сведения зависят от приложения.
Последняя проверка: версия 1.4.1.
Binutils: as, ld, strip
Fileutils: install
Gcc: cc1, collect2, cpp0, gcc
Make: make
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Zlib (1.1.4):
ftp://ftp.info-zip.org/pub/infozip/zlib/
Зависимости еще не проверялись.
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Tar (1.13):
ftp://ftp.gnu.org/gnu/tar/
Tar Patch (1.13):
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/
http://ftp.linuxfromscratch.org/lfs-packages/4.0/
Последняя проверка: версия 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
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Texinfo (4.2):
ftp://ftp.gnu.org/gnu/texinfo/
Последняя проверка: версия 4.2.
info, infokey, install-info, makeinfo, texi2dvi и texindex
info читает документы Info, обычно находящиеся в /usr/share/info. Документы Info documents схожи с man pages, но содержат больше, чем простое объяснение опций программы.
infokey компилирует в бинарный формат исходный файл персонализаций Info.
install-info обновляет записи info. Когда запускается info, выводится список тем (т.е. доступных документов info). install-info обновляет этот список. Если файлы info удалены вручную, необходимо также удалить тему в оглавлении. Для этого и используется данная программа. Она работает аналогично в случае добавления новых документов.
makeinfo транслирует документы Texinfo в различные форматы. Доступны: файлы info, простой текст и HTML.
texi2dvi выводит документы Texinfo
texindex используется для сортировки оглавлений Texinfo.
Последняя проверка: версия 4.0.
Bash: sh
Binutils: ar, as, ld, ranlib
Diffutils: cmp
Fileutils: chmod, install, ln, ls, mkdir, mv, rm
Gcc: cc1, collect2, cpp0, gcc
Grep: egrep, fgrep, grep
Make: make
Sed: sed
Sh-utils: basename, echo, expr, hostname, sleep
Texinfo: makeinfo
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Vim (6.1):
ftp://ftp.vim.org/pub/editors/vim/unix/
Vim Patch (6.1):
ftp://ftp.linuxfromscratch.org/lfs-packages/4.0/
http://ftp.linuxfromscratch.org/lfs-packages/4.0/
Последняя проверка: версия 6.1.
efm_filter.pl, efm_perl.pl, ex (ссылка на vim), less.sh, mve.awk, pltags.pl, ref, rview (ссылка на vim), rvim (ссылка на vim), shtags.pl, tcltags, vi (ссылка на vim), view (ссылка на vim), vim, vim132, vim2html.pl, vimdiff (ссылка на vim), vimm, vimspell.sh, vimtutor и xxd
efm_filter.pl - фильтр, читающий из стандартного ввода, пишуший на стандартный вывод и создающий файл ошибок, обрабатываемый vim.
efm_perl.pl форматирует сообщения об ошибках интерпретатора Perl для использования в quickfix режиме vim.
ex запускает vim в режиме Ex.
less.sh - скрипт, запускающий vim, используя less.vim.
mve.awk обрабатывает ошибки vim.
pltags.pl создает файл тегов кода Perl для использования vim.
ref проверяет написание параметров.
rview - ограниченная версия view. Нельзя передавать команды интерпретатору и vim не может быть приостановлен.
rvim is the restricted version of vim. Нельзя передавать команды интерпретатору и vim не может быть приостановлен.
shtags.pl генерирует файл тегов для скриптов perl.
tcltags генерирует файл тегов кода TCL.
vi запускает vim в режиме совместимости с vi.
view запускает vim в режиме "только для чтения".
vim запускает vim в стандартном режиме.
vim132 запускает vim в терминале в 132 колонки.
vim2html.pl конвертирует документацию vim в HTML.
vimdiff сравнивает две или три версии файла и показывает различия.
vimm включает модель ввода DEC locator на удаленном терминале.
vimspell.sh просматривает файл и генерирует синтаксические выражения, выделяемые в vim.
vimtutor запускает обучение работе с Vim.
xxd конвертирует бинарный ввод из файла в шестнадцатеричный и обратно.
Последняя проверка: версия 6.0.
Bash: sh
Binutils: as, ld, strip
Diffutils: cmp, diff
Fileutils: chmod, cp, ln, mkdir, mv, rm, touch
Find: find
Gcc: cc1, collect2, cpp0, gcc
Grep: egrep, grep
Make: make
Net-tools: hostname
Sed: sed
Sh-utils: echo, expr, uname, whoami
Textutils: cat, tr, wc
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Sysvinit (2.84):
ftp://ftp.cistron.nl/pub/people/miquels/sysvinit/
Последняя проверка: версия 2.84.
halt, init, killall5, last, lastb (ссылка на last), mesg, pidof (ссылка на killall5), poweroff (ссылка на halt), reboot (ссылка на halt), runlevel, shutdown, sulogin, telinit (ссылка на init), utmpdump и wall
halt отмечает в /var/log/wtmp завершение работы системы и сообщает ядру о необходимости остановить, перезагрузить или отключить систему. Если halt или reboot вызваны, когда система не на уровнях выполнения 0 или 6, вместо них запускается (с флагами -h и -r соответственно).
init - предок всех процессов. Его основная роль - создание процессов из скрипта /etc/inittab. Этот файл содержит записи для создания getty, к которым подключаются пользователи. initt также контролирует различные автономные процессы.
killall5 - команда killall из SystemV. Посылается сигнал всем процессам вне собственной сессии, так что интерпретатор, выполняющий скрипт, из которого была вызвана эта команда, не будет завершен.
last просматривает /var/log/wtmp (или файл, указанный флагом -f) и выводит список всех пользователей, зарегистрировавшихся и завершивших сеанс с момента создания файла.
lastb действует аналогично last, но по умолчанию выводится журнал /var/log/btmp, содержащий записи о неудачных попытках регистрации.
mesg контролирует внешний доступ к терминалу пользователя. Обычно используется для разрешения записи на данный терминал прочим пользователям.
pidof выводит идентификаторы процессов (PIDs) указанных программ.
poweroff действует аналогично shutdown -h -p. Выполняется останов системы и ее физическое отключение (необходим APM совместимый BIOS и поддержка APM в ядре).
reboot действует аналогично shutdown -r. Выполняется перезагрузка системы.
runlevel читает файл utmp (обычно /var/run/utmp), ищет записи об уровне выполнение, и выводит предыдущий и текущий уровни выполнения на стандартный вывод, разделенные пробелом.
shutdown безопасно останавливает систему. Все зарегистрированные пользователи уведомляются об останове, регистрация в системе запрещается.
sulogin вызывается init, когда система переходит в однопользовательский режим (указывается записью в in /etc/inittab). Init также выполняет sulogin, когда получает флаг -b от загрузчика (например, LILO).
telinit посылает сигналы init, сообщающие о необходимости смены уровня выполнения.
utmpdump выводит содержимое файла (обычно /var/run/utmp) на стандартный вывод в удобном пользователю формате.
wall посылает сообщение всем зарегистрированным пользователям, но лишь в случае, если mesg установлено yes.
Последняя проверка: версия 2.84.
Bash: sh
Binutils: as, ld
Fileutils: chown, cp, install, ln, mknod, rm
Gcc: cc, cc1, collect2, cpp0
Make: make
Sed: sed
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Shadow (4.0.3):
ftp://ftp.pld.org.pl/software/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 изменяет число дней между сменами паролей и дату последнего изменения.
chfn изменяет полное имя пользователя и прочую информацию о нем (номер рабочего кабинета, рабочий и домашний телефоны).
chpasswd читает файл, содержащий пользовательские имена и пароли, и использует эту информацию для обновления группы существующих пользователей.
chsh меняет командный интерпретатор, используемый пользователем.
dpasswd добавляет, удаляет и обновляет пароли dial-up подключений для командных оболочек.
expiry просматривает и изменяет правила истечения срока действия паролей.
faillog форматирует содержимое журнала ошибок /var/log/faillog и поддерживает счетчики и лимиты ошибок.
gpasswd используется для редактирования /etc/group.
groupadd создает новую группу, используя заданные параметры и параметры по умолчанию.
groupdel изменяет файлы учетных записей, удаляя все относящееся к заданной группе.
groupmod изменяет файлы учетных записей групп, внося заданные изменения.
groups выводит группы, к которым принадлежит пользователь.
grpck проверяет целостность системной информации об аутентификации.
grpunconv конвертирует обычные файлы групп в теневые.
grpunconv конвертирует теневые файлы групп в обычные.
lastlog форматирует и выводит содержимое журнала регистраций /var/log/lastlog. Выводится регистрационное имя, порт и время регистрации.
login используется для начала новой сессии работы с системой.
logoutd контролирует время регистрации и прочие ограничения, указанные в /etc/porttime.
mkpasswd читает файл в заданном формате и конвертирует его в базу данных соответствующего формата.
newgrp изменяет текущую группу.
newusers читает файл с именами пользователей и пустыми полями паролей и обновляет группу существующих пользователей или создает новых.
passwd меняет пароли пользователей и групп.
pwck проверяет целостность файлов паролей.
pwconv конвертирует обычный файл паролей в теневой.
pwunconv конвертирует теневой файл паролей в обычный.
sg меняет GID пользователя на соответствующий указанной группе или выполняет заданную команду с правами указанной группы.
useradd создает нового пользователя или обновляет данные по умолчанию о новых пользователях.
userdel изменяет файлы, содержащие информацию о пользователях, удаляя все записи, относящиеся к указаннному регистрационному имени.
usermod изменяет файлы учетных записей пользователей, внося заданные изменения..
vipw и vigr позволяют безопасно редактировать /etc/passwd и /etc/group. С флагом -s будут редактироваться теневые версии файлов, /etc/shadow и /etc/gshadow.
libmisc.[a,so], libshadow.[a,so]
На данный момент нет описания.
libshadow предоставляет большинство функций для программ 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
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Textutils (2.1):
ftp://ftp.gnu.org/gnu/textutils/
Последняя проверка: версия 2.0.
cat, cksum, comm, csplit, cut, expand, fmt, fold, head, join, md5sum, nl, od, paste, pr, ptx, sort, split, sum, tac, tail, tr, tsort, unexpand, uniq и wc
cat выводит файлы на стандартный вывод.
cksum выводит контрольную сумму CRC и объем в байтах каждого указанного файла.
comm построчно сравнивает два отсортированных файла.
csplit выводит части файла, разделенные заданными строками, в файлы xx01, xx02, ..., и размер каждой части на стандартный вывод.
cut выводит указанные строки из указанных файлов на стандартный вывод.
expand конвертирует знаки табуляции в файле в пробелы и выводит результат на стандартный вывод.
fmt форматирует каждый абзац в указанных файлах и выводит результат на стандартный вывод.
fold делает переносы вводимых строк из указанных файлов (по умолчанию, со стандартного ввода) и выводит результат на стандартный вывод.
head выводит первые x (по умолчанию 10) строк каждого указанного файла на стандартный вывод.
join соединяет строки двух файлов в поля.
md5sum выводит или проверяет контрольные суммы MD5.
nl выводит каждый указанный файл на стандартный вывод, добавляя номера строк.
od выводит выводит файл в различных форматах, по умолчанию в восьмеричном, на стандартный вывод.
paste выводит строки, соответствующие заданным образцам из указанных файлов и разделенные символами табуляции, на стандартный вывод.
pr разделяет файлы на страницы или колонки для распечатки.
ptx составляет оглавление файла.
sort выводит на стандартный вывод построчно отсортированное слияние файлов.
split разбивает входной файл на части заданного размера PREFIXaa, PREFIXab, ...
sum выводит контрольную сумму и количество занимаемых блоков каждого указанного файла.
tac выводит каждый указанный файл на стандартный вывод last line first.
tail выводит последние xx (по умолчанию 10) строк каждого указанного файла на стандартный вывод.
tr заменяет, вставляет, и/или удаляет символы из стандартного ввода, выводя результат на стандартный вывод.
tsort выводит полностью упорядоченные списки, учитывая уже проведенную сортировку указанных файлов.
unexpand конвертирует пробелы в каждом файле в символы табуляции, выводя результат на стандартный вывод.
uniq удаляет повторяющиеся строки из отсортированного файла.
wc выводит количество строк, слов и размер в байтах кажого указанного файла и сумму результатов, если указано более одного файла.
Последняя проверка: версия 2.0.
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
Perl: perl
Sed: sed
Sh-utils: basename, echo, expr, sleep, uname
Tar: tar
Texinfo: install-info, makeinfo
Textutils: cat, tr
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Util-linux (2.11u):
ftp://ftp.win.tue.nl/pub/linux-local/utils/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 открывает tty, запрашивает регистрационное имя и запускает /bin/login.
arch выводит информацию об архитектуре машины.
blockdev позволяет вызывать ioctls блочного устройства из командной строки.
cal выводит простой календарь.
cfdisk - редактор разделов диска, основанный на библиотеке libncurses.
chkdupexe находит дублирующиеся исполняемые файлы.
col фильтрует перевернутые строки, поступающие с ввода.
colcrt фильтрует вывод nroff для предпросмотра CRT.
colrm удаляет колонки из файла.
column объединяет списки в файл из нескольких колонок.
ctrlaltdel устанавливает действие для комбинации клавиш CTRL+ALT+DEL (жесткая или мягкая перезагрузка).
cytune запрашивает и изменяет порог прерывания для драйвера Cyclades.
ddate конвертирует дату по Грегорианскому календарю в дату по календарю Discordian.
dmesg просматривает и контролирует буфер kernel ring (сообщения загрузки ядра).
elvtune позволяет настраивать the I/O elevator per block device queue basis.
fdformat выполняет низкоуровневое форматирование дискет.
fdisk - редактор дисковых разделов.
На данный момент нет описания.
fsck.minix проверяет целостность файловых систем MINIX.
getopt анализирует переданные из командной строки параметры таким же образом как и одноименная функция C.
hexdump выводит указанные файлы на стандартный вывод в указанном формате (ascii, десятичный, шестнадцатеричный, восьмеричный).
hwclock устанавливает системные часы (часы RTC или BIOS).
ipcrm удаляет указанный ресурс.
ipcs выводит информацию об устройствах IPC.
isosize выводит объем файловой системы iso9660.
line копирует одну строку (до символа новой строки) из стандартного ввода на стандартный вывод.
logger делает записи в системном журнале.
look выводит строки, начинающиеся с заданной.
losetup управляет устройствами loop.
mcookie генерирует "магические" ключи для xauth.
mkfs создает файловую систуму Linux на устройстве, обычно разделе диска.
mkfs.bfs создает файловую систему SCO bfs на устройстве, обычно разделе диска.
На данный момент нет описания.
mkfs.minix создает файловую систему Linux MINIX на устройстве, обычно разделе диска.
mkswap создает пространство подкачки на устройстве или в файле.
more - фильтр для поэкранного просмотра текста.
mount монтирует файловую систему устройства в каталог (точку монтирования).
namei переходит по заданному пути до тех пор, пока не будет найдена точка терминала.
Это примеры скриптов, использующих getopt с BASH или TCSH.
На данный момент нет описания.
pivot_root изменяет корневую файловую систему текущего процесса.
ramsize запрашивает и меняет размер RAM диска.
raw используется для привязки символьных устройств к блочным.
rdev запрашивает и устанавливает образ корневого устройства, устройства подкачки, объем RAM диска или видорежим.
readprofile выводит информацию из профиля ядра.
rename переименовывает файлы.
renice меняет приоритет запущенных процессов.
rev инвертирует строки файлов.
rootflags запрашивает и сохраняет дополнительную информацию, используемую для монтирования корневой файловой системы.
script создает скрипт терминальной сессии.
setfdprm устанавливает параметры гибких дисков.
setsid запускает программы в новой сессии.
setterm устанавливает параметры терминала.
sfdisk - редактор дисковых разделов.
swapoff деактивирует файлы и устройства подкачки.
swapon активирует файлы и устройства подкачки.
tunelp устанавливает различные параметры LP устройств.
ul читает файл и переводит символы подчеркивания в последовательность, отображающую подчеркивание на используемом терминале.
umount размонтирует смонтированную файловую систему.
vidmode запрашивает и устанавливает видеорежим.
whereis находит исполняемый файл, исходные коды и документацию для указанной команды.
write посылает сообщение другому пользователю.
Последняя проверка: версия 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
Linux From Scratch: Версия 4.0 | ||
---|---|---|
Назад | Приложение A. Описания пакетов и зависимостей | Вперед |
Groff (1.18):
ftp://ftp.gnu.org/gnu/groff/
Последняя проверка: версия 1.17.2.
addftinfo, afmtodit, eqn, geqn (ссылка на eqn), grn, grodvi, groff, grog, grolbp, grolj4, grops, grotty, gtbl (ссылка на tbl), hpftodit, indxbib, lkbib, lookbib, mmroff, neqn, nroff, pfbtops, pic, post-grohtml, pre-grohtml, refer, soelim, tbl, tfmtodit, troff и zsoelim (ссылка на soelim)
addftinfo чиатет файл шрифтов troff и добавляет некоторую дополнительную информацию о шрифтах,используемую groff.
afmtodit создает файл шрифтов, используемый groff с grops.
eqn компилирует описания выражений, включенных во файлы troff в команды, понимаемые troff.
geqn - GNU реализация eqn.
grn - препроцессор groff для файлов gremlin.
grodvi - драйвер groff, позволяющий использование формата TeX dvi.
groff - оболочка, к системе форматирования документов groff. Обычно, выполняется troff и постпроцессор, соответствующий выбранному устройству.
grog читает файлы и определяет, какие опции groff (-e, -man, -me, -mm, -ms, -p, -s, и -t) необходимы для их вывода, а также выводит команду groffс этими опциями на стандартный вывод.
grolbp - драйвер groff driver для принтеров Canon CAPSL (лазерные принтеры серий LBP-4 и LBP-8).
grolj4 - драйвер groff, позволяющий вывод в формате PCL5 на принтерах HP Laserjet 4.
grops конвертирует вывод GNU troff в Postscript.
grotty конвертирует вывод GNU troff в формат, воспринимаемый устройствами вроде typewriter.
gtbl - GNU реализация tbl.
hpftodit создает файл шрифта для использования groff -Tlj4 из файла метрик шрифта, размеченного HP.
indxbib создает обратное оглавление для библиографических баз данных из указанного файла, для использования refer, lookbib и lkbib.
lkbib ищет в библиографических базах данных ссылки, содержащие указанные образцы, и выводит найденное на стандартный вывод.
lookbib выводит предупреждение о стандартной ошибке (если стандартный вывод - не терминал), читает со стандартного ввода строку, содержащую набор ключевых слов, ищет в библиографических базах данных в укзанном файле ссылки с этими ключевыми словами, выводит найденное на стандартный вывод и повторяет процесс до окончания ввода.
mmroff - простой препроцессор groff.
Скрипт neqn форматирует выражения для вывода в формате ascii.
Скрипт nroff эмулирует nroff через groff.
pfbtops конвертирует шрифт Postscript в формате .pfb в ASCII.
pic компилирует описания изображений, включенных во входные файлы troff или TeX, в команды, воспринимаемые TeX или troff.
pre- и post-grohtml конвертируют вывод GNU troff в html.
refer копирует содержимое файла на стандартный вывод, исключая строки между .[ and .], которые интерпретируются как цитаты, и строки между .R1 и .R2, которые интерпретируются как команды обработки цитат.
soelim читает файлы и заменяет строки вида .so file содержимым file.
tbl компилирует описания таблиц, включенных во входные файлы troff, в команды, воспринимаемые troff.
tfmtodit создает файл шрифтов для использования groff -Tdvi.
troff хорошо совместим с Unix-версией troff. Обычно должен быть вызван командой groff, которая также запустит пре- и постпроцессоры в соответствующем порядке и с соответствующими опциями.
zsoelim - GNU реализация soelim.
Последняя проверка: версия 1.17.2.
Bash: sh
Binutils: ar, as, ld, ranlib
Bison: bison
Diffutils: cmp
Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm, touch
Gcc: cc1, cc1plus, collect2, cpp0, g++, gcc
Grep: egrep, grep
Make: make
Gawk: awk
Sed: sed
Sh-utils: basename, date, echo, expr, hostname, uname
Textutils: cat, tr