Ruby-3.3.0

Introduction to Ruby

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

This package is known to build and work properly using an LFS 12.1 platform.

Package Information

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

  • Download MD5 sum: b5e59d56faf25b1ec6445abdf203affa

  • Download size: 16 MB

  • Estimated disk space required: 774 MB (with tests and C API docs)

  • Estimated build time: 3.4 SBU (using parallelism=4; with tests and C API docs)

Ruby Dependencies

Required

libyaml-0.2.5

Optional

Doxygen-1.10.0, Graphviz-10.0.1, rustc-1.76.0, Tk-8.6.13, Valgrind-3.22.0, Berkeley DB (deprecated) and DTrace

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.0 &&
make

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

make capi

To test the results, issue: make -j1 -k check. Note that running the test suite with parallel jobs may cause test failures outputted as cryptic unknown object messages, resulting a summary falsely claiming all tests passed. 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. So make sure unsetting them for the test suite. There are over 26,000 tests. 12 tests are known to fail because of expired certificates in the test data. 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.

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.0 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