Gentoo Linux сборник статей



Pdf просмотр
страница26/79
Дата14.11.2016
Размер5.55 Mb.
Просмотров11716
Скачиваний1
1   ...   22   23   24   25   26   27   28   29   ...   79
Примечание: Эта команда обновляет переменные только в текущем терминале, в новых консолях и их потомках. То есть, если вы работаете в X11, потребуется или набирать source /etc/profile в каждом открываемом терминале, или перезапустить X, чтобы все новые терминалы обращались к новым переменным.
Если вы используете диспетчер входа в систему, станьте пользователем с правами root и наберите /etc/init.d/xdm restart. Если нет, вам придется выйти и снова войти в систему, чтобы X порождала потомков, использующих новые значения переменных.
5.c. Локальное определение переменных
Пользовательские переменные
Далеко не всегда нужно определять переменные глобально. Например, вам может понадобиться добавить /home/my_user/bin и текущий рабочий каталог (где вы находитесь) к переменной PATH, но при этом не нужно, чтобы это добавление появилось и в переменной PATH у всех остальных пользователей. Если вы хотите определить переменную среды локально, используйте
/.bashrc
или

/.bash_profile
:
Листинг 6: Расширение PATH в
/.bashrc для локальных нужд
(двоеточие без последующего указания каталога означает текущий рабочий каталог)
PATH="${PATH}:/home/my_user/bin:
"
Обновление вашей переменной PATH произойдет, когда вы выйдете и снова войдете в систему.
Сеансовые переменные
Иногда нужны еще более жесткие ограничения. Вам может потребоваться возможность запуска исполняемых файлов из специально созданного временного каталога без указания полного пути к ним, и без изменения файла
/.bashrc
ради нескольких минут.
В этом случае можно просто определить переменную PATH для текущего сеанса
269

Настольная книга Gentoo Linux x86
командой export. Переменной будет присвоено временное значение до тех пор, пока вы не завершите сеанс.
Листинг 7: Определение сеансовой переменной среды
# export PATH="${PATH}:/home/my_user/tmp/usr/bin"
270

Настольная книга Gentoo Linux x86
C. Работа с Portage
1. Файлы и каталоги
1.a. Файлы Portage
Директивы настройки
Настройки Portage по умолчанию хранятся в /etc/make.globals. Когда вы откроете этот файл, вы увидите, что все настройки представляют собой переменные. Что означает каждая из переменных, описано ниже.
Так как многие директивы отличаются в зависимости от используемой архитектуры, к Portage прилагаются настройки по умолчанию, которые входят в ваш профиль. На ваш профиль указывает символическая ссылка /etc/make.profile.
Настройка Portage выполняется c помощью файлов make.defaults вашего профиля и всех родительских профилей. Более подробно о профилях и каталоге /
etc/make.profile мы расскажем позже.
Если вы планируете вносить изменения в конфигурационные переменные, не изменяйте /etc/make.globals или make.defaults. Вместо этого пользуйтесь файлом /
etc/make.conf, который имеет приоритет перед вышеуказанными файлами. Вы также обнаружите файл /etc/make.conf.example. Как понятно из его названия, это просто пример — Portage не использует этот файл.
Переменные Portage также можно устанавливать как переменные среды, но мы не рекомендуем этого делать.
Конфигурация, определяемая профилем
Мы уже встречались с каталогом /etc/make.profile. На самом деле это не каталог, а символическая ссылка на профиль, по умолчанию на тот, что содержится в /usr/
portage/profiles, однако вы можете создавать свои собственные профили где угодно и ссылаться на них. Профиль, указанный ссылкой, является профилем, к которому принадлежит ваша система.
В профиле содержатся сведения для Portage, специфичные для архитектуры, такие как список пакетов, принадлежащих соответствующей системе, список неработоспособных (или замаскированных) пакетов, и т.д.
Конфигурация, задаваемая пользователем
Если вам необходимо изменить поведение Portage относительно установки программного обеспечения, вам потребуется отредактировать файлы,
271

Настольная книга Gentoo Linux x86
находящиеся в /etc/portage. Мы настоятельно рекомендуем вам пользоваться файлами из /etc/portage, всеми силами отговариваем от настройки поведения
Portage через переменные среды!
Внутри /etc/portage вы можете создать следующие файлы:

package.mask, в котором перечислены пакеты, которые Portage никогда не следует устанавливать;

package.unmask, со списком пакетов, для которых вы хотите иметь возможность установки, даже если разработчики Gentoo отговаривают вас от этого;

