Современная электронная библиотека ModernLib.Net

Linux From Scratch

ModernLib.Net / Интернет / Beekmans Gerard / Linux From Scratch - Чтение (стр. 6)
Автор: Beekmans Gerard
Жанр: Интернет

 

 


      Данный патч также устраняет некоторые другие ошибки, например, «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).
      Содержимое 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
      catchsegv может быть использования для слежения за состоянием стека, когда выполнение программы прерывается из-за ошибки распределения памяти.
      gencat
      gencat генерирует каталоги сообщений.
      getconf
      getconf отображает значения переменных, зависящих от системной конфигурации.
      getent
      getent позволяет получить записи административной базы данных.
      glibcbug
      glibcbug создает сообщение об ошибке в glibc и отправляет по указанному адресу сообщения об ошибках.
      iconv
      iconv осуществляет преобразование наборов символов.
      iconvconfig
      iconvconfig создает конфигурационные файлы для модулей iconv.
      ldconfig
      ldconfig настраивает привязки времени исполнения динамического линкера.
      ldd
      ldd выводит список разделяемых библиотек, необходимых заданным программам.
      lddlibc4
      lddlibc4 используется ldd при работе с объектными файлами.
      locale
      locale – скрипт на Perl, разрешающий (или запрещающий) компилятору использование локалей POSIX для встроенных операций.
      localedef
      localedef компилирует спецификации локалей.
      mtrace
      mtrace выводит путь multicast от источника к получателю (запрос IP trace).
      nscd
      nscd – демон, предоставляющий кэш для большинства запросов DNS.
      nscd_nischeck
      nscd_nischeck проверяет нужен или нет защищенный режим для запроса NIS+.
      pcprofiledump
      pcprofiledump выводит информацию, полученной из профиля PC.
      pt_chown
      pt_chown устанавливает владельца, группу и права доступа подчиненного псевдотерминала в соответствии с основным псевдотерминалом, переданном в описании `3'. Это вспомогательная программа для функции `grantpt'. Не предназначается для прямого запуска из командной строки.
      rpcgen
      rpcgen генерирует код C для реализации протокола RPC.
      rpcinfo
      rpcinfo делает запрос RPC к серверу.
      sln
      sln символически связывает dest и source. Программа собрана статически. Использование sln полезно для создания символических ссылок на динамические библиотеки, если система динамического связывания по какой-то причине нефункциональна.
      sprof
      sprof выводит информацию о разделяемом объекте.
      tzselect
      tzselect получает от пользователя информацию от его местоположении и выводит на стандартный вывод значение текущей временной зоны.
      xtrace
      xtrace отслеживает исполнение программы, выводя исполняемые в данный момент функции.
      zdump
      zdump – сохраняет значение временной зоны.
      zic
      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
      ld.so – вспомогательная программа для исполняемых файлов разделяемых библиотек.
      libBrokenLocale, libBrokenLocale_p
      Используется многими программами, например Mozilla, для использования поврежденных локалей.
      libSegFault
      libSegFault управляет сигналами ошибок распределения памяти, также пытается их перехватить.
      libanl, libanl_p
      libanl – библиотека асинхронных запросов DNS.
      libbsd-compat
      libbsd-compat предоставляет переносимость, необходимую для запуска некоторых программ в Linux.
      libc, libc_nonshared, libc_p
      Эти файлы образуют основную библиотеку C. Библиотека C – набор часто используемых в программах функций. Таким образом, программисту не нужно писать свои функции для каждой задачи. Большинство стандартных операций вроде вывода строки на экран уже готовы к использованию.
      Библиотека C (в общем случае, любая библиотека) существует как в динамическом, так и статическом виде. Вкратце, когда программа использует статическую библиотеку, код из библиотеки копируется в исполняемый файл. При использовании динамической библиотеки, код из библиотеки не добавляется в исполняемый файл, а загружается только во время исполнения программы. Это позволяет уменьшить размер программ. За подробностями обращайтесь к документации библиотеки C.
      libcrypt, libcrypt_p
      libcrypt – криптографическая библиотека.
      libdl, libdl_p
      libdl – библиотека интерфейсов динамической линковки.
      libg
      libg – библиотека времени исполнения g++.
      libieee
      libieee – IEEE библиотека операций с числами с плавающей запятой.
      libm, libm_p
      libm – математическая библиотека.
      libmcheck
      libmcheck – содержит код, выполняемый при загрузке.
      libmemusage
      libmemusage – используется memusage для сбора информации о памяти, используемой программой.
      libnsl, libnsl_p
      libnsl – библиотека сетевых сервисов.
      libnss_compat, libnss_dns, libnss_files, libnss_hesiod, libnss_nis, libnss_nisplus
      Основная идея – поместить реализацию различных сервисов доступа к базам данных в отдельные модули. Преимущества:
      поставщики могут добавлять новые сервисы, не включая их в C библиотеку GNU,
      модули могут быть независимо обновлены,
      Библиотека C имеет меньший размер.
      libpcprofile
      Код, используемый ядром для отслеживания времени, затрачиваемого процессором на исполнение функций, отдельных строк кода и инструкций.
      libpthread, libpthread_p
      POSIX библиотека потоков.
      libresolv, libresolv_p
      Библиотека позволяет DNS-серверам создавать, посылать и интерпретировать пакеты.
      librpcsvc, librpcsvc_p
      Библиотека предоставляет различные сервисы RPC.
      librt, librt_p
      Библиотека предоставляет большинство интерфейсов, описанных POSIX.1b Realtime Extension.
      libthread_db
      Библиотека полезна для создания отладчиков для многопотоковых приложений.
      libutil, libutil_p
      Содержит код «стандартных» функций, используемых многими утилитами Unix.
      Зависимости Glibc
      Последняя проверка: версия 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
      Установка GCC-3.2
      Приблизительное время компиляции: 13.26 SBU Необходимое дисковое пространство: 221 MB
 
      Инсталляция GCC
      Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.
      Этот пакет известен своим нестабильным поведением при компиляции с измененными опциями оптимизации (включая опции -march и -mcpu). GCC рекомендуется компилировать с настройками по умолчанию. Следовательно, если вы задали переменные такие как CFLAGS или CXXFLAGS, изменяющие уровень оптимизации по умолчанию, рекомендуется убрать их при сборке пакета GCC. Изменяя оптимизации для GCC, вы действуете на свой страх и риск.
      Для инсталляции GCC выполните приведенные ниже команды, собирающие компиляторы языка Си и С++. Также можно установить компиляторы других языков программирования из пакета GCC. В случае, если вы хотите инсталлировать все компиляторы из пакета GCC, уберите опцию –enable-languages=c,c++ из команды configure. Для получения информации о доступных компиляторах, см документацию пакета GCC.
      Примечание: инсталляция других компиляторов не тестировалась разработчиками проекта LFS.
       patch -Np1 -i ../gcc-3.2.patch && mkdir ../gcc-build && cd ../gcc-build && ../gcc-3.2/configure –prefix=/usr –enable-shared \ –enable-languages=c,c++ –enable-threads=posix \ –with-slibdir=/lib –enable-__cxa_atexit \ –enable-clocale=gnu && make bootstrap && make install && ln -s ../usr/bin/cpp /lib && ln -s ../bin/cpp /usr/lib && ln -s gcc /usr/bin/cc
 
      Пояснение команд
       –enable-threads=posix:Эта опция включает обработку исключений в многопоточном коде на С++.
       –enable-__cxa_atexit:Эта опция позволит использовать shared-библиотеки C++ и программы, написанные на C++, с другими дистрибутивами Linux.
       –enable-clocale=gnu:Существует опасность, что у некоторых пользователей будут компилироваться ABI-несовместимые библиотеки С++, если glibc localedata не установлен полностью. Использование опции –enable-clocale=gnu гарантирует корректную компиляцию во всех случаях. Если вы не хотите использовать эту опцию, удостоверьтесь, что по крайней мере, устанавливается локаль de_DE. Когда GCC находит эту конкретную локаль, выполняется верный режим локали ( gnu).
      Содержимое GCC
      Последняя проверка: версия 3.1.
      Программы
      c++, c++filt, cc (link to gcc), cc1, cc1plus, collect2, cpp, cpp0, g++, gcc, gccbug, gcov и tradcpp0
      Описания
      cc, cc1, cc1plus, gcc
      Компилятор C. Компилятор переводит код из текстового формата в формат, понятный компьютеру. После того, как исходный код скомпилирован в объектный файл, линкер создаст исполняемый файл из одного или нескольких объектных.
      c++, cc1plus, g++
      Компилятор C++, эквивалент cc, gcc etc.
      c++filt
      Язык C++ позволяет осуществлять перезагрузку функций, делая возможным написание многих функций с одним именем (с разным набором параметром). Все имена функций C++ закодированы в низкоуровневые метки ассемблера (этот процесс известен как mangling). c++filt совершает обратное действие: низкоуровневые имена переводятся (demangling) в имена, понятные пользователю, так что линкер избегает конфликта между перезагруженными функциями.
      collect2
      collect2 помогает в компиляции конструкторов.
      cpp, cpp0
      cpp осуществляет препроцессинг исходных файлов, например включает в них содержимое заголовочных файлов. Просто добавьте в ваш исходный файл строку вроде #include <filename>. Препроцессор вставит содержимое заголовочного файла.
      gccbug
      gccbug – скрипт, облегчающий создание сообщений об ошибках.
      gcov
      gcov анализирует программы, чтобы помочь в создании более эффективного и быстрого кода путем его оптимизации.
      tradcpp0
      На данный момент описания нет.
      Библиотеки
      libgcc.a, libgcc_eh.a, libgcc_s.so, libiberty.a, libstdc++.[a,so], libsupc++.a
      Описания
      libgcc, libgcc_eh, libgcc_s
      Файлы поддержки gcc времени исполнения.
      libiberty
      libiberty – коллекция подпрограмм, используемых различными программами GNU, включая getopt, obstack, strerror, strtol и strtoul.
      libstdc++
      libstdc++ – библиотека C++. Она используется программами на C++ и содержит часто используемые функции. Таким образом, программисту не нужно писать стандартные функции (например, вывод строки текста на экран) с нуля при каждом создании программы.
      libsupc++
      libsupc++ предоставляет поддержку языка программирования C++. Помимо прочего, libsupc++ содержит функции для обработки исключений.
      Зависимости GCC
      Последняя проверка: версия 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

