glfs/general/prog/ruby.xml

367 lines
10 KiB
XML
Raw Normal View History

<?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 " ">
2022-12-30 01:27:24 +08:00
<!ENTITY ruby-md5sum "169bbbd82b7ced3d39a4be36f50db459">
<!ENTITY ruby-size "14 MB">
<!ENTITY ruby-buildsize "574 MB (add 547 MB for C API docs)">
<!ENTITY ruby-time "1.3 SBU (using parallelism=4; add 5.0 SBU for tests; add 0.5 SBU for 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>
2022-08-23 06:06:21 +08:00
&lfs112_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="libyaml"/>,
<xref linkend="tk"/>,
<xref linkend="valgrind"/>, and
<ulink url="http://dtrace.org/blogs/about/">DTrace</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; &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 check</command>. There are over
2022-12-30 01:27:24 +08:00
25,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. A few tests may fail due
to system configuration expectations.
</para>
<!-- With 3.0.2:
2022-12-30 01:27:24 +08:00
Finished tests in 443.541527s, 47.5739 tests/s, 6031.9921 assertions/s.
2023-01-29 20:51:59 +08:00
21101 tests, 2675439 assertions, 4 failures, 1 errors, 45 skips
2022-12-30 01:27:24 +08:00
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
-->
<para>
Now, as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>make install</userinput></screen>
2022-11-28 19:27:11 +08:00
<note>
<para>
If you have Ruby-On-Rails applications installed and did an
upgrade of <application>Ruby</application> by installing this
2022-11-30 21:50:05 +08:00
package, you might need to run an update there, too
(as the &root; user):
2022-11-28 19:27:11 +08:00
</para>
2022-11-30 21:50:05 +08:00
<screen role="nodump"><userinput>cd /path/to/web/app
bundle update rake</userinput></screen>
<para>
and restart the webserver which serves the application.
</para>
2022-11-28 19:27:11 +08:00
</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>
<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>
<para>
<option>--without-baseruby</option>: 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>
</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>