package.keywords, где перечислены пакеты, которые должны быть доступны для установки, несмотря на то, что они не подходят для вашей системы или архитектуры (пока);

package.use, где перечислены значения USE-флагов, которые необходимо указывать для конкретных пакетов, а не для всей системы.
Дополнительные сведения о каталоге /etc/portage, а также список всех файлов, которые там можно создавать, находятся на справочной странице Portage:
Листинг 1: Вызов справки по Portage
$ man portage
Изменение файлов Portage и размещения каталогов
Ранее упомянутые конфигурационные файлы нельзя хранить где угодно —
Portage всегда ищет свои настроечные файлы в строго определенных местах.
Однако Portage также использует множество каталогов для других целей: каталог для сборки, место для хранения исходных кодов, место для дерева Portage, и т.д.
Для этих целей существуют хорошо известные каталоги по умолчанию, положение которых можно изменить на свой вкус, внеся изменения в
/etc/make.conf. Оставшаяся часть этой главы посвящена описанию того, какие специальные места Portage использует для своих целей, и как изменить их расположение в файловой системе.
Этот документ не претендует на статус справочника. Если вам необходим полный объем информации, пожалуйста, обратитесь к страницам справки по Portage и make.conf:
Листинг 2: Вызов справки по Portage и make.conf
$ man portage
$ man make.conf
1.b. Хранение файлов
Дерево Portage
Дерево Portage размещается, по умолчанию, в /usr/portage. Это
272

Настольная книга Gentoo Linux x86
определяется значением переменной PORTDIR. Когда вы храните дерево Portage где-либо в другом месте (изменив эту переменную), не забывайте соответственно изменить символическую ссылку /etc/make.profile.
Если вы измените переменную PORTDIR, вам может потребоваться изменить и следующие переменные: PKGDIR, DISTDIR, RPMDIR, так как они не замечают изменений PORTDIR. Это связано с особенностями их обработки Portage.
Двоичные пакеты
Несмотря на то, что Portage по умолчанию не использует прекомпилированное программное обеспечение, для него предусмотрена очень мощная поддержка.
Если вы укажете Portage работать с прекомпилированными пакетами, они будут разыскиваться в /usr/portage/packages. Это расположение определяется переменной PKGDIR.
Исходные коды
Исходные коды приложений хранятся в /usr/portage/distfiles по умолчанию. Это определяется переменной DISTDIR.
Файлы RPM
Несмотря на то, что Portage не может использовать RPM-файлы, есть возможность их создания командой ebuild (см. Приложение Ebuild). По умолчанию
Portage хранит RPM файлы в каталоге /usr/portage/rpm, как определяется переменной RPMDIR.
База данных Portage
Portage хранит состояние вашей системы (какие пакеты установлены, какие файлы относятся к определенным пакетам и т. п.) в /var/db/pkg. Не изменяйте эти файлы вручную! Это может разрушить знание вашей системы Portage.
Кэш Portage
Кэш Portage (включая сведения о времени изменения, виртуальные пакеты, информацию дерева зависимостей и т. д.) хранится в /var/cache/edb. Это место действительно является кэшем: вы можете его очистить в любой момент, когда не запущены приложения, связанные с Portage.
1.c. Сборка программного обеспечения
Временные файлы Portage
По умолчанию Portage хранит временные файлы в /var/tmp. За это отвечает переменная PORTAGE_TMPDIR.
273

Настольная книга Gentoo Linux x86
Если вы измените переменную PORTAGE_TMPDIR, вам может потребоваться изменить и переменную BUILD_PREFIX, так как она не замечает изменений
PORTAGE_TMPDIR. Это связано с особенностями ее обработки Portage.
Каталог сборки
Portage создает специфичные каталоги сборки для каждого пакета внутри
/var/tmp/portage. Это расположение задается переменной BUILD_PREFIX.
Размещение «живой файловой системы»
По умолчанию Portage устанавливает все файлы в текущую файловую систему (/), но это можно изменить, установив переменную окружения ROOT. Это может оказаться полезным при построении новых образов системы.
1.d. Ведение журнала
Журнал Ebuild
Portage может создавать отдельные файлы журнала для каждого файла
ebuild, но только тогда, когда переменная PORT_LOGDIR указывает на место, доступное для записи для Portage (пользователя portage). По умолчанию эта переменная не установлена.
2. Настройка с помощью переменных
2.a. Настройка Portage
Как отмечалось ранее, Portage настраивается с помощью множества переменных, которые задаются в файле /etc/make.conf. За более полной и подробной информацией обращайтесь к странице справки по make.conf:
Листинг 1: Чтение страницы справки по make.conf
$ man make.conf
2.b. Параметры сборки
Параметры конфигурирования и компиляции
Когда Portage собирает приложения, компилятору и сценарию конфигурации передаются значения следующих переменных:

