glfs/general/prog/expect.xml

454 lines
16 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities;
<!-- Inserted as a reminder to do this. The mention of a test suite
is usually right before the root user installation commands. Please
delete these 12 (including one blank) lines after you are done.-->
<!-- Use one of the two mentions below about a test suite,
delete the line that is not applicable. Of course, if the
test suite uses syntax other than "make check", revise the
line to reflect the actual syntax to run the test suite -->
<!-- <para>This package does not come with a test suite.</para> -->
<!-- <para>To test the results, issue: <command>make check</command>.</para> -->
<!ENTITY expect-download-http "http://expect.nist.gov/old/expect-&expect-version;.tar.gz">
<!ENTITY expect-download-ftp " ">
<!ENTITY expect-md5sum "230400129630335b3060a42f66fec11d">
<!ENTITY expect-size "525 KB">
<!ENTITY expect-buildsize "4.6 MB">
<!ENTITY expect-time "0.07 SBU">
]>
<sect1 id="expect" xreflabel="Expect-&expect-version;">
<?dbhtml filename="expect.html"?>
<sect1info>
<othername>$LastChangedBy$</othername>
<date>$Date$</date>
<keywordset>
<keyword role="package">expect-&expect-version;.tar</keyword>
<keyword role="ftpdir">expect</keyword>
</keywordset>
</sect1info>
<title>Expect-&expect-version;</title>
<indexterm zone="expect">
<primary sortas="a-Expect">Expect</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to Expect</title>
<para>The <application>Expect</application> package contains tools for
automating interactive applications such as <command>telnet</command>,
<command>ftp</command>, <command>passwd</command>,
<command>fsck</command>, <command>rlogin</command>,
<command>tip</command>, etc. <application>Expect</application> is
also useful for testing these same applications as well as easing all sorts of
tasks that are prohibitively difficult with anything else.</para>
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>Download (HTTP): <ulink url="&expect-download-http;"/></para>
</listitem>
<listitem>
<para>Download (FTP): <ulink url="&expect-download-ftp;"/></para>
</listitem>
<listitem>
<para>Download MD5 sum: &expect-md5sum;</para>
</listitem>
<listitem>
<para>Download size: &expect-size;</para>
</listitem>
<listitem>
<para>Estimated disk space required: &expect-buildsize;</para>
</listitem>
<listitem>
<para>Estimated build time: &expect-time;</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">Additional Downloads</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>Required Patch: <ulink
url="&patch-root;/expect-&expect-version;-spawn-2.patch"/></para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">Expect Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required"><xref linkend="tcl"/></para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional"><xref linkend="tk"/></para>
<para condition="html" role="usernotes">User Notes:
<ulink url="&blfs-wiki;/expect"/></para>
</sect2>
<sect2 role="installation">
<title>Installation of Expect</title>
<para>Install <application>Expect</application> by running the following
commands:</para>
<screen><userinput>patch -Np1 -i ../expect-&expect-version;-spawn-2.patch &amp;&amp;
./configure --prefix=/usr --with-tcl=/usr/lib \
--with-tclinclude=/usr/include/tcl8.4 --enable-shared &amp;&amp;
make</userinput></screen>
<para>Now, as the <systemitem class="username">root</systemitem> user:</para>
<screen role="root"><userinput>make install &amp;&amp;
ln -sf ../libexpect5.43.a /usr/lib/expect5.43</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para><parameter>--enable-shared</parameter>: This option enables
building the shared library.</para>
<para><option>--with-tk=/usr/lib</option>: Use this option to link in the
<application>Tk</application> library.</para>
<para><command>ln -sf ../libexpect5.43.a /usr/lib/expect5.43</command>: This
command creates a required link to the static library.</para>
</sect2>
<sect2 role="configuration">
<title>Configuring Expect</title>
<sect3 id="expect-config">
<title>Config Files</title>
<para><filename>$exp_library/expect.rc</filename> and
<filename>~/.expect.rc</filename></para>
<indexterm zone="expect expect-config">
<primary sortas="e-AA.expect.rc">~/.expect.rc</primary>
</indexterm>
<indexterm zone="expect expect-config">
<primary sortas="e-Aexp_library-expect.rc">$exp_library/expect.rc</primary>
</indexterm>
</sect3>
<sect3>
<title>Configuration Information</title>
<para>Reference the <command>expect</command> man page for information about
utilizing the <filename>expect.rc</filename> configuration files. Additionally,
many of the tools contained in the <application>Expect</application> package
will use their own configuration files. Reference the respective man page, or
examine the script directly for configuration file information.</para>
</sect3>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Library</segtitle>
<segtitle>Installed Directory</segtitle>
<seglistitem>
<seg>autoexpect, autopasswd, cryptdir, decryptdir, dislocate, expect, ftp-rfc,
kibitz, lpunlock, mkpasswd, passmass, rftp, rlogin-cwd, timed-read, timed-run,
unbuffer, weather, and optionally (if <application>Expect</application> was
linked against <application>Tk</application>), expectk, multixterm,
tknewsbiff, tkpasswd, xkibitz, and xpstat</seg>
<seg>libexpect5.43.{so,a}</seg>
<seg>/usr/lib/expect5.43</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="autoexpect">
<term><command>autoexpect</command></term>
<listitem>
<para>generates an <application>Expect</application> script from
watching a session.</para>
<indexterm zone="expect autoexpect">
<primary sortas="b-autoexpect">autoexpect</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="autopasswd">
<term><command>autopasswd</command></term>
<listitem>
<para>is a wrapper to make <command>passwd</command>(1) be
non-interactive.</para>
<indexterm zone="expect autopasswd">
<primary sortas="b-autopasswd">autopasswd</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="cryptdir">
<term><command>cryptdir</command></term>
<listitem>
<para>encrypts all files in a directory.</para>
<indexterm zone="expect cryptdir">
<primary sortas="b-cryptdir">cryptdir</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="decryptdir">
<term><command>decryptdir</command></term>
<listitem>
<para>decrypts all files in a directory.</para>
<indexterm zone="expect decryptdir">
<primary sortas="b-decryptdir">decryptdir</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="dislocate">
<term><command>dislocate</command></term>
<listitem>
<para>allows processes to be disconnected and reconnected to a
terminal.</para>
<indexterm zone="expect dislocate">
<primary sortas="b-dislocate">dislocate</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="expect-prog">
<term><command>expect</command></term>
<listitem>
<para>is a program that <quote>talks</quote> to other interactive
programs according to a script.</para>
<indexterm zone="expect expect-prog">
<primary sortas="b-expect">expect</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="ftp-rfc">
<term><command>ftp-rfc</command></term>
<listitem>
<para>retrieves an RFC (or the index) from UUNET.</para>
<indexterm zone="expect ftp-rfc">
<primary sortas="b-ftp-rfc">ftp-rfc</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="kibitz">
<term><command>kibitz</command></term>
<listitem>
<para>allows two (or more) people to interact with one shell
(or any arbitrary program).</para>
<indexterm zone="expect kibitz">
<primary sortas="b-kibitz">kibitz</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="lpunlock">
<term><command>lpunlock</command></term>
<listitem>
<para>unhangs a printer which claims it is <quote>waiting for
lock</quote>.</para>
<indexterm zone="expect lpunlock">
<primary sortas="b-lpunlock">lpunlock</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="mkpasswd">
<term><command>mkpasswd</command></term>
<listitem>
<para>generates passwords and can apply them automatically to
users.</para>
<indexterm zone="expect mkpasswd">
<primary sortas="b-mkpasswd">mkpasswd</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="passmass">
<term><command>passmass</command></term>
<listitem>
<para>changes a password on multiple machines.</para>
<indexterm zone="expect passmass">
<primary sortas="b-passmass">passmass</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="rftp">
<term><command>rftp</command></term>
<listitem>
<para>is much like <command>ftp</command> except it uses
<option>~g</option> and <option>~p</option> instead of
<option>mget</option> and <option>mput</option>.</para>
<indexterm zone="expect rftp">
<primary sortas="b-rftp">rftp</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="rlogin-cwd">
<term><command>rlogin-cwd</command></term>
<listitem>
<para>is <command>rlogin</command> except it uses the local current
directory as the current working directory on the remote machine.</para>
<indexterm zone="expect rlogin-cwd">
<primary sortas="b-rlogin-cwd">rlogin-cwd</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="timed-read">
<term><command>timed-read</command></term>
<listitem>
<para> reads a complete line from stdin and aborts after a given
number of seconds.</para>
<indexterm zone="expect timed-read">
<primary sortas="b-timed-read">timed-read</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="timed-run">
<term><command>timed-run</command></term>
<listitem>
<para>runs a program for a given amount of time.</para>
<indexterm zone="expect timed-run">
<primary sortas="b-timed-run">timed-run</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="unbuffer">
<term><command>unbuffer</command></term>
<listitem>
<para>disables the output buffering that occurs when program output
is redirected.</para>
<indexterm zone="expect unbuffer">
<primary sortas="b-unbuffer">unbuffer</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="weather">
<term><command>weather</command></term>
<listitem>
<para>retrieves a weather report (courtesy University of Michigan)
for a given city or geographical area.</para>
<indexterm zone="expect weather">
<primary sortas="b-weather">weather</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="expectk">
<term><command>expectk</command></term>
<listitem>
<para>is a combination of <application>Expect</application> with
<application>Tk</application> and should run any <command>wish</command>
or <application>Expect</application> script.</para>
<indexterm zone="expect expectk">
<primary sortas="b-expectk">expectk</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="multixterm">
<term><command>multixterm</command></term>
<listitem>
<para>creates multiple <command>xterm</command>s that can be driven
together or separately.</para>
<indexterm zone="expect multixterm">
<primary sortas="b-multixterm">multixterm</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="tknewsbiff">
<term><command>tknewsbiff</command></term>
<listitem>
<para>pops up a window when there is unread news in your favorite
newsgroups and removes the window after you've read the news.</para>
<indexterm zone="expect tknewsbiff">
<primary sortas="b-tknewsbiff">tknewsbiff</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="tkpasswd">
<term><command>tkpasswd</command></term>
<listitem>
<para>is a script to change passwords using
<command>expectk</command>.</para>
<indexterm zone="expect tkpasswd">
<primary sortas="b-tkpasswd">tkpasswd</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="xkibitz">
<term><command>xkibitz</command></term>
<listitem>
<para>allows users in separate <command>xterm</command>s to share
one shell (or any program that runs in an <command>xterm</command>).</para>
<indexterm zone="expect xkibitz">
<primary sortas="b-xkibitz">xkibitz</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="xpstat">
<term><command>xpstat</command></term>
<listitem>
<para>is a script that acts as a front-end for <command>xpilot</command>.</para>
<indexterm zone="expect xpstat">
<primary sortas="b-xpstat">xpstat</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libexpect">
<term><filename class='libraryfile'>libexpect5.43.{so,a}</filename></term>
<listitem>
<para> contains functions that allow <application>Expect</application> to be
used as a <application>Tcl</application> extension or to be used directly from
C or C++ (without <application>Tcl</application>).</para>
<indexterm zone="expect libexpect">
<primary sortas="c-libexpect5.43">libexpect5.43.{so,a}</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>