Introduction to Ruby
The Ruby package contains the
Ruby development environment. This
is useful for object-oriented scripting.
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.4/ruby-3.4.1.tar.xz
-
Download MD5 sum: 45bf4f2706ee6d07133f3355e581f920
-
Download size: 16 MB
-
Estimated disk space required: 1.6 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.13.1, Graphviz-12.2.1,
rustc-1.83.0, Tk-8.6.15, Valgrind-3.24.0,
Berkeley
DB (deprecated) and DTrace
Note
An Internet connection is needed for some tests of this package.
Installation of Ruby
Note
If you have installed a package that provides a ruby gem, such as
asciidoctor-2.0.23, you must reinstall
those packages when upgrading to a new minor version 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.4.1 &&
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. Two tests named
OpenSSL::TestX509Request#test_version
and TestNetHTTPS#test_session_reuse_but_expire
are
known to fail.
Now, as the root
user:
make install
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.