Книга Gentoo Linux x86



Pdf просмотр
страница7/9
Дата16.11.2016
Размер0.93 Mb.
Просмотров1957
Скачиваний0
1   2   3   4   5   6   7   8   9
Сценарий env-update
Переменная
PATH
определяется в нескольких файлах в /etc/env.d. Нет, нет это не ошибка: при запуске env-update различные определения объединяются перед обновлением переменных среды, позволяя пакетам (или пользователям) добавлять собственные значения переменных, не влияя на уже существующие.
Сценарий env-update объединяет значения переменных из файлов, находящихся в /etc/env.d, в алфавитном порядке. Имена файлов должны начинаться с двух десятичных цифр.
Объединение выполняется не всегда, а только для следующих переменных:
KDEDIRS
,
PATH
,
CLASSPATH
,
LDPATH
,
MANPATH
,
INFODIR
,
INFOPATH
,
ROOTPATH
,
CONFIG_PROTECT
,
CONFIG_PROTECT_MASK
,
PRELINK_PATH
и
PRELINK_PATH_MASK
. Для всех остальных переменных используется значение, определенное в последнем из файлов (по алфавиту в каталоге /etc/env.d).
При запуске сценария env-update создаются все переменные среды, и помещаются в
/etc/profile.env (используемый файлом /etc/profile). Кроме того, на основе значения
LDPATH
создается /etc/ld.so.conf. После этого запускается ldconfig
, чтобы вновь создать файла
/etc/ld.so.cache, используемый динамическим компоновщиком.
Если вы хотите, чтобы результаты работы env-update вступили в силу немедлено, для обновления среды выполните следующую команду. Пользователи, самостоятельно устанавливавшие Gentoo, возможно, помнят ее из указаний по установке:
5.c.
Локальное определение переменных
Пользовательские переменные
Далеко не всегда нужно определять переменные глобально. Например, вам может понадобиться добавить
/home/my_user/bin и текущий рабочий каталог (где вы находитесь) к переменной
PATH
, но при этом не нужно, чтобы это добавление появилось и в переменной
PATH
у всех остальных пользователей. Если вы хотите определить переменную среды локально, используйте
/.bashrc или
/.bash_profile:
Листинг 2.2: /etc/env.d/99local
http_proxy="proxy.server.com:8080"
Листинг 2.3: Порядок обновления, используемый env-update
00basic 99kde-env 99local
+-------------+----------------+-------------+
PATH="/bin:/usr/bin:/usr/kde/3.2/bin:/usr/local/bin"
Листинг 2.4: Обновление среды
# env-update && source /etc/profile
Примечание: Эта команда обновляет переменные только в текущем терминале, в новых консолях и их потомках. То есть, если вы работаете в X11, потребуется или набирать source /etc/profile в каждом открываемом терминале, или перезапустить X, чтобы все новые терминалы обращались к новым переменным. Если вы используете диспетчер входа в систему, станьте пользователем с правами root и наберите
/etc/init.d/xdm restart
. Если нет, вам придется выйти и снова войти в систему, чтобы X порождала потомков, использующих новые значения переменных.

Обновление вашей переменной
PATH
произойдет, когда вы выйдете и снова войдете в систему.
Сеансовые переменные
Иногда нужны еще более жесткие ограничения. Вам может потребоваться возможность запуска исполняемых файлов из специально созданного временного каталога без указания полного пути к ним, и без изменения файла
/.bashrc ради нескольких минут.
В этом случае можно просто определить переменную
PATH
для текущего сеанса командой export
Переменной будет присвоено временное значение до тех пор, пока вы не завершите сеанс.
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, специфичные для архитектуры, такие как список пакетов, принадлежащих соответствующей системе, список неработоспособных (или замаскированных) пакетов, и т.д.
Конфигурация, задаваемая пользователем
Листинг 3.1: Расширение PATH в
/.bashrc для локальных нужд