CFLAGS и CXXFLAGS определяют желаемые флаги компилятора для C и
C++;
274

Настольная книга Gentoo Linux x86

CHOST определяет информацию об используемой платформе для сценария конфигурации приложения;

MAKEOPTS передается команде make и обычно применяется для установки степени распараллеливания компиляции. Более подробная информация о параметрах команды make находится на странице справки по make.
Переменная USE также используется при конфигурировании и компиляции, но о ней уже много и подробно говорилось в предыдущих главах.
Параметры установки
Когда Portage устанавливает (merge) новую версию программного продукта, файлы более старых версий удаляются из системы. Portage дает пользователю 5- ти секундную задержку перед стиранием старых версий. Эти 5 секунд задаются переменной CLEAN_DELAY.
2.c. Защита конфигурационных файлов
Места, защищаемые Portage
Portage записывает файлы, предоставляемые новой версией программы, поверх старых, если только эти файлы не расположены в защищенном месте.
Защищенные каталоги определяются переменной CONFIG_PROTECT. Обычно, это места расположения файлов конфигурации. Каталоги в списке разделяются пробелами.
Файл, который должен быть записан в такой защищенный каталог, переименовывается, а пользователь получает предупреждение о наличии новой версии (обычно) файла конфигурации.
Узнать текущее значение CONFIG_PROTECT можно из сообщений emerge --info:
Листинг 2: Получение значения CONFIG_PROTECT
$ emerge --info | grep 'CONFIG_PROTECT='
Более подробная информация о защите конфигурационных файлов, осуществляемой системой Portage, доступна по команде emerge:
Листинг 3: Подробная информация о защите конфигурационных файлов
$ emerge --help config
Исключение каталогов
Чтобы снять защиту с определенных подкаталогов защищенного каталога, можно использовать переменную CONFIG_PROTECT_MASK.
275

Настольная книга Gentoo Linux x86
2.d. Параметры скачивания
Расположение сервера
Если запрошенная информация или данные отсутствуют в вашей системе,
Portage обращается за ними в интернет. Расположение серверов для различных каналов получения информации задается следующими переменными:

GENTOO_MIRRORS определяет список адресов серверов, содержащих исходный код (distfiles);

PORTAGE_BINHOST указывает расположение определенного сервера, содержащего двоичные пакеты (prebuilt packages) для вашей системы;

Третья переменная содержит расположение сервера rsync, который используется при обновлении вашего дерева портежей:
SYNC указывает сервер, с которого Portage извлекает дерево портежей.
Переменные GENTOO_MIRRORS и SYNC можно установить автоматически программой mirrorselect. Перед тем, как использовать, ее нужно установить, выполнив emerge mirrorselect. За дополнительной информацией обращайтесь к оперативной справке mirrorselect:
Листинг 4: Дополнительные сведения о mirrorselect
# mirrorselect --help
Если вы вынуждены использовать прокси-сервер, для его указания можно использовать переменные HTTP_PROXY, FTP_PROXY и RSYNC_PROXY.
Команды для извлечения
Когда Portage требуется извлечь исходный код, по умолчанию используется wget.
Вы можете это изменить с помощью переменной FETCHCOMMAND.
Portage может возобновлять скачивание частично загруженного исходного кода.
По умолчанию используется wget, но это можно переопределить переменной
RESUMECOMMAND.
Удостоверьтесь, что ваши команды FETCHCOMMAND и RESUMECOMMAND сохраняют исходный код в нужном месте. Внутри этих переменных следует использовать \${URI} и \${DISTDIR}, для указания расположения исходных кодов и distfiles, соответственно.
Также существует возможность определить индивидуальные настройки для различных протоколов,
используя
FETCHCOMMAND_HTTP,
FETCHCOMMAND_FTP, RESUMECOMMAND_HTTP, RESUMECOMMAND_FTP, и т.п.
Настройки rsync
276

Настольная книга Gentoo Linux x86
Вы не можете заменить команду rsync, которую Portage использует для обновления дерева портежей, но можно установить несколько переменных, определяющих ее поведение:

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

