glfs/general/prog/ruby.xml
2023-12-27 13:34:15 -06:00

383 lines
11 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 ruby-download-http "https://cache.ruby-lang.org/pub/ruby/&ruby-minor-version;/ruby-&ruby-version;.tar.xz">
<!ENTITY ruby-download-ftp " ">
<!ENTITY ruby-md5sum "b5e59d56faf25b1ec6445abdf203affa">
<!ENTITY ruby-size "16 MB">
<!ENTITY ruby-buildsize "774 MB (with tests and C API docs)">
<!ENTITY ruby-time "3.4 SBU (using parallelism=4; with tests and C API docs)">
]>
<sect1 id="ruby" xreflabel="Ruby-&ruby-version;">
<?dbhtml filename="ruby.html"?>
<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>
&lfs120_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">Required</bridgehead>
<para role="required">
<xref linkend="libyaml"/>
</para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional">
<xref linkend="doxygen"/>,
<xref linkend="graphviz"/>,
<xref linkend="rust"/>,
<xref linkend="tk"/>,
<xref linkend="valgrind"/>,
&berkeley-db; and
<ulink url="http://dtrace.org/blogs/about/">DTrace</ulink>
</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 \
--without-valgrind \
--without-baseruby \
--docdir=/usr/share/doc/ruby-&ruby-version; &amp;&amp;
make</userinput></screen>
<para>
Optionally, build the CAPI documents by running the following
commands:
</para>
<screen><userinput>make capi</userinput></screen>
<para>
To test the results, issue: <command>make -k check</command>. There are over
27,000 tests. Some tests related to ipv6 may indicate errors. If the
tests are run in a directory that has a world writable component (e.g.
/tmp) then several additional tests may fail. Three tests are known
to fail.
</para>
<!-- With 3.0.2:
Finished tests in 443.541527s, 47.5739 tests/s, 6031.9921 assertions/s.
21101 tests, 2675439 assertions, 4 failures, 1 errors, 45 skips
with 3.2.0 there are several summaries:
* PASS all 1789 tests
* Finished tests in 6.815561s, 45.6309 tests/s, 264.2482 assertions/s.
311 tests, 1801 assertions, 0 failures, 0 errors, 12 skips
* Finished tests in 462.613063s, 50.5649 tests/s, 12069.0885 assertions/s.
23392 tests, 5583318 assertions, 3 failures, 0 errors, 79 skips
with 3.3.0
* PASS all 1871 tests
* Finished tests in 5.118113s, 63.3046 tests/s, 365.5644 assertions/s.
324 tests, 1871 assertions, 0 failures, 0 errors, 24 skips
* Finished tests in 98.164220s, 270.7809 tests/s, 64362.7996 assertions/s.
26581 tests, 6318124 assertions, 3 failures, 0 errors, 202 skips
* Finished in 6.226990 seconds
3728 files, 32870 examples, 189937 expectations, 0 failures, 7 errors, 0 tagged
* Finished in 1.03 seconds (files took 0.115 seconds to load)
151 examples, 0 failures, 1 pending
-->
<para>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>make install</userinput></screen>
<note>
<para>
If you have Ruby-On-Rails applications installed and did an
upgrade of <application>Ruby</application> by installing this
package, you might need to run an update there, too
(as the &root; user):
</para>
<screen role="nodump"><userinput>cd /path/to/web/app
bundle update rake</userinput></screen>
<para>
and restart the webserver which serves the application.
</para>
</note>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para>
<parameter>--enable-shared</parameter>: This switch enables building
the <filename class="libraryfile">libruby</filename> shared library.
</para>
<para>
<parameter>--without-baseruby</parameter>: This switch prevents using the
system <command>ruby</command> if it is already installed. The build
system will use the newly built version instead.
</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>
bundle,
bundler,
erb,
gem,
irb,
racc,
rake,
rbs,
rdbg,
rdoc,
ri,
ruby, and
typeprof
</seg>
<seg>
libruby.so
</seg>
<seg>
/usr/include/ruby-&ruby-minor-version;.0,
/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="bundle">
<term><command>bundle</command></term>
<listitem>
<para>
creates bundles of Ruby Gems
</para>
<indexterm zone="ruby bundle">
<primary sortas="b-bundle">bundle</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="bundler">
<term><command>bundler</command></term>
<listitem>
<para>
manages an application's dependencies throughout it's lifecycle
</para>
<indexterm zone="ruby bundler">
<primary sortas="b-bundler">bundler</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="erb">
<term><command>erb</command></term>
<listitem>
<para>
is a command line front-end for eRuby, which provides a templating
system for <application>Ruby</application>
</para>
<indexterm zone="ruby erb">
<primary sortas="b-erb">erb</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gem">
<term><command>gem</command></term>
<listitem>
<para>
is the command for RubyGems, which is a sophisticated package
manager for <application>Ruby</application>. This is similar
to Python's 'pip' command
</para>
<indexterm zone="ruby gem">
<primary sortas="b-gem">gem</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="rake">
<term><command>rake</command></term>
<listitem>
<para>
is a make-like build utility for <application>Ruby</application>
</para>
<indexterm zone="ruby rake">
<primary sortas="b-rake">rake</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="rdbg">
<term><command>rdbg</command></term>
<listitem>
<para>
is an interactive debugger for <application>Ruby</application>
</para>
<indexterm zone="ruby rdbg">
<primary sortas="b-rdbg">rdbg</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="rdoc">
<term><command>rdoc</command></term>
<listitem>
<para>
generates <application>Ruby</application> documentation
</para>
<indexterm zone="ruby rdoc">
<primary sortas="b-rdoc">rdoc</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="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="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>