Установка Zlib-1.1.4

      Приблизительное время компиляции: 0.07 SBU Необходимое дисковое пространство: 1 MB
 
      Инсталляция Zlib
      Для инсталляции Zlib выполните:
       ./configure –prefix=/usr –shared && make LIBS="libz.so.1.1.4 libz.a" && make LIBS="libz.so.1.1.4 libz.a" install && mv /usr/lib/libz.so.* /lib && ln -sf ../../lib/libz.so.1 /usr/lib/libz.so && cp zlib.3 /usr/share/man/man3
 
      Содержимое Zlib
      Последняя проверка: версия 1.1.4.
      Библиотеки
      libz[a,so]
      Описания
      libz
      Библиотека zlib, используемая многими программами, и реализующая методы (де)компрессии данных.
      Зависимости Zlib
      Зависимости еще не проверялись.

Установка Findutils-4.1

      Приблизительное время компиляции: 0.10 SBU Необходимое место на диске: 3 MB
 
      Инсталляция Findutils
      Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.
      Для инсталляции Findutils выполните:
       patch -Np1 -i ../findutils-4.1.patch && ./configure –prefix=/usr && make libexecdir=/usr/bin && make libexecdir=/usr/bin install
 
      Замечания по соответствию FHS
      По умолчанию, база данных updatedb находится /usr/var. Если вы хотите полного соответствия со стандартом FHS, установите ее в другом месте. Приведенные ниже команды используют совместимый с FHS файл базы данных /var/lib/misc/locatedb.
       patch -Np1 -i ../findutils-4.1.patch && ./configure –prefix=/usr && make localstatedir=/var/lib/misc libexecdir=/usr/bin && make localstatedir=/var/lib/misc libexecdir=/usr/bin install
 
      Пояснения команд
       patch -Np1 -i ../findutils-4.1.patch: Этот патч исправляет некоторые ошибки при компиляции, избегая конфликта переменных и поправляя синтаксис.
      Содержимое Findutils
      Последняя проверка: версия 4.1.
      Программы
      bigram, code, find, frcode, locate, updatedb и xargs
      Описания
      bigram
      bigram используется вместе с code для создания поисковых баз старого типа. Больше информации об этих программах приведено на locatedb.5 man page.
      code
      code – предшественник frcode. Он использовался в старых поисковых базах.
      find
      find ищет файлы, отвечающие заданному критерию. Если критерий не задан, выводится список файлов в текущем каталоге и каталогах нижнего уровня.
      frcode
      frcode вызывается updatedb для сжатия списка файлов, используя front-compression и уменьшая размер базы данных в 4-5 раз.
      locate
      locate просматривает базу данных, содержащую сведения обо всех файлах и каталогах на файловой системе. Программа выводит имена файлов и каталогов в базе, совпадающие с заданным критерием. Если пользователь ищет файлы, программа просмотрит базу и сообщит, где находятся запрошенные файлы. Поиск даст результаты, только если база часто обновляется, иначе будет выдана устаревшая информация.
      updatedb
      updatedb обновляет поисковую базу. Просматривается вся файловая система (включая все смонтированные, если не указано обратное), каждый найденный файл и каталог записывается в базу, используемую locate. Неплохо обновлять базу хотя бы раз в день, чтобы избежать ее устаревания.
      xargs
      xargs выполняет команду относительно списка файлов. Список должен содержать одно имя в строке.
      Зависимости Findutils
      Последняя проверка: версия 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