RSYNC_RETRIES определяет, сколько раз rsync должна пытаться соединиться с зеркалом, на которое указывает переменная SYNC. По умолчанию равна 3.

RSYNC_TIMEOUT определяет количество секунд, в течение которого rsync соединение может бездействовать, перед тем как rsync сочтет его превысившим время ожидания. По умолчанию равна 180, но если вы используете соединение по модему или у вас медленный компьютер, возможно, следует установить значение этой переменной равным 300 или большим.
2.e. Настройка Gentoo
Выбор ветви
Используемую ветвь можно изменить переменной ACCEPT_KEYWORDS. По умолчанию используется стабильная ветвь для вашей архитектуры.
Дополнительная информация о ветвях Gento находится в следующей главе.
Возможности Portage
Вы можете включить отдельные функции Portage с помощью переменной
FEATURES. Возможности Portage рассматривались в предыдущих главах.
2.f. Поведение Portage
Распределение ресурсов
С помощью переменной PORTAGE_NICENESS можно увеличивать или уменьшать значение nice, с которым выполняется Portage. Значение
PORTAGE_NICENESS прибавляется к текущему значению nice.
Более подробно о значениях nice написано в странице справки:
Листинг 5: Дополнительные сведения о nice
$ man nice
Настройки вывода
Переменная NOCOLOR (по умолчанию «false») определяет, следует ли Portage
277

Настольная книга Gentoo Linux x86
отключить цветовую раскраску своих сообщений.
3. Смешение ветвей программного обеспечения
3.a. Использование одной ветви
Стабильная ветвь
Переменная
ACCEPT_KEYWORDS определяет, какую из ветвей использовать в вашей системе. По умолчанию используется стабильная ветвь для вашей архитектуры, например x86
Мы рекомендуем использовать только стабильную ветвь. Однако, если для вас стабильность не критична и вы хотите помочь Gentoo, отсылая отчеты об ошибках на http://bugs.gentoo.org, читайте дальше.
Тестовая ветвь
Если вы желаете использовать наиболее свежее ПО, подумайте над использованием тестовой ветви. Чтобы Portage начала использовать тестовую ветвь, добавьте «
»
перед названием вашей архитектуры.
Тестовая ветвь полностью соответствует своему названию: для тестирования.
Если пакет находится в стадии тестирования, это означает, что разработчики считают, что пакет работоспособен, но тщательно он не протестирован. Вы можете оказаться первым, кто столкнется с какой-либо ошибкой. В этом случае вы можете создать отчет об ошибке, чтобы разработчики узнали о ней.
Однако будьте готовы к тому, что могут возникнуть проблемы со стабильностью, неудовлетворительной поддержкой пакетов
(например неправильные/отсутствующие зависимости), слишком частыми обновлениями (а в результате — частыми сборками) или невозможностью собрать пакет. Если вы не знаете, как работает Gentoo и как разрешать возникающие проблемы, мы рекомендуем не отходить от стабильной и оттестированной ветви.
К примеру, для выбора тестовой ветви на архитектуре x86, отредактируйте
/etc/make.conf и укажите в нем:
Листинг 1: Установка значения переменной ACCEPT_KEYWORDS
ACCEPT_KEYWORDS="
x86"

Если вы запустите обновление системы, то увидите, что многие пакеты нуждаются в обновлении. Обратите внимание, что после перехода на тестовую ветвь и обновления системы, как правило, нет простого пути назад к стабильной официальной ветви (конечно, кроме использования резервной копии).
278

