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