<?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 ruby-download-http "http://cache.ruby-lang.org/pub/ruby/2.2/ruby-&ruby-version;.tar.xz">
  <!ENTITY ruby-download-ftp  " ">
<!--
  <!ENTITY ruby-download-ftp  "ftp://ftp.ruby-lang.org/pub/ruby/2.1/ruby-&ruby-version;-p&ruby-patch-version;.tar.bz2">
-->
  <!ENTITY ruby-md5sum        "54b43c6c6c9dd4c4b08ceb03ad0ded7a">
  <!ENTITY ruby-size          "9.9 MB">
  <!ENTITY ruby-buildsize     "342 MB (additional 183 MB for docs)">
  <!ENTITY ruby-time          "1.9 SBU (additional 1.1 SBU for docs and 0.2 SBU for tests)">
]>

<sect1 id="ruby" xreflabel="Ruby-&ruby-version;">
  <?dbhtml filename="ruby.html"?>

  <sect1info>
    <othername>$LastChangedBy: pierre $</othername>
    <date>$Date: 2015-02-23 16:51:12 -0500 (Mon, 23 Feb 2015) $</date>
  </sect1info>

  <title>Ruby-&ruby-version;</title>

  <indexterm zone="ruby">
    <primary sortas="a-Ruby">Ruby</primary>
  </indexterm>

  <sect2 role="package">
    <title>Introduction to Ruby</title>

    <para>
      The <application>Ruby</application> package contains the
      <application>Ruby</application> development environment. This
      is useful for object-oriented scripting.
    </para>

    &lfs77_checked;

    <bridgehead renderas="sect3">Package Information</bridgehead>
    <itemizedlist spacing="compact">
      <listitem>
        <para>
          Download (HTTP): <ulink url="&ruby-download-http;"/>
        </para>
      </listitem>
      <listitem>
        <para>
          Download (FTP): <ulink url="&ruby-download-ftp;"/>
        </para>
      </listitem>
      <listitem>
        <para>
          Download MD5 sum: &ruby-md5sum;
        </para>
      </listitem>
      <listitem>
        <para>
          Download size: &ruby-size;
        </para>
      </listitem>
      <listitem>
        <para>
          Estimated disk space required: &ruby-buildsize;
        </para>
      </listitem>
      <listitem>
        <para>
          Estimated build time: &ruby-time;
        </para>
      </listitem>
    </itemizedlist>

    <bridgehead renderas="sect3">Ruby Dependencies</bridgehead>

    <bridgehead renderas="sect4">Optional</bridgehead>
    <para role="optional">
      <xref linkend="db"/>,
      <xref linkend="doxygen"/>,
      <xref linkend="graphviz"/>,
      <xref linkend="openssl"/>,
      <xref linkend="tk"/>, and
      <ulink url="http://pyyaml.org/wiki/LibYAML">libyaml</ulink>
    </para>

    <para condition="html" role="usernotes">User Notes:
      <ulink url="&blfs-wiki;/ruby"/>
    </para>
  </sect2>

  <sect2 role="installation">
    <title>Installation of Ruby</title>

    <para>
      Install <application>Ruby</application> by running the following
      command:
    </para>

<screen><userinput>./configure --prefix=/usr   \
            --enable-shared \
            --docdir=/usr/share/doc/ruby-&ruby-version;</userinput></screen>

    <para>
      Optionally, build the CAPI documents by running the following
      commands:
    </para>

<screen><userinput>cp -v template/Doxyfile.tmpl Doxyfile &amp;&amp;
doxygen</userinput></screen>

    <para>
      Compile and link <application>Ruby</application> by running the following
      command:
    </para>

<screen><userinput>make</userinput></screen>

    <para>
      To test the results, issue: <command>make test</command>.
    </para>

    <para>
      Now, as the <systemitem class="username">root</systemitem> user:
    </para>

<screen role="root"><userinput>make install</userinput></screen>

  </sect2>

  <sect2 role="commands">
    <title>Command Explanations</title>

    <para>
      <parameter>--enable-shared</parameter>: This switch enables building of
      the <filename class="libraryfile">libruby</filename> shared library.
    </para>

    <para>
      <option>--disable-install-doc</option>: This switch disables building and
      installing rdoc indexes and C API documents.
    </para>

    <para>
      <option>--disable-install-rdoc</option>: This switch disables building
      and installing rdoc indexes.
    </para>

    <para>
      <option>--disable-install-capi</option>: This switch disables building
      and installing C API documents.
    </para>

  </sect2>

  <sect2 role="content">
    <title>Contents</title>

    <segmentedlist>
      <segtitle>Installed Programs</segtitle>
      <segtitle>Installed Libraries</segtitle>
      <segtitle>Installed Directories</segtitle>

      <seglistitem>
        <seg>
          erb, gem, irb, rake, rdoc, ri, and ruby
        </seg>
        <seg>
          libruby.so and libruby-static.a
        </seg>
        <seg>
          /usr/include/ruby-&ruby-version;
          /usr/lib/ruby,
          /usr/share/doc/ruby-&ruby-version; and
          /usr/share/ri
        </seg>
      </seglistitem>
    </segmentedlist>

    <variablelist>
      <bridgehead renderas="sect3">Short Descriptions</bridgehead>
      <?dbfo list-presentation="list"?>
      <?dbhtml list-presentation="table"?>

      <varlistentry id="ruby-prog">
        <term><command>ruby</command></term>
        <listitem>
          <para>
            is an interpreted scripting language for quick
            and easy object-oriented programming.
          </para>
          <indexterm zone="ruby ruby-prog">
            <primary sortas="b-ruby">ruby</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="irb">
        <term><command>irb</command></term>
        <listitem>
          <para>
            is the interactive interface for
            <application>Ruby</application>.
          </para>
          <indexterm zone="ruby irb">
            <primary sortas="b-irb">irb</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="erb">
        <term><command>erb</command></term>
        <listitem>
          <para>
            is Tiny eRuby. It interprets a
            <application>Ruby</application> code embedded text file.
          </para>
          <indexterm zone="ruby erb">
            <primary sortas="b-erb">erb</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="ri">
        <term><command>ri</command></term>
        <listitem>
          <para>
            displays documentation from a database on
            <application>Ruby</application> classes, modules, and methods.
          </para>
          <indexterm zone="ruby ri">
            <primary sortas="b-ri">ri</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libruby">
        <term><filename role="libraryfile">libruby.so</filename></term>
        <listitem>
          <para>
            contains the API functions required by <application>Ruby</application>.
          </para>
          <indexterm zone="ruby libruby">
            <primary sortas="c-libruby">libruby.so</primary>
          </indexterm>
        </listitem>
      </varlistentry>

    </variablelist>

  </sect2>

</sect1>