(двоеточие без последующего указания каталога означает текущий рабочий каталог)
PATH="${PATH}:/home/my_user/bin:"
Листинг 3.2: Определение сеансовой переменной среды
# export PATH="${PATH}:/home/my_user/tmp/usr/bin"

Если вам необходимо изменить поведение Portage относительно установки программного обеспечения, вам потребуется отредактировать файлы, находящиеся в /etc/portage. Мы настоятельно рекомендуем
вам пользоваться файлами из /etc/portage, всеми силами отговариваем от настройки поведения
Portage через переменные среды!
Внутри /etc/portage вы можете создать следующие файлы: package.mask, в котором перечислены пакеты, которые Portage никогда не следует устанавливать package.unmask, со списком пакетов, для которых вы хотите иметь возможность установки, даже если разработчики Gentoo отговаривают вас от этого package.keywords, где перечислены пакеты, которые должны быть доступны для установки, несмотря на то, что они не подходят для вашей системы или архитектуры (пока) package.use, где перечислены значения USE-флагов, которые необходимо указывать для конкретных пакетов, а не для всей системы
Дополнительные сведения о каталоге /etc/portage, а также список всех файлов, которые там можно создавать, находятся на справочной странице Portage:
Изменение файлов Portage и размещения каталогов
Ранее упомянутые конфигурационные файлы нельзя хранить где угодно — Portage всегда ищет свои настроечные файлы в строго определенных местах. Однако Portage также использует множество каталогов для других целей: каталог для сборки, место для хранения исходных кодов, место для дерева
Portage, и т.д.
Для этих целей существуют хорошо известные каталоги по умолчанию, положение которых можно изменить на свой вкус, внеся изменения в /etc/make.conf. Оставшаяся часть этой главы посвящена описанию того, какие специальные места Portage использует для своих целей, и как изменить их расположение в файловой системе.
Этот документ не претендует на статус справочника. Если вам необходим полный объем информации, пожалуйста, обратитесь к страницам справки по Portage и make.conf:
1.b.
Хранение файлов
Дерево Portage
Дерево Portage размещается, по умолчанию, в /usr/portage. Это определяется значением переменной
PORTDIR. Когда вы храните дерево Portage где-либо в другом месте (изменив эту переменную), не забывайте соответственно изменить символическую ссылку /etc/make.profile.
Если вы измените переменную PORTDIR, вам может потребоваться изменить и следующие переменные:
PKGDIR, DISTDIR, RPMDIR, так как они не замечают изменений PORTDIR. Это связано с особенностями их обработки Portage.
Двоичные пакеты
Несмотря на то, что Portage по умолчанию не использует прекомпилированное программное обеспечение, для него предусмотрена очень мощная поддержка. Если вы укажете Portage работать с прекомпилированными пакетами, они будут разыскиваться в /usr/portage/packages. Это расположение определяется переменной PKGDIR.
Листинг 1.1: Вызов справки по Portage
$ man portage
Листинг 1.2: Вызов справки по Portage и make.conf
$ man portage
$ man make.conf

