lfs-ru/chapter08/tcl.xml
2024-03-29 16:58:17 +05:00

189 lines
7.5 KiB
XML
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.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities;
<!ENTITY tdbc-ver "1.1.7">
<!ENTITY itcl-ver "4.2.4">
]>
<sect1 id="ch-system-tcl" role="wrap">
<?dbhtml filename="tcl.html"?>
<sect1info condition="script">
<productname>tcl</productname>
<productnumber>&tcl-version;</productnumber>
<address>&tcl-url;</address>
</sect1info>
<title>Tcl-&tcl-version;</title>
<indexterm zone="ch-system-tcl">
<primary sortas="a-Tcl">Tcl</primary>
</indexterm>
<sect2 role="package">
<title/>
<para>Пакет <application>Tcl</application> содержит Tool Command Language,
надежный скриптовый язык общего назначения. Пакет <application>Expect</application>
написан на языке <application>Tcl</application> (произносится как "тикл").</para>
<segmentedlist>
<segtitle>&buildtime;</segtitle>
<segtitle>&diskspace;</segtitle>
<seglistitem>
<seg>&tcl-tmp-sbu;</seg>
<seg>&tcl-tmp-du;</seg>
</seglistitem>
</segmentedlist>
</sect2>
<sect2 role="installation">
<title>Установка пакета Tcl</title>
<para>Этот пакет и следующие два (Expect и DejaGNU) устанавливаются для поддержки
возможности тестирования Binutils, GCC и других пакетов. Установка трех пакетов
для целей тестирования может показаться избыточной, но вы будете чувствовать себя
увереннее, когда знаете, что наиболее важные инструменты работают правильно.</para>
<para>Подготовьте Tcl к компиляции:</para>
<screen><userinput remap="configure">SRCDIR=$(pwd)
cd unix
./configure --prefix=/usr \
--mandir=/usr/share/man</userinput></screen>
<para>Соберите пакет:</para>
<screen><userinput remap="make">make
sed -e "s|$SRCDIR/unix|/usr/lib|" \
-e "s|$SRCDIR|/usr/include|" \
-i tclConfig.sh
sed -e "s|$SRCDIR/unix/pkgs/tdbc&tdbc-ver;|/usr/lib/tdbc&tdbc-ver;|" \
-e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;/generic|/usr/include|" \
-e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;/library|/usr/lib/tcl8.6|" \
-e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;|/usr/include|" \
-i pkgs/tdbc&tdbc-ver;/tdbcConfig.sh
sed -e "s|$SRCDIR/unix/pkgs/itcl&itcl-ver;|/usr/lib/itcl&itcl-ver;|" \
-e "s|$SRCDIR/pkgs/itcl&itcl-ver;/generic|/usr/include|" \
-e "s|$SRCDIR/pkgs/itcl&itcl-ver;|/usr/include|" \
-i pkgs/itcl&itcl-ver;/itclConfig.sh
unset SRCDIR</userinput></screen>
<para>Различные инструкции <quote>sed</quote> после команды
<quote>make</quote> удаляют ссылки на каталог сборки из файлов конфигурации и заменяют
их на созданные каталоги. Это необязательно для остальной части LFS, но может
понадобиться в случае, когда пакет, собранный позже, использует Tcl.</para>
<para>Чтобы протестировать пакет, выполните:</para>
<screen><userinput remap="test">make test</userinput></screen>
<para>Установите пакет:</para>
<screen><userinput remap="install">make install</userinput></screen>
<para>Сделайте установленную библиотеку доступной для записи, чтобы позже можно было
удалить отладочные символы:</para>
<screen><userinput remap="install">chmod -v u+w /usr/lib/libtcl&tcl-major-version;.so</userinput></screen>
<para>Установите заголовочные файлы Tcl. Они потребуются для следующего пакета - Expect.</para>
<screen><userinput remap="install">make install-private-headers</userinput></screen>
<para>Теперь создайте необходимую символическую ссылку:</para>
<screen><userinput remap="install">ln -sfv tclsh&tcl-major-version; /usr/bin/tclsh</userinput></screen>
<para>Переименуйте справочную страницу, которая конфликтует со справочной страницей Perl:</para>
<screen><userinput remap="install">mv /usr/share/man/man3/{Thread,Tcl_Thread}.3</userinput></screen>
<para>При необходимости установите документацию, выполнив следующие команды:</para>
<screen><userinput remap="install">cd ..
tar -xf ../tcl&tcl-version;-html.tar.gz --strip-components=1
mkdir -v -p /usr/share/doc/tcl-&tcl-version;
cp -v -r ./html/* /usr/share/doc/tcl-&tcl-version;</userinput></screen>
</sect2>
<sect2 id="contents-tcl" role="content">
<title>Содержимое пакета Tcl</title>
<segmentedlist>
<segtitle>Установленные программы</segtitle>
<segtitle>Установленные библиотеки</segtitle>
<seglistitem>
<seg>
tclsh (ссылка на tclsh&tcl-major-version;) и
tclsh&tcl-major-version;
</seg>
<seg>
libtcl&tcl-major-version;.so и
libtclstub&tcl-major-version;.a
</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Краткое описание</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="tclsh&tcl-major-version;">
<term><command>tclsh&tcl-major-version;</command></term>
<listitem>
<para>Командная оболочка Tcl</para>
<indexterm zone="ch-system-tcl tclsh&tcl-major-version;">
<primary sortas="b-tclsh&tcl-major-version;">tclsh&tcl-major-version;</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="tclsh">
<term><command>tclsh</command></term>
<listitem>
<para>Ссылка на tclsh&tcl-major-version;</para>
<indexterm zone="ch-system-tcl tclsh">
<primary sortas="b-tclsh">tclsh</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libtcl&tcl-major-version;.so">
<term><filename class="libraryfile">libtcl&tcl-major-version;.so</filename></term>
<listitem>
<para>Библиотека Tcl</para>
<indexterm zone="ch-system-tcl libtcl&tcl-major-version;.so">
<primary sortas="c-libtcl&tcl-major-version;.so">libtcl&tcl-major-version;.so</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libtclstub&tcl-major-version;.a">
<term><filename class="libraryfile">libtclstub&tcl-major-version;.a</filename></term>
<listitem>
<para>Библиотека-заглушка Tcl</para>
<indexterm zone="ch-system-tcl libtclstub&tcl-major-version;.a">
<primary sortas="c-libtclstub&tcl-major-version;.a">libtclstub&tcl-major-version;.a</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>