169 lines
9.9 KiB
HTML
169 lines
9.9 KiB
HTML
<!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>
|
||
|
||
|