Исходные коды
Исходные коды приложений хранятся в /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.
Если вы измените переменную 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:
2.b.
Параметры сборки
Параметры конфигурирования и компиляции
Когда Portage собирает приложения, компилятору и сценарию конфигурации передаются значения следующих переменных:
CFLAGS и CXXFLAGS определяют желаемые флаги компилятора для C и C++
CHOST определяет информацию об используемой платформе для сценария конфигурации приложения
MAKEOPTS передается команде make и обычно применяется для установки степени распараллеливания компиляции. Более подробная информация о параметрах команды make находится на странице справки по make.
Переменная USE также используется при конфигурировании и компиляции, но о ней уже много и подробно говорилось в предыдущих главах.
Параметры установки
Когда Portage устанавливает (merge) новую версию программного продукта, файлы более старых версий удаляются из системы. Portage дает пользователю 5-ти секундную задержку перед стиранием старых версий. Эти 5 секунд задаются переменной CLEAN_DELAY.
2.c.
Защита конфигурационных файлов
Места, защищаемые Portage
Portage записывает файлы, предоставляемые новой версией программы, поверх старых, если только эти файлы не расположены в защищенном месте. Защищенные каталоги определяются переменной
CONFIG_PROTECT. Обычно, это места расположения файлов конфигурации. Каталоги в списке разделяются пробелами.
Файл, который должен быть записан в такой защищенный каталог, переименовывается, а пользователь получает предупреждение о наличии новой версии (обычно) файла конфигурации.
Узнать текущее значение CONFIG_PROTECT можно из сообщений emerge --info
:
Более подробная информация о защите конфигурационных файлов, осуществляемой системой Portage, доступна по команде emerge
:
Исключение каталогов
Чтобы снять защиту с определенных подкаталогов защищенного каталога, можно использовать переменную CONFIG_PROTECT_MASK.
Листинг 1.1: Чтение страницы справки по make.conf
$ man make.conf
Листинг 3.1: Получение значения CONFIG_PROTECT
$ emerge --info | grep 'CONFIG_PROTECT='
Листинг 3.2: Подробная информация о защите конфигурационных файлов
$ emerge --help config

2.d.
Параметры скачивания
Расположение сервера
Если запрошенная информация или данные отсутствуют в вашей системе, Portage обращается за ними в интернет. Расположение серверов для различных каналов получения информации задается следующими переменными:
GENTOO_MIRRORS определяет список адресов серверов, содержащих исходный код (distfiles)
PORTAGE_BINHOST указывает расположение определенного сервера, содержащего двоичные пакеты (prebuilt packages) для вашей системы
Третья переменная содержит расположение сервера rsync, который используется при обновлении вашего дерева портежей:
SYNC указывает сервер, с которого Portage извлекает дерево портежей
Переменные GENTOO_MIRRORS и SYNC можно установить автоматически программой mirrorselect
Перед тем, как использовать, ее нужно установить, выполнив emerge mirrorselect
. За дополнительной информацией обращайтесь к оперативной справке mirrorselect:
Если вы вынуждены использовать прокси-сервер, для его указания можно использовать переменные
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
Вы не можете заменить команду rsync, которую Portage использует для обновления дерева портежей, но можно установить несколько переменных, определяющих ее поведение:
RSYNC_EXCLUDEFROM указывает на файл, где перечислены пакеты и/или категории, которые rsync должна игнорировать во время обновления.
RSYNC_RETRIES определяет, сколько раз rsync должна пытаться соединиться с зеркалом, на которое указывает переменная SYNC. По умолчанию равна 3.
RSYNC_TIMEOUT определяет количество секунд, в течение которого rsync соединение может бездействовать, перед тем как rsync сочтет его превысившим время ожидания. По умолчанию равна
180, но если вы используете соединение по модему или у вас медленный компьютер, возможно, следует установить значение этой переменной равным 300 или большим.
2.e.
Настройка Gentoo
Листинг 4.1: Дополнительные сведения о mirrorselect
# mirrorselect --help