Установка Gawk-3.1.1

      Приблизительное время компиляции: 0.39 SBU Необходимое дисковое пространство: 15 MB
 
      Инсталляция Gawk
      Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.
      Предупреждение: Ни в коем случае не выполняйте команду 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 && ./configure –prefix=/usr –libexecdir=/usr/bin && make && make install
 
      Пояснение команд
       patch -Np1 -i ../gawk-3.1.1-2.patch:Этот патч изменяет определение местоположения директории libexec. Он позволит нам переопределить ее с помощью опции –libexecdirк скрипту configure.
      Содержимое Gawk
      Последняя проверка: версия 3.1.1.
      Программы
      awk, gawk, gawk-3.1.1, grcat, igawk, pgawk, pgawk-3.1.1, pwcat
      Описания
      awk
      awk – символьная ссылка на gawk.
      gawk, gawk-3.1.1
      gawk – GNU реализация awk, языка поиска и обработки текстовых образцов.
      grcat
      grcat выполняет слияние базы групп, /etc/group.
      igawk
      igawk – скрипт, дающий gawk возможность включения файлов.
      pgawk, pgawk-3.1.1
      pgawk – профильная версия gawk.
      pwcat
      pwcat выполняет слияние базы паролей, /etc/passwd.
      Зависимости Gawk
      Последняя проверка: версия 3.1.0.
      (Зависимости пока не проверены)

