+ ru/handbook: add translation of "pkgng-intro" subsection.
This commit is contained in:
parent
30055d5144
commit
e1cabaaef9
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=42397
1 changed files with 378 additions and 5 deletions
|
@ -7,7 +7,6 @@
|
||||||
|
|
||||||
Original revision: r41718
|
Original revision: r41718
|
||||||
-->
|
-->
|
||||||
<!-- Translation of <sect1 id="pkgng-intro"/> is currently not available. -->
|
|
||||||
|
|
||||||
<chapter id="ports">
|
<chapter id="ports">
|
||||||
<chapterinfo>
|
<chapterinfo>
|
||||||
|
@ -606,11 +605,385 @@ docbook =
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="pkgng-intro">
|
<sect1 id="pkgng-intro">
|
||||||
<!-- XXX Not translated yet -->
|
<title>Использование <application>pkgng</application> для управления
|
||||||
<title>*Using <application>pkgng</application> for Binary Package
|
бинарными пакетами</title>
|
||||||
Management</title>
|
|
||||||
|
|
||||||
<para>üÔÏÔ ÒÁÚÄÅÌ ÎÅ ÐÅÒÅ×ÅÄÅÎ.</para>
|
<para><application>pkgng</application> — это усовершенствованный
|
||||||
|
инструмент, пришедший на смену традиционным утилитам управления пакетами
|
||||||
|
&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; 9.1 и более поздние включена программа
|
||||||
|
"самонастройки" ("bootstrap")
|
||||||
|
<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>Чтобы убедиться, что Коллекция Портов &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>. Как следствие — зависимости
|
||||||
|
не отслеживаются, и необходимые зависимые компоненты не скачиваются
|
||||||
|
с удаленного источника. В этом разделе описана работа с
|
||||||
|
<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>
|
||||||
|
|
||||||
<sect1 id="ports-using">
|
<sect1 id="ports-using">
|
||||||
|
|
Loading…
Reference in a new issue