Выбор ветви
Используемую ветвь можно изменить переменной ACCEPT_KEYWORDS. По умолчанию используется стабильная ветвь для вашей архитектуры. Дополнительная информация о ветвях Gento находится в следующей главе.
Возможности Portage
Вы можете включить отдельные функции Portage с помощью переменной FEATURES. Возможности
Portage рассматривались в предыдущих главах, например,
Возможности Portage
2.f.
Поведение Portage
Распределение ресурсов
С помощью переменной PORTAGE_NICENESS можно увеличивать или уменьшать значение nice, с которым выполняется Portage. Значение PORTAGE_NICENESS прибавляется к текущему значению nice.
Более подробно о значениях nice написано в странице справки:
Настройки вывода
Переменная NOCOLOR (по умолчанию «false») определяет, следует ли Portage отключить цветовую раскраску своих сообщений.
3. Смешение ветвей программного обеспечения
3.a.
Использование одной ветви
Стабильная ветвь
Переменная ACCEPT_KEYWORDS определяет, какую из ветвей использовать в вашей системе. По умолчанию используется стабильная ветвь для вашей архитектуры, например x86
Мы рекомендуем использовать только стабильную ветвь. Однако, если для вас стабильность не критична и вы хотите помочь Gentoo, отсылая отчеты об ошибках на http://bugs.gentoo.org
, читайте дальше.
Тестовая ветвь
Если вы желаете использовать наиболее свежее ПО, подумайте над использованием тестовой ветви.
Чтобы Portage начала использовать тестовую ветвь, добавьте «
» перед названием вашей архитектуры.
Тестовая ветвь полностью соответствует своему названию: для тестирования. Если пакет находится в стадии тестирования, это означает, что разработчики считают, что пакет работоспособен, но тщательно он не протестирован. Вы можете оказаться первым, кто столкнется с какой-либо ошибкой. В этом случае вы можете создать отчет об ошибке
, чтобы разработчики узнали о ней.
Однако будьте готовы к тому, что могут возникнуть проблемы со стабильностью, неудовлетворительной поддержкой пакетов (например неправильные/отсутствующие зависимости), слишком частыми обновлениями (а в результате — частыми сборками) или невозможностью собрать пакет. Если вы не знаете, как работает Gentoo и как разрешать возникающие проблемы, мы рекомендуем не отходить от стабильной и оттестированной ветви.
К примеру, для выбора тестовой ветви на архитектуре x86, отредактируйте /etc/make.conf и укажите в нем:
Листинг 6.1: Дополнительные сведения о nice
$ man nice

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

Если вы не хотите, чтобы Portage использовала какое-то конкретное ПО или конкретные версии ПО, вы можете его самостоятельно заблокировать, добавив соответствующую запись в
/etc/portage/package.mask (в такой файл либо в файл внутри такого каталога).
Если, к примеру, вы не хотите, чтобы Portage устанавливала исходные коды ядра новее, чем gentoo- sources-2.6.8.1
, добавьте такую строку в местоположение package.mask:
4. Дополнительные средства Portage
4.a.
etc-update
etc-update
— это утилита, предназначенная для обновления в системе файлов ._cfg0000_<имя>. Она обеспечивает интерактивную настройку установки и может также автоматически устанавливать тривиальные изменения. Файлы создаются ._cfg0000_<имя> Portage, когда нужно заменить файл в каталоге, защищенном переменной CONFIG_PROTECT.
Выполнить etc-update довольно просто:
После выполнения тривиальных обновлений, вы увидите запрос со списком защищенных файлов, ожидающих обновления. Внизу вам предложат следующие варианты:
При вводе
-1
, etc-update выходит, прекращая последующие изменения. Если вы введете
-3
или
-5
, все перечисленные файлы конфигурации заменяются более новыми версиями. Следовательно, очень важно сначало отобрать файлы, которые не следует автоматически обновлять. Для этого надо только вводить номер, указанный слева от файлов.
Например, выбираем файл конфигурации /etc/pear.conf:
Теперь можно увидеть различия между двумя файлами. Если вы считаете, что обновленный файл конфигурации можно использовать без проблем, введите
1
. Если вы считаете, что обновленный файл конфигурации не нужен, или не содержит новую или полезную информацию, введите
2
. Если вы хотите обновить текущий файл в интерактивном режиме, введите
3
Нет никакого смысла в подробном описании интерактивного обновления. Для полноты изложения, мы
Листинг 3.2: Пример использования файла /etc/portage/package.mask
>sys-kernel/gentoo-sources-2.6.8.1
Листинг 1.1: Запуск etc-update
# etc-update
Листинг 1.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 - автоустановка всех оставшихся файлов)
(-5 для автоустановки БЕЗ использования 'mv -i'): )



Поделитесь с Вашими друзьями:
1   2   3   4   5   6   7   8   9


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

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


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