Установка Ncurses-5.2

      Приблизительное время компиляции: 1.88 SBU Необходимое дисковое пространство: 22 MB
 
      Инсталляция Ncurses
      Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.
      Для инсталляции Ncurses выполните:
       patch -Np1 -i ../ncurses-5.2-2.patch && ./configure –prefix=/usr –with-shared && make && make install && chmod 755 /usr/lib/*.5.2 && mv /usr/lib/libncurses.so.5* /lib && ln -s libncurses.a /usr/lib/libcurses.a && ln -sf ../../lib/libncurses.so.5 /usr/lib/libncurses.so && ln -sf ../../lib/libncurses.so.5 /usr/lib/libcurses.so
 
      Пояснения команд
       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. Создание этой символической ссылки устраняет проблему.
      Содержимое Ncurses
      Последняя проверка: версия 5.2.
      Программы
      captoinfo (ссылка на tic), clear, infocmp, infotocap (ссылка на tic), reset (ссылка на tset), tack, tic, toe, tput и tset.
      Описания
      captoinfo
      captoinfo конвертирует описания termcap в описания terminfo.
      clear
      clear очищает экран, если это возможно. Тип терминала ищется в переменных окружения и базе terminfo, процедура очистки экрана зависит от найденного типа.
      infocmp
      infocmp используется для сравнения бинарной записи terminfo с другими записями, перезаписать описание terminfo, использовать поле terminfo use=, или вывести описание terminfo из бинарного файла (term) в различных форматах (противоположность тому. что делает tic).
      infotocap
      infotocap конвертирует описания terminfo в описания termcap.
      reset
      reset устанавливает режимы cooked и echo, отключает режимы cbreak и raw, включает трансляцию символов новой строки и сбрасывает все неустановленные специальные символы на значения по умолчанию перед инициализацией терминала вроде tset.
      tack
      tack – проверяет действия terminfo.
      tic
      tic – компилятор описаний записей terminfo. Программа транслирует файл terminfo из исходного в бинарный формат для использования библиотекой ncurses. Файлы terminfo содержат информацию о возможностях терминала.
      toe
      toe перечисляет все доступные типы терминалов по основному имени вместе с описаниями.
      tput
      tput использует базу terminfo, чтобы сделать информацию о терминале доступной командному интерпретатору, инициализировать или сбросить терминал, либо вернуть полное имя запрошенного типа терминала.
      tset
      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
      libcurses, libncurses++, libncurses, libncurses_g
      Это – основные библиотеки пакета, используются для отображения текста на экране (зачастую нестандартным способом). Пример использования ncurses – процедура «make menuconfig» сборки ядра.
      libform, libform_g
      libform используется для реализации форм в ncurses.
      libmenu, libmenu_g
      libmenu используется для реализации меню в ncurses.
      libpanel, libpanel_g
      libpanel используется для реализации панелей в ncurses.
      Зависимости 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

Установка Vim-6.1

      Приблизительное время компиляции: 0.81 SBU Необходимое дисковое пространство: 24 MB
 
      Инсталляция Vim
      Перед установкой пакета примените патч. Удостоверьтесь, что патч и пакет распакованы перед инсталляцией.
      Если вам не по душе Vim, см. инструкции по инсталляции других редакторов http://beyond.linuxfromscratch.org/view/cvs/postlfs/editors.html. На данный момент есть инструкции для редакторов Emacs, nano, и joe.
      Для установки Vim выполните:
       patch -Np1 -i ../vim-6.1.patch && ./configure –prefix=/usr && make CPPFLAGS=-DSYS_VIMRC_FILE=\\\"/etc/vimrc\\\" && make install && ln -s vim /usr/bin/vi
 
      Если вы планируете установить систему 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 – более логичное место для этого файла.
      Содержимое Vim
      Последняя проверка: версия 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
      efm_filter.pl – фильтр, читающий из стандартного ввода, пишущий на стандартный вывод и создающий файл ошибок, обрабатываемый vim.
      efm_perl.pl
      efm_perl.pl форматирует сообщения об ошибках интерпретатора Perl для использования в quickfix режиме vim.
      ex
      ex запускает vim в режиме Ex.
      less.sh
      less.sh – скрипт, запускающий vim, используя less.vim.
      mve.awk
      mve.awk обрабатывает ошибки vim.
      pltags.pl
      pltags.pl создает файл тегов кода Perl для использования vim.
      ref
      ref проверяет написание параметров.
      rview
      rview – ограниченная версия view. Нельзя передавать команды интерпретатору и vim не может быть приостановлен.
      rvim
      rvim is the restricted version of vim. Нельзя передавать команды интерпретатору и vim не может быть приостановлен.
      shtags.pl
      shtags.pl генерирует файл тегов для скриптов perl.
      tcltags
      tcltags генерирует файл тегов кода TCL.
      vi
      vi запускает vim в режиме совместимости с vi.
      view
      view запускает vim в режиме «только для чтения».
      vim
      vim запускает vim в стандартном режиме.
      vim132
      vim132 запускает vim в терминале в 132 колонки.
      vim2html.pl
      vim2html.pl конвертирует документацию vim в HTML.
      vimdiff
      vimdiff сравнивает две или три версии файла и показывает различия.
      vimm
      vimm включает модель ввода DEC locator на удаленном терминале.
      vimspell.sh
      vimspell.sh просматривает файл и генерирует синтаксические выражения, выделяемые в vim.
      vimtutor
      vimtutor запускает обучение работе с Vim.
      xxd
      xxd конвертирует бинарный ввод из файла в шестнадцатеричный и обратно.
      Зависимости Vim
      Последняя проверка: версия 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

Установка Bison-1.35

      Приблизительное время компиляции: 0.27 SBU Необходимое дисковое пространство: 6 MB
 
      Инсталляция Bison
      Для инсталляции Bison выполните:
       ./configure –prefix=/usr && make && make install
 
      Некоторые программы не знают о существовании 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 chmod 755 /usr/bin/yacc
 
      Содержимое Bison
      Последняя проверка: версия 1.35.
      Программы
      bison и yacc
      Описания
      bison
      bison – генератор анализаторов синтаксиса (parser) выражений (заменяет yacc – Yet Another Compiler Compiler). Что же делает bison? Это программа, генерирующая программу, анализирующую структуру текстового файла. Вместо написания собственной программы пользователь указывает, как соотносятся объекты, и основываясь на данных правилах, создается анализатор. Существует множество примеров анализа синтаксиса, например калькулятор.
      Дано выражение:
      1 + 2 * 3
      Человек легко получит результат 7. Почему? Because of the structure. Наш мозг знает, как интерпретировать выражение. Компьютер этого не знает, и bison инструмент, представляющий выражение компьютеру в следующем виде:

  • Страницы:
    1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15