Настольная книга Gentoo Linux x86
3.b. Одновременное использование стабильной и тестовой
ветвей
Местоположение package.keywords
Вы можете указать, чтобы Portage использовала тестовую ветвь только для определенных пакетов, а для остальной системы — стабильную ветвь. Для этого добавьте категорию и имя пакета, для которого вы желаете использовать тестовую ветвь, в файл /etc/portage/package.keywords. Вместо этого можно создать каталог (с таким же именем) и указывать пакеты в файлах, находящихся внутри этого каталога. Например, для использования тестовой ветви для
gnumeric:
Листинг 2: Настройка /etc/portage/package.keywords для gnumeric, вся строка app-office/gnumeric x86
Тестирование определенных версий
Если вы желаете использовать конкретную версию ПО из тестовой ветви, но не хотите, чтобы Portage использовала тестовую ветвь для последующих версий этого ПО, можно указать в местоположении package.keywords номер необходимой версии. В этом случае вы обязаны использовать оператор =. Также можно указать диапазон версий, используя операторы <=, <, > или >=.
В любом случае, добавляя информацию о версии, вы должны использовать один из этих операторов. Если вы не указываете версию, эти операторы использовать нельзя.
В следующем примере мы просим Portage разрешить установку gnumeric-1.2.13:
Листинг 3: Использование конкретной тестовой версии gnumeric
=app-office/gnumeric-1.2.13 x86
3.c. Использование заблокированных пакетов
Расположение package.unmask
Разработчики Gentoo не поддерживают использование этого места расположения. Пожалуйста, используйте их на свой страх и риск. Просьбы о помощи, связанные с использованием package.unmask и/или package.mask, останутся без ответа. Вы предупреждены.
Если использование пакета было заблокировано разработчиками Gentoo, но вы желаете его использовать несмотря на причины блокировки, указанные в файле package.mask (по умолчанию он находится в /usr/portage/profiles), добавьте для него точно такую же строку в файл /etc/portage/package.unmask (или в файл в этом каталоге, если это каталог).
279

Настольная книга Gentoo Linux x86
Например, если =net-mail/hotwayd-0.8 заблокирован, то разблокировать его можно, прописав в package.unmask точно такую же строчку:
Листинг 4: /etc/portage/package.unmask
=net-mail/hotwayd-0.8
Местоположение package.mask
Если вы не хотите, чтобы Portage использовала какое-то конкретное ПО или конкретные версии ПО, вы можете его самостоятельно заблокировать, добавив соответствующую запись в /etc/portage/package.mask (в такой файл либо в файл внутри такого каталога).
Если, к примеру, вы не хотите, чтобы Portage устанавливала исходные коды ядра новее, чем gentoo-sources-2.6.8.1, добавьте такую строку в местоположение package.mask:
Листинг 5: Пример использования файла /etc/portage/package.mask
>sys-kernel/gentoo-sources-2.6.8.1
4. Дополнительные средства Portage
4.a. etc-update
etc-update — это утилита, предназначенная для обновления в системе файлов ._cfg0000_<имя>. Она обеспечивает интерактивную настройку установки и может также автоматически устанавливать тривиальные изменения. Файлы создаются ._cfg0000_<имя> Portage, когда нужно заменить файл в каталоге, защищенном переменной CONFIG_PROTECT.
Выполнить etc-update довольно просто:
Листинг 1: Запуск etc-update
# etc-update
После выполнения тривиальных обновлений, вы увидите запрос со списком защищенных файлов, ожидающих обновления. Внизу вам предложат следующие варианты:
Листинг 2: Запрос etc-update
Please select a file to edit by entering the corresponding number.
(-1 to exit) (-3 to auto merge all remaining files)
(-5 to auto-merge AND not use 'mv -i'):
(Пожалуйста, выберите файл для правки, введя соответствующее число.
(-1 - выход) (-3 - автоустановка всех оставшихся файлов)
280

Настольная книга Gentoo Linux x86
(-5 для автоустановки БЕЗ использования 'mv -i'): )
При вводе -1, etc-update выходит, прекращая последующие изменения. Если вы введете -3 или -5, все перечисленные файлы конфигурации заменяются более новыми версиями. Следовательно, очень важно сначало отобрать файлы, которые не следует автоматически обновлять. Для этого надо только вводить номер, указанный слева от файлов.
Например, выбираем файл конфигурации /etc/pear.conf:
Листинг 3: Обновление конкретного конфигурационного файла
Beginning of differences between /etc/pear.conf and /etc/._cfg0000_pear.conf
[...]
End of differences between /etc/pear.conf and /etc/._cfg0000_pear.conf
1) Replace original with update
2) Delete update, keeping original as is
3) Interactively merge original with update
4) Show differences again
Теперь можно увидеть различия между двумя файлами. Если вы считаете, что обновленный файл конфигурации можно использовать без проблем, введите 1.
Если вы считаете, что обновленный файл конфигурации не нужен, или не содержит новую или полезную информацию, введите 2. Если вы хотите обновить текущий файл в интерактивном режиме, введите 3.
Нет никакого смысла в подробном описании интерактивного обновления. Для полноты изложения, мы перечислим возможные команды, которые можно использовать при интерактивном слиянии двух файлов. Вас встречают две строки
(одна исходная, вторая измененная) и запрос, в ответ на который можно ввести одну из следующих команд:



Поделитесь с Вашими друзьями:
1   ...   22   23   24   25   26   27   28   29   ...   79


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал