Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Компиляция базовых компонентов системы



Вы должны находиться в каталоге /usr/src:

# cd /usr/src

(если, конечно, ваш исходный код не находится в другом месте, в случае чего вам нужно перейти в соответствующий каталог).

Для полного перестроения системы используется команда make(1). Эта команда читает инструкции из файла Makefile, описывающего, как должны быть перестроены программы, которые составляют систему FreeBSD, в каком порядке они должны быть построены и так далее.

Общий формат командной строки, которую вы будет набирать, таков:

# make - x -D VARIABLE target

В этом примере - x является параметром, который вы передаете в make(1). Обратитесь к справочной странице программы make(1), которая содержит список возможных параметров.

-D VARIABLE передает переменную в Makefile. Поведение Makefile определяется этими переменными. Это те же самые переменные, которые задаются в /etc/make.conf, и это — еще один способ их задания.

# make -DNO_PROFILE=true target

является другим способом указания того, что библиотеки для профилирования строить не нужно, и соответствует строке

NO_PROFILE= true # Обход построения библиотек для профилирования

в файле /etc/make.conf.

target указывает программе make(1) на то, что вы хотите сделать. Каждый файл Makefile определяет некоторое количество различных ''целей'', и ваш выбор цели определяет то, что будет делаться.

Некоторые цели, перечисленные в файле Makefile, не предназначены для вызова. Просто они используются в процессе построения для разбиения его на этапы.

В большинстве случаев вам не нужно передавать никаких параметров в make(1), так что ваша команда будет выглядеть примерно так:

# make target

Замените target на одну или более из опций сборки. Первой из них всегда должна быть опция buildworld.

Как указывают на это названия, buildworld строит полностью новое дерево в каталоге /usr/obj, а installworld устанавливает это дерево на используемой машине.

Разделение этих опций весьма полезно по двум причинам. Во-первых, это позволяет вам безопасно строить систему, зная, что компоненты вашей рабочей системы затронуты не будут. Построение ''самодостаточно''. По этой причине вы можете спокойно запустить buildworld на машине, работающей в многопользовательском режиме без опаски получить какие-либо проблемы. Но всё же рекомендуется запускать цель installworld в однопользовательском режиме.

Во-вторых, это позволяет вам использовать монтирование по NFS для обновления многих машин в сети. Если у вас есть три машины, A, B и C, которые вы хотите обновить, запустите make buildworld и make installworld на машине A. Хосты B и C должны будут затем смонтировать по NFS каталоги /usr/src и /usr/obj с машины A, и вы сможете запустить make installworld для установки результатов построения на машинах B и C.

Хотя цель world всё ещё имеется в наличии, вам настоятельно рекомендуется не пользоваться ею.

Выполните

# make buildworld

Имеется возможность задавать команде make параметр -j, который приводит к запуску нескольких одновременно работающих процессов. Наиболее полезно использовать это на многопроцессорных машинах. Однако, так как процесс компиляции больше всего требователен к подсистеме ввода/вывода, а не к производительности процессора, это можно использовать и на машинах с одним процессором.

На типичной машине с одним CPU вы должны запускать:

# make -j4 buildworld

make(1) будет иметь до 4 одновременно работающих процессов. Эмпирические замеры, опубликованные как-то в списке рассылки, показывают, что в среднем это дает наибольшее увеличение производительности.

Если у вас многопроцессорная машина и вы используете ядро с настройками для SMP, попробуйте использовать значения между 6 и 10 и посмотрите, как это отразится на скорости работы.





Дата публикования: 2015-01-10; Прочитано: 231 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...