glfs/networking/textweb/lynx.xml
Xi Ruoyao 2e2a28094d lynx: introduce --enable-ipv6
git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@24142 af4574ff-66df-0310-9fd7-8a98e5e911e0
2021-01-26 07:34:39 +00:00

366 lines
12 KiB
XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<!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 lynx-download-http "https://invisible-mirror.net/archives/lynx/tarballs/lynx&lynx-version;.tar.bz2">
<!ENTITY lynx-download-ftp " ">
<!ENTITY lynx-md5sum "44316f1b8a857b59099927edc26bef79">
<!ENTITY lynx-size "2.5 MB">
<!ENTITY lynx-buildsize "31 MB">
<!ENTITY lynx-time "0.3 SBU">
]>
<sect1 id="lynx" xreflabel="Lynx-&lynx-version;">
<?dbhtml filename="lynx.html"?>
<sect1info>
<othername>$LastChangedBy$</othername>
<date>$Date$</date>
</sect1info>
<title>Lynx-&lynx-version;</title>
<indexterm zone="lynx">
<primary sortas="a-Lynx">Lynx</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to Lynx</title>
<para>
<application>Lynx</application> is a text based web browser.
</para>
&lfs10_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Download (HTTP): <ulink url="&lynx-download-http;"/>
</para>
</listitem>
<listitem>
<para>
Download (FTP): <ulink url="&lynx-download-ftp;"/>
</para>
</listitem>
<listitem>
<para>
Download MD5 sum: &lynx-md5sum;
</para>
</listitem>
<listitem>
<para>
Download size: &lynx-size;
</para>
</listitem>
<listitem>
<para>
Estimated disk space required: &lynx-buildsize;
</para>
</listitem>
<listitem>
<para>
Estimated build time: &lynx-time;
</para>
</listitem>
</itemizedlist>
<!--
<bridgehead renderas="sect3">Additional Downloads</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Patch to build with openssl-1.1:
<ulink url="&patch-root;/lynx-&lynx-version;-openssl_1.1.0-1.patch"/>
</para>
</listitem>
<listitem>
<para>
Patch to build with ncurses-6.1:
<ulink url="&patch-root;/lynx-&lynx-version;-ncurses_6.1-1.patch"/>
</para>
</listitem>
</itemizedlist>
-->
<bridgehead renderas="sect3">Lynx Dependencies</bridgehead>
<!--
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended">
<xref linkend="openssl"/>
</para>
-->
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional">
<xref linkend="gnutls"/> (experimental, to replace openssl),
<xref linkend="zip"/>,
<xref linkend="unzip"/>,
an <xref linkend="server-mail"/> (that provides a
<command>sendmail</command> command), and
<xref linkend='sharutils'/> (for the <command>uudecode</command> program)
</para>
<!-- Attempt to utilize S-Lang (- -with-screen=slang) leads to a build failure -->
<para condition="html" role="usernotes">User Notes:
<ulink url="&blfs-wiki;/Lynx"/></para>
</sect2>
<sect2 role="installation">
<title>Installation of Lynx</title>
<!--
<para>
Apply a patch to build <application>Lynx</application> with openssl-1.1:
</para>
<screen><userinput>patch -p1 -i ../lynx-&lynx-version;-openssl_1.1.0-1.patch</userinput></screen>
<para>
Apply a patch to build <application>Lynx</application> with ncurses-6.1:
</para>
<screen><userinput>patch -p1 -i ../lynx-&lynx-version;-ncurses_6.1-1.patch</userinput></screen>
-->
<para>
Install <application>Lynx</application> by running the following
commands:
</para>
<screen><userinput>./configure --prefix=/usr \
--sysconfdir=/etc/lynx \
--datadir=/usr/share/doc/lynx-&lynx-version; \
--with-zlib \
--with-bzlib \
--with-ssl \
--with-screen=ncursesw \
--enable-locale-charset &amp;&amp;
make</userinput></screen>
<para>
This package does not come with a test suite.
</para>
<para>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role='root'><userinput>make install-full &amp;&amp;
chgrp -v -R root /usr/share/doc/lynx-&lynx-version;/lynx_doc</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para>
<parameter>--sysconfdir=/etc/lynx</parameter>: This parameter is
used so that the configuration files are located in
<filename class="directory">/etc/lynx</filename> instead of
<filename class="directory">/usr/etc</filename>.
</para>
<para>
<parameter>--datadir=/usr/share/doc/lynx-&lynx-version;</parameter>:
This parameter is used so that the documentation files are installed into
<filename class="directory">/usr/share/doc/lynx-&lynx-version;</filename>
instead of
<filename class="directory">/usr/share/lynx_{doc,help}</filename>.
</para>
<para>
<parameter>--with-zlib</parameter>: This enables support for
linking <filename class="libraryfile">libz</filename> into
<application>Lynx</application>.
</para>
<para>
<parameter>--with-bzlib</parameter>: This enables support for
linking <filename class="libraryfile">libbz2</filename> into
<application>Lynx</application>.
</para>
<para>
<parameter>--with-ssl</parameter>: This enables support for
linking SSL into <application>Lynx</application>.
</para>
<para>
<parameter>--with-screen=ncursesw</parameter>: This switch enables
the use of advanced wide-character support present in the system
<application>NCurses</application> library. This is needed for
proper display of characters and line wrapping in multibyte locales.
</para>
<para>
<parameter>--enable-ipv6</parameter>: This switch allows
<application>Lynx</application> to use IPv6, along with IPv4. Use
it if your ISP provides an IPv6 configuration.
</para>
<para>
<parameter>--enable-locale-charset</parameter>: This switch allows
<application>Lynx</application> to deduce the proper character encoding
for terminal output from the current locale. A configuration step is
still needed (see below), but unlike the situation without this switch,
the configuration step becomes the same for all users (without the
switch one must specify the display character set explicitly). This is
important for environments such as a LiveCD, where the amount of
system-specific configuration steps has to be reduced to the minimum.
</para>
<para>
<option>--enable-nls</option>: This switch allows
<application>Lynx</application> to print translated messages (such as
questions about cookies and SSL certificates).
</para>
<para>
<option>--with-gnutls</option>: This enables experimental support
for linking <application>GnuTLS</application> into
<application>Lynx</application>. Remove the
<parameter>--with-ssl</parameter> switch if you want to use gnutls.
</para>
<para>
<command>make install-full</command>: In addition to the standard
installation, this target installs the documentation and help files.
</para>
<para>
<command>
chgrp -v -R root /usr/share/doc/lynx-&lynx-version;/lynx_doc
</command>:
This command corrects the improper group ownership of installed
documentation files.
</para>
<!-- This was fixed in the 2.8.6 release, though it still could
be considered an issue by some
<note>
<para>
There has been a security vulnerability identified if you enable
support for CGI links by passing the <option>-enable-cgi-links</option>
parameter to <command>configure</command>. See <ulink
url="http://seclists.org/lists/vulnwatch/2005/Oct-Dec/0041.html"/> for
details.
</para>
</note>
-->
</sect2>
<sect2 role="configuration">
<title>Configuring Lynx</title>
<sect3 id="lynx-config">
<title>Config Files</title>
<para>
<filename>/etc/lynx/lynx.cfg</filename>
</para>
<indexterm zone="lynx lynx-config">
<primary sortas="e-etc-lynx-lynx.cfg">/etc/lynx/lynx.cfg</primary>
</indexterm>
</sect3>
<sect3>
<title>Configuration Information</title>
<para>
The proper way to get the display character set is to examine the
current locale. However, <application>Lynx</application> does not do
this by default. As the <systemitem class="username">root</systemitem>
user, change this setting:
</para>
<screen role="root"><userinput>sed -e '/#LOCALE/ a LOCALE_CHARSET:TRUE' \
-i /etc/lynx/lynx.cfg</userinput></screen>
<para>
The built-in editor in <application>Lynx</application> <xref
linkend="locale-wrong-multibyte-characters"/>. This issue manifests
itself in multibyte locales, e.g., as the Backspace key not erasing
non-ASCII characters properly, and as incorrect data being sent to the
network when one edits the contents of text areas. The only solution
to this problem is to configure <application>Lynx</application> to
use an external editor (bound to the <quote>Ctrl+X e</quote> key
combination by default). Still as the
<systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>sed -e '/#DEFAULT_ED/ a DEFAULT_EDITOR:vi' \
-i /etc/lynx/lynx.cfg</userinput></screen>
<para>
<application>Lynx</application> handles the following values of
the DEFAULT_EDITOR option specially by adding cursor-positioning
arguments: <quote>emacs</quote>, <quote>jed</quote>,
<quote>jmacs</quote>, <quote>joe</quote>, <quote>jove</quote>,
<quote>jpico</quote>, <quote>jstar</quote>, <quote>nano</quote>,
<quote>pico</quote>, <quote>rjoe</quote>, <quote>vi</quote> (but not
<quote>vim</quote>: in order to position the cursor in
<xref linkend="vim"/>, set this option to <quote>vi</quote>).
</para>
<para>
By default, <application>Lynx</application> doesn't save cookies
between sessions. Again as the
<systemitem class="username">root</systemitem> user, change this
setting:
</para>
<screen role="root"><userinput>sed -e '/#PERSIST/ a PERSISTENT_COOKIES:TRUE' \
-i /etc/lynx/lynx.cfg</userinput></screen>
<para>
Many other system-wide settings such as proxies can also be set
in the <filename>/etc/lynx/lynx.cfg</filename> file.
</para>
</sect3>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Program</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>lynx</seg>
<seg>None</seg>
<seg>/etc/lynx and /usr/share/doc/lynx-&lynx-version;</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="lynx-prog">
<term><command>lynx</command></term>
<listitem>
<para>
is a general purpose, text-based, distributed information
browser for the World Wide Web.
</para>
<indexterm zone="lynx lynx-prog">
<primary sortas="b-lynx">lynx</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>