Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Gentoo_x86_Handbook.doc
Скачиваний:
25
Добавлен:
19.09.2019
Размер:
924.16 Кб
Скачать

3. Возможности Portage

3.A. Возможности Portage

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

Чтобы включить или отключить возможности Portage, вам нужно отредактировать переменную FEATURES в /etc/make.conf, которая содержит различные ключевые слова возможностей, разделенные пробелами. В некоторых случаях вам потребуется также установить дополнительные программы, на которых основана возможность.

Не все возможности, которые поддерживает Portage, описаны здесь. Для полного обзора откройте man-страницу make.conf.

Код 1.1: Открываем man-страницу make.conf

$ man make.conf

Чтобы найти, какие возможности находятся в наборе по умолчанию, запустите emerge --info, и поищите переменную FEATURE, либо найдите ее командой grep:

Код 1.2: Найдем, какие возможности уже установлены

$ emerge --info | grep FEATURES

3.B. Распределенная компиляция

Используем distcc

distcc это программа для распределенной компиляции между несколькими, не обязательно одинаковыми машинами в сети. Клиенты distcc посылают всю необходимую информацию существующим серверам distcc (на которых работает distccd), так что они могут компилировать кусочки исходного кода для клиента. В результате мы получаем более быстрое время компиляции.

Вы можете найти более подробную информацию о distcc (и как с ней работать в Gentoo) в нашей документации (http://www.gentoo.org/doc/en/distcc.xml?style=printable)

Установка distcc

Distcc имеет графический монитор, чтобы просматривать задания, который ваш компьютер посылает для компиляции. Если вы используете Gnome, то поместите 'gnome' в вашу переменную USE. Однако, если вы не используете Gnome, но все равно хотите иметь монитор, тогда вы должны поместить 'gtk' вашу переменную USE.

Код 2.1: Устанавливаем distcc

# emerge distcc

Активируем поддержку Portage

Добавьте distcc к переменной FEATURES в /etc/make.conf. Затем, отредактируйте переменную MAKEOPTS так, как вам нравится. Чаще всего нужно занести туда «-jX», где X — количество процессоров, на которых запущена distccd (включая текущий хост) плюс один, но вы можете получить более хорошие результаты с другими числами.

Теперь запустите distcc-config, и введите список существующих серверов distcc. Для простого примера мы предположим, что существующие сервера distcc это 192.168.1.102 (текущий хост), 192.168.1.103, и 192.168.1.104 (два других хоста):

Код 2.2: Конфигурируем distcc для использования трех серверов distcc

# distcc-config --set-hosts "192.168.1.102 192.168.1.103 192.168.1.104"

Не забудьте также запустить демон distccd:

Код 2.3: Запускаем демоны distccd

# rc-update add distccd default

# /etc/init.d/distccd start

3.C. Кеширование компиляции

О ccache

ccache это быстрый кеш компилятора. Когда вы компилируете программу, она будет кешировать промежуточные результаты, так что когда вы будете перекомпилировать ту же самую программу, время компиляции будет сильно уменьшено. Первый раз, когда вы запустите ccache, компиляция будет гораздо медленнее, чем обычная компиляция. Последующие перекомпиляции должны быть быстрее. ccache полезна только если вы перекомпилируете одно и тоже приложение много раз, поэтому эта программа будет полезна, скорее всего, только для разработчиков приложений.

Если вы заинтересованы в работе ccache, посетите домашнюю страницу ccache (http://ccache.samba.org/)

Предупреждение: Известно, что ccache вызывает некоторые ошибки компиляции. Иногда она оставляет ненужные, или испорченные файлы, что может привести к пакетам, которые не могут быть установлены. Если это случится (если вы получите ошибки типа «File not recognized. File truncayed»), попробуйте перекомпилировать приложение с отключенным ccache (FEATURES="-ccache" в /etc/make.conf) прежде чем писать о баге. Если вы не делаете какую-то разработку, не включайте ccache.

Устанавливаем ccache

Чтобы установить ccache, запустите emerge ccache:

Код 3.1: Устанавливаем ccache

# emerge ccache

Активируем поддержку Portage

Откройте /etc/make.conf и добавьте ccache к переменной FEATURES. Затем добавьте новую переменную, названную CCACHE_SIZE и установите ее в «2G»:

Код 3.2: Редактируем CCACHE_SIZE в /etc/make.conf

CCACHE_SIZE="2G"

Чтобы проверить, работает ли ccache, попросите ccache дать вам статистику. Так как Portage использует другую домашнюю директорию ccache, вам нужно будет установить также переменную CCACHE_DIR:

Код 3.3: Смотрим статистику ccache

# CCACHE_DIR="/var/tmp/ccache" ccache -s

/var/tmp/ccache это домашняя директория по умолчанию для ccache, которую устанавливает Portage. Если вы хотите изменить эту настройку, вы можете установить переменную CCACHE_DIR в /etc/make.conf.

Однако, если вы запустите ccache, программа будет использовать положение по умолчанию, ${HOME}/.ccache, поэтому вам и нужно устанавливать переменную CCACHE_DIR, когда вы просите статистику ccache для Portage.

Используем ccache для компилирования без Portage

Если вы хотите использовать ccache для компиляции без использования Portage, добавьте /usr/lib/ccache/bin к началу вашей переменной PATH (перед /usr/bin). Это может быть выполнено редактированием .bash_profile в домашней директории вашего пользователя. Использование .bash_profile это один из способов определить переменные PATH.

Код 3.4: Редактируем .bash_profile

PATH="/usr/lib/ccache/bin:/opt/bin:${PATH}"

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]