+ ru/handbook: add translation of "pkgng-intro" subsection.

This commit is contained in:
Taras Korenko 2013-07-23 06:44:24 +00:00
parent 30055d5144
commit e1cabaaef9
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=42397

View file

@ -7,7 +7,6 @@
Original revision: r41718
-->
<!-- Translation of <sect1 id="pkgng-intro"/> is currently not available. -->
<chapter id="ports">
<chapterinfo>
@ -606,11 +605,385 @@ docbook =
</sect1>
<sect1 id="pkgng-intro">
<!-- XXX Not translated yet -->
<title>*Using <application>pkgng</application> for Binary Package
Management</title>
<title>Использование <application>pkgng</application> для управления
бинарными пакетами</title>
<para>üÔÏÔ ÒÁÚÄÅÌ ÎÅ ÐÅÒÅ×ÅÄÅÎ.</para>
<para><application>pkgng</application> &mdash; это усовершенствованный
инструмент, пришедший на смену традиционным утилитам управления пакетами
&os;. Он обладает множеством функциональных возможностей, ускоряющих
и облегчающих работу с бинарными пакетами. Первый релиз
<application>pkgng</application> состоялся в августе 2012 года.</para>
<para><application>pkgng</application> не является заменой для утилит
управления портами, таких как
<filename role="package">ports-mgmt/portmaster</filename> или
<filename role="package">ports-mgmt/portupgrade</filename>. В то время,
как <filename role="package">ports-mgmt/portmaster</filename> и
<filename role="package">ports-mgmt/portupgrade</filename> позволяют
устанавливать приложения сторонних разработчиков как из бинарных
пакетов, так и из
Коллекции Портов, утилита <application>pkgng</application>
дает возможность устанавливать приложения исключительно из бинарных
пакетов.</para>
<sect2 id="pkgng-initial-setup">
<title>Начало работы с <application>pkgng</application></title>
<para>Во &os;&nbsp;9.1 и более поздние включена программа
&quot;самонастройки&quot; (&quot;bootstrap&quot;)
<application>pkgng</application>. Она скачивает и устанавливает
основную утилиту <application>pkgng</application>.</para>
<para>Для запуска самонастройки, выполните:</para>
<screen>&prompt.root; <userinput>/usr/sbin/pkg</userinput></screen>
<para>Для более ранних версий &os; утилиту
<application>pkgng</application> необходимо установить из Коллекции
Портов или из бинарных пакетов.</para>
<para>Для установки <application>pkgng</application> из порта, запустите
следующее:</para>
<screen>&prompt.root; <userinput>cd /usr/ports/ports-mgmt/pkg</userinput>
&prompt.root; <userinput>make</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>
<para>Для установки из бинарного пакета, выполните:</para>
<screen>&prompt.root; <userinput>pkg_add -r pkg</userinput></screen>
<para>Действующие инсталляции &os; требуют преобразования базы данных
установленных пакетов утилиты <application>pkg_install</application>
к новому формату. Для выполнения конвертирования, запустите:</para>
<screen>&prompt.root; <userinput>pkg2ng</userinput></screen>
<para>Вышеприведенный шаг не требуется для новых инсталляций, в которых
не было установлено программ сторонних разработчиков.</para>
<important>
<para>Этот шаг необратим. После перевода базы данных установленных
пакетов к формату <application>pkgng</application> утилитами
<application>pkg_install</application> более пользоваться
не следует.</para>
</important>
<note>
<para>В процессе конвертирования базы данных установленных пакетов
могут возникать сообщения об ошибках. На данном этапе их можно
игнорировать, так как перечень программ сторонних разработчиков,
информация о которых не была преобразована, будет перечислен
по завершении работы <command>pkg2ng</command>. Над этим перечнем
придется поработать вручную.</para>
</note>
<para>Чтобы убедиться, что Коллекция Портов&nbsp;&os; регистрирует
новые программы при помощи <application>pkgng</application>, а не
<application>pkg_install</application>, для версий &os;, предшествующих
10.<replaceable>X</replaceable>, в файл
<filename>/etc/make.conf</filename> необходимо внести следующую
запись:</para>
<programlisting>WITH_PKGNG= yes</programlisting>
</sect2>
<sect2 id="pkgng-pkg-conf">
<title>Настройка окружения <application>pkgng</application></title>
<para>Система управления пакетами <application>pkgng</application>
при выполнении большинства операций обращается к пакетному
репозиторию. Адрес используемого по умолчанию репозитория указан
в <filename>/usr/local/etc/pkg.conf</filename> или в переменной
окружения <envar>PACKAGESITE</envar>. Последняя переопределяет
адрес, указанный в конфигурационном файле.</para>
<para>Дополнительные опции конфигурации <application>pkgng</application>
описаны в pkg.conf(5).</para>
</sect2>
<sect2 id="pkgng-basic-usage">
<title>Основные операции <application>pkgng</application></title>
<para>Информацию по работе с <application>pkgng</application> можно
найти на странице справочника pkg(8), или в выводе утилиты
<command>pkg</command>, запущенной без аргументов.</para>
<para>Каждый аргумент команды <application>pkgng</application> описан на
соответствующей странице справочника. Например, чтобы ознакомиться
со страницей справочника для <command>pkg install</command>,
запустите любую из двух нижеследующих команд:</para>
<screen>&prompt.root; <userinput>pkg help install</userinput></screen>
<screen>&prompt.root; <userinput>man pkg-install</userinput></screen>
<sect3 id="pkgng-pkg-info">
<title>Получение информации об установленных пакетах при помощи
<application>pkgng</application></title>
<para>Информация об установленных в системе пакетах может быть
отображена при помощи команды <command>pkg info</command>. Подобно
до &man.pkg.info.1;, в выводе перечисляются версии и описания всех
установленных пакетов.</para>
<para>Если необходима информация о конкретном пакете, выполните:</para>
<screen>&prompt.root; <userinput>pkg info <replaceable>packagename</replaceable></userinput></screen>
<para>Например, для получения версии <application>pkgng</application>,
который установлен в системе, запустите:</para>
<screen>&prompt.root; <userinput>pkg info pkg</userinput>
pkg-1.0.2 New generation package manager</screen>
</sect3>
<sect3 id="pkgng-installing-deinstalling">
<title>Установка и удаление пакетов при помощи
<application>pkgng</application></title>
<para>В общем, бинарные пакеты устанавливаются при помощи:</para>
<screen>&prompt.root; <userinput>pkg install <replaceable>packagename</replaceable></userinput></screen>
<para>Команда <command>pkg install</command> обращается к пакетному
репозиторию, это упоминалось в <xref linkend="pkgng-pkg-conf"/>.
Команда pkg-add(8), напротив, не выполняет обращений к пакетному
репозиторию, а также игнорирует переменную
<envar>PACKAGESITE</envar>. Как следствие &mdash; зависимости
не отслеживаются, и необходимые зависимые компоненты не скачиваются
с удаленного источника. В этом разделе описана работа с
<command>pkg install</command>. За подробностями работы с
<command>pkg add</command> обратитесь к справочной странице по
pkg-add(8).</para>
<para>Утилита <command>pkg install</command> может устанавливать
дополнительные бинарные пакеты. Например, для установки
<application>curl</application>, выполните:</para>
<screen>&prompt.root; <userinput>pkg install curl</userinput>
Updating repository catalogue
Repository catalogue is up-to-date, no need to fetch fresh copy
The following packages will be installed:
Installing ca_root_nss: 3.13.5
Installing curl: 7.24.0
The installation will require 4 MB more space
1 MB to be downloaded
Proceed with installing packages [y/N]: <userinput>y</userinput>
ca_root_nss-3.13.5.txz 100% 255KB 255.1KB/s 255.1KB/s 00:00
curl-7.24.0.txz 100% 1108KB 1.1MB/s 1.1MB/s 00:00
Checking integrity... done
Installing ca_root_nss-3.13.5... done
Installing curl-7.24.0... done</screen>
<para>Новый пакет, как и любые дополнительные пакеты, которые были
установлены как зависимости, перечисляются в списке установленных
пакетов:</para>
<screen>&prompt.root; <userinput>pkg info</userinput>
ca_root_nss-3.13.5 The root certificate bundle from the Mozilla Project
curl-7.24.0 Non-interactive tool to get files from FTP, GOPHER, HTTP(S) servers
pkg-1.0.2 New generation package manager</screen>
<para>Пакеты, в которых более нет необходимости, могут быть удалены
при помощи <command>pkg delete</command>. Например, если выяснится,
что <application>curl</application> не нужен:</para>
<screen>&prompt.root; <userinput>pkg delete curl</userinput>
The following packages will be deleted:
curl-7.24.0_1
The deletion will free 3 MB
Proceed with deleting packages [y/N]: <userinput>y</userinput>
Deleting curl-7.24.0_1... done</screen>
</sect3>
<sect3 id="pkgng-upgrading">
<title>Обновление установленных пакетов при помощи
<application>pkgng</application></title>
<para>Пакеты, версии которых устарели, можно найти при помощи команды
<command>pkg version</command>. Версии установленных пакетов
сравниваются с версиями приложений из локального дерева портов,
а в случае отсутствия портов pkg-version(8) обращается к удаленному
репозиторию пакетов.</para>
<para>При помощи <application>pkgng</application> можно обновлять
пакеты до новых версий. Предположим, вышла новая версия
<application>curl</application>. Установленный пакет можно
обновить к новой версии, выполнив:</para>
<screen>&prompt.root; <userinput>pkg upgrade</userinput>
Updating repository catalogue
repo.txz 100% 297KB 296.5KB/s 296.5KB/s 00:00
The following packages will be upgraded:
Upgrading curl: 7.24.0 -> 7.24.0_1
1 MB to be downloaded
Proceed with upgrading packages [y/N]: <userinput>y</userinput>
curl-7.24.0_1.txz 100% 1108KB 1.1MB/s 1.1MB/s 00:00
Checking integrity... done
Upgrading curl from 7.24.0 to 7.24.0_1... done</screen>
</sect3>
<sect3 id="pkgng-auditing">
<title>Аудит безопасности пакетов при помощи
<application>pkgng</application></title>
<para>Изредка в приложениях из Коллекции Портов обнаруживаются
уязвимости. В <application>pkgng</application> встроена возможность
выполнять аудит безопасности, действующая подобно приложению из
<filename role="package">ports-mgmt/portaudit</filename>. Для
выполнения аудита установленных в систему программ, выполните:</para>
<screen>&prompt.root; <userinput>pkg audit -F</userinput></screen>
</sect3>
</sect2>
<sect2 id="pkgng-advanced-usage">
<title>Сложные вопросы работы с <application>pkgng</application></title>
<sect3 id="pkgng-autoremove">
<title>Автоматическое удаление неиспользуемых зависимостей при
помощи <application>pkgng</application></title>
<para>После удаления пакета в системе могут остаться неиспользуемые
зависимости, наподобие <filename
role="package">security/ca_root_nss</filename> из примера выше.
Такие пакеты остаются установленными, несмотря на то, что они
более не требуются другим пакетам. Определить и удалить
неиспользуемые пакеты, которые были установлены как зависимости,
можно при помощи:</para>
<screen>&prompt.root; <userinput>pkg autoremove</userinput>
Packages to be autoremoved:
ca_root_nss-3.13.5
The autoremoval will free 723 kB
Proceed with autoremoval of packages [y/N]: <userinput>y</userinput>
Deinstalling ca_root_nss-3.13.5... done</screen>
</sect3>
<sect3 id="pkgng-backup">
<title>Резервное копирование базы данных установленных пакетов
<application>pkgng</application></title>
<para>В отличие от традиционной системы управления пакетами,
<application>pkgng</application> располагает своим собственным
механизмом резервного копирования базы данных. Для ручного создания
резервной копии базы данных установленных пакетов, выполните:</para>
<screen>&prompt.root; <userinput>pkg backup -d <replaceable>pkgng.db</replaceable></userinput></screen>
<note>
<para>Замените имя файла <replaceable>pkgng.db</replaceable> на
более подходящее.</para>
</note>
<para>В дополнение, <application>pkgng</application> содержит скрипт
&man.periodic.8;, позволяющий выполнять ежедневное автоматическое
копирование базы данных установленных пакетов.
Для активации данной возможности задайте переменной
<literal>daily_backup_pkgng_enable</literal> значение
<literal>YES</literal> в файле &man.periodic.conf.5;.</para>
<tip>
<para>Для предотвращения периодического запуска аналогичного скрипта
системы <application>pkg_install</application>, также выполняющего
резервное копирование базы данных установленных пакетов, задайте
переменной <literal>daily_backup_pkgdb_enable</literal> значение
<literal>NO</literal> в файле &man.periodic.conf.5;.</para>
</tip>
<para>Для восстановления содержимого базы данных установленных пакетов
из резервной копии, выполните:</para>
<screen>&prompt.root; <userinput>pkg backup -r <replaceable>/path/to/pkgng.db</replaceable></userinput></screen>
</sect3>
<sect3 id="pkgng-clean">
<title>Удаление копий устаревших пакетов в системе
<application>pkgng</application></title>
<para>По умолчанию, <application>pkgng</application> сохраняет копии
установленных бинарных пакетов в каталог, указанный переменной
<envar>PKG_CACHEDIR</envar> в pkg.conf(5). При обновлении пакетов
командой <command>pkg upgrade</command> старые версии обновленных
пакетов автоматически не удаляются.</para>
<para>Для удаления устаревших версий бинарных пакетов из кеш-каталога,
выполните:</para>
<screen>&prompt.root; <userinput>pkg clean</userinput></screen>
</sect3>
<sect3 id="pkgng-set">
<title>Изменение метаданных пакетов
<application>pkgng</application></title>
<para>Со временем программы из Коллекции Портов могут претерпевать
изменения старшего (major) номера версии. В отличие от
<application>pkg_install</application>,
<application>pkgng</application> располагает встроенной командой для
обновления информации о происхождении (origin) пакета. Например,
изначально порт <filename role="package">lang/php5</filename>
был версии <literal>5.3</literal>. Позже этот порт был переименован
в <filename role="package">lang/php53</filename>, а под именем
<filename role="package">lang/php5</filename> был создан порт версии
<literal>5.4</literal>. Утилитам системы
<application>pkg_install</application> для обновления информации
о происхождении (origin) пакета в собственной базе данных
установленных пакетов потребовалась бы помощь дополнительного
программного обеспечения, такого как
<filename role="package">ports-mgmt/portmaster</filename>.</para>
<para>В отличие от
<filename role="package">ports-mgmt/portmaster</filename> и
<filename role="package">ports-mgmt/portupgrade</filename> для
портов, порядок перечисления новой и старой версий отличаются.
Для <application>pkgng</application> необходим следующий
порядок:</para>
<screen>&prompt.root; <userinput>pkg set -o <replaceable>category/oldport</replaceable>:<replaceable>category/newport</replaceable></userinput></screen>
<para>Например, в вышеприведенном случае для замены информации
о происхождении пакета, выполните:</para>
<screen>&prompt.root; <userinput>pkg set -o lang/php5:lang/php53</userinput></screen>
<para>Еще один пример: для изменения информации о происхождении
пакета с <filename role="package">lang/ruby18</filename> на
<filename role="package">lang/ruby19</filename>, выполните:</para>
<screen>&prompt.root; <userinput>pkg set -o lang/ruby18:lang/ruby19</userinput></screen>
<para>И последний пример: для замены информации о происхождении пакета
разделяемой библиотеки <filename>libglut</filename> с
<filename role="package">graphics/libglut</filename> на
<filename role="package">graphics/freeglut</filename>,
запустите:</para>
<screen>&prompt.root; <userinput>pkg set -o graphics/libglut:graphics/freeglut</userinput></screen>
<note>
<para>Выполняя замену информации о происхождении пакетов, в
большинстве случаев также требуется переустановить пакеты, которые
зависят от изменившегося пакета. Для принудительной переустановки
зависящих пакетов, выполните:</para>
<screen>&prompt.root; <userinput>pkg install -Rf <replaceable>graphics/freeglut</replaceable></userinput></screen>
</note>
</sect3>
</sect2>
</sect1>
<sect1 id="ports-using">