projman/hlp/ru/tcl/package.html
2018-02-05 17:23:37 +03:00

169 lines
9.9 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
<html>
<head>
<title>package</title>
</head>
<body>
<h1>package</h1>
<p>Команда загрузки пакетов библиотек и контроля версий.</p>
<h2>СИНТАКСИС</h2>
<pre>
<a href=#forget><strong>package</strong> <strong>forget</strong></a> <em>package</em>
<a href=#ifneeded><strong>package</strong> <strong>ifneeded</strong></a> <em>package</em> <em>version</em> ?<em>script</em>?
<a href=#names><strong>package</strong> <strong>names</strong></a>
<a href=#provide><strong>package</strong> <strong>provide</strong></a> <em>package</em> ?<em>version</em>?
<a href=#require><strong>package</strong> <strong>require</strong> ?<strong>-exact</strong>?</a> <em>package</em> ?<em>version</em>?
<a href=#unknown><strong>package</strong> <strong>unknown</strong></a> ?<em>command</em>?
<a href=#vcompare><strong>package</strong> <strong>vcompare</strong></a> <em>version1</em> <em>version2</em>
<a href=#versions><strong>package</strong> <strong>versions</strong></a> <em>package</em>
<a href=#vsatisfies><strong>package</strong> <strong>vsatisfies</strong></a> <em>version1</em> <em>version2</em>
</pre>
<h2>ОПИСАНИЕ</h2>
<p>Команда поддерживает простую базу данных со сведениями о том,
какие пакеты библиотечных функций доступны для использования в
данном интерпретаторе, и как их загрузить в интерпретатор. Она
поддерживает многоверсионность пакетов и гарантирует загрузку в
приложение необходимой версии пакета. При этом она обеспечивает
контроль непротиворечивости версий. Обычно в Tcl-скриптах
достаточно использовать команды <strong>package</strong> <strong>require</strong> и
<strong>package</strong> <strong>provide</strong>. Остальные команды предназначены в
первую очередь для системных скриптов, которые поддерживают базу
данных пакетов.</p>
<p>Поведение команды <strong>package</strong> определяется ее первым
аргументом. Ниже описаны возможные формы команды.</p>
<dl>
<dt><a name=forget></a><strong>package</strong> <strong>forget</strong>
<em>package</em></dt>
<dd>Удаляет информацию о пакете из интерпретатора, включая как
информацию, возвращаемую командой <strong>package</strong>
<strong>ifneeded</strong>, так и информацию, возвращаемую командой
<strong>package</strong> <strong>provide</strong>.</dd>
<dt><a name=ifneeded></a><strong>package</strong>
<strong>ifneeded</strong> <em>package</em> <em>version</em> ?<em>script</em>?</dt>
<dd>Команда используется в системных скриптах. Если указана
конкретная версия и скрипт, заносит в базу данных информацию о
том, что соответствующая версия пакета доступна и может быть
загружена в интерпретатор с помощью скрипта
<em>script</em>. Если в базе данных уже хранится информация о
скрипте, она обновляется. Если скрипт не указан, возвращается
текущий скрипт.</dd>
<dt><a name=names></a><strong>package</strong> <strong>names</strong></dt>
<dd>Возвращает список всех пакетов в интерпретаторе, для которых
известна доступная версия (заданная с помощью команды
<strong>package</strong> <strong>provide</strong>) или скрипт загрузки (заданный
командой <strong>package</strong> <strong>ifneeded</strong>).</dd>
<dt><a name=provide></a><strong>package</strong> <strong>provide</strong>
<em>package</em> ?<em>version</em>?</dt>
<dd>Команда используется для того, чтобы указать, что версия
<em>version</em> пакета <em>package</em> загружена в
интерпретатор. Если ранее была загружена другая версия,
возвращает ошибку. Если версия не указана, возвращает
загруженную версию.</dd>
<dt><a name=require></a><strong>package</strong> <strong>require</strong>
?<strong>-exact</strong>? <em>package</em> ?<em>version</em>?</dt>
<dd><p>Команда используется, если для выполнения дальнейшего
кода необходим библиотечный пакет <em>package</em> версии <em>
version</em>. Команда возвращает номер загруженной версии или
ошибку. Если присутствуют оба аргумента <strong>-exact</strong> и
<em>version</em>, то команда загружает именно указанную версию
(или выдает ошибку, если эта версия недоступна). Если
присутствует номер версии, а <strong>-exact</strong> опущено, то команда
загружает указанную версию или более позднюю, но с тем же
старшим номером версии (2.7, но не 3.1, когда указана версия
2.5).</p>
<p>Если база данных не содержит необходимой версии, а в
интерпретаторе определена команда для <strong>packageunknown</strong>
(см. ниже), то она исполняется, после чего повторно
проверяется доступность необходимой версии. Если версия
по-прежнему недоступна, команда возвращает ошибку.</p>
</dd>
<dt><a name=unknown></a><strong>package</strong> <strong>unknown</strong>
?<em>command</em>?</dt>
<dd><p>Команда <em>последней надежды</em> при поиске необходимой
версии пакета. Если аргумент <em>command</em> указан, то он
дополняется именем пакета и версии и полученный скрипт
выполняется. Если версия не указана, подставляется пустая
строка.</p>
<p>Если аргумент <em>command</em> не указан, возвращает текущий
скрипт, заданный для команды <strong>package</strong>
<strong>unknown</strong>.</p>
</dd>
<dt><a name=vcompare></a><strong>package</strong>
<strong>vcompare</strong> <em>version1</em> <em>version2</em></dt>
<dd>Команда сравнения версий. Возвращает <strong>-1</strong>, если
<em>version1</em> более ранняя версия, чем <em>version2</em>,
<strong>1</strong> - в противном случае, и <strong>0</strong>, если они
равны.</dd>
<dt><a name=versions></a><strong>package</strong>
<strong>versions</strong> <em>package</em></dt>
<dd>Возвращает список всех доступных версий пакета (информация о
которых занесена в базу данных с помощью команды
<strong>package</strong> <strong>ifneeded</strong>).</dd>
<dt><a name=vsatisfies></a><strong>package</strong>
<strong>vsatisfies</strong> <em>version1</em> <em>version2</em></dt>
<dd>возвращает <strong>1</strong>, если у <em>version1</em> и
<em>version2</em> совпадают старшие номера, а младший номер у
version1 не меньше, чем у <em>version2</em>, и <strong>0</strong> - в
противном случае.</dd>
</dl>
<h2><a name=ИНДЕКСЫ ПАКЕТОВ></a>ИНДЕКСЫ ПАКЕТОВ</h2>
<p>Рекомендованный способ работы с пакетами в Tcl состоит в том,
чтобы включать в скрипты команды <a
href=#require><strong>package</strong> <strong>require</strong></a> и <a
href=#provide><strong>package</strong>
<strong>provide</strong></a> и использовать процедуру <strong><a
href=pkg_mkIndex.html>pkg_mkIndex</a></strong> (см.
соответствующие пункты) для создания индексных файлов для
пакетов. Это обеспечивает автоматическую загрузку необходимых
пакетов.</p>
<p>См.также <a href=close.html><strong>close</strong></a>(n), <a
href=filename.html><strong>filename</strong></a>(n), <a href=
gets.html><strong>gets</strong></a>(n), <a
href=read.html><strong>read</strong></a>(n), <a
href=puts.html><strong>puts</strong></a>(n), <a
href=exec.html><strong>exec</strong></a>(n).</p>
</body>
</html>