Ruby-3.3.6

Introduction to Ruby

The Ruby package contains the Ruby development environment. This is useful for object-oriented scripting.

[Note]

Note

Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.

Package Information

  • Download (HTTP): https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.6.tar.xz

  • Download MD5 sum: f5eb601e5c8b37ee8169b82fb528b821

  • Download size: 16 MB

  • Estimated disk space required: 1.4 GB (with C API docs and tests)

  • Estimated build time: 1.7 SBU (with C API docs; add 1.0 SBU for tests; all with using parallelism=4)

Ruby Dependencies

Required

libyaml-0.2.5

Optional

Doxygen-1.12.0, Graphviz-12.2.0, rustc-1.82.0, Tk-8.6.15, Valgrind-3.24.0, Berkeley DB (deprecated) and DTrace

[Note]

Note

An Internet connection is needed for some tests of this package.

Installation of Ruby

Install Ruby by running the following command:

./configure --prefix=/usr         \
            --disable-rpath       \
            --enable-shared       \
            --without-valgrind    \
            --without-baseruby    \
            ac_cv_func_qsort_r=no \
            --docdir=/usr/share/doc/ruby-3.3.6 &&
make

Optionally, build the CAPI documents by running the following commands:

make capi

To test the results, issue: make -k check. If the environment has variables related to proxy settings (all_proxy, ALL_PROXY, http_proxy, and etc.) set, the test suite will bail out early with messages like net/ftp is not found. Make sure that you unset these variables for the test suite. There are over 26,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 sub-tests of test_config.rb are known to fail.

Now, as the root user:

make install
[Note]

Note

If you have Ruby-On-Rails applications installed and did an upgrade of Ruby by installing this package, you might need to run an update there, too (as the root user):

cd /path/to/web/app
bundle update rake

and restart the webserver which serves the application.

Command Explanations

--disable-rpath: This switch disables embedding /usr/lib as a library search path into the ruby program. Doing so is not needed (because /usr/lib is a system library path) and it may cause the test suite running with the system libruby.so instead of the just built one when Ruby has been installed.

--enable-shared: This switch enables building the libruby shared library.

--without-baseruby: This switch prevents using the system ruby if it is already installed. The build system will use the newly built version instead.

ac_cv_func_qsort_r=no: This switch prevents using the qsort_r function from Glibc. Ruby makes some aggressive optimization assuming some implementation details of the sorting algorithm, but the assumption is not true with the Glibc implementation. With this switch Ruby will use its own sort implementation instead.

--disable-install-doc: This switch disables building and installing rdoc indexes and C API documents.

--disable-install-rdoc: This switch disables building and installing rdoc indexes.

--disable-install-capi: This switch disables building and installing C API documents.

Contents

Installed Programs: bundle, bundler, erb, gem, irb, racc, rake, rbs, rdbg, rdoc, ri, ruby, and typeprof
Installed Libraries: libruby.so
Installed Directories: /usr/include/ruby-3.3.0, /usr/lib/ruby, /usr/share/doc/ruby-3.3.6 and /usr/share/ri

Short Descriptions

bundle

creates bundles of Ruby Gems

bundler

manages an application's dependencies throughout it's lifecycle

erb

is a command line front-end for eRuby, which provides a templating system for Ruby

gem

is the command for RubyGems, which is a sophisticated package manager for Ruby. This is similar to Python's 'pip' command

irb

is the interactive interface for Ruby

rake

is a make-like build utility for Ruby

rdbg

is an interactive debugger for Ruby

rdoc

generates Ruby documentation

ri

displays documentation from a database on Ruby classes, modules, and methods

ruby

is an interpreted scripting language for quick and easy object-oriented programming

libruby.so

contains the API functions required by Ruby