summaryrefslogtreecommitdiff
path: root/ruby/BuildInstructionsLinux.md
diff options
context:
space:
mode:
Diffstat (limited to 'ruby/BuildInstructionsLinux.md')
-rw-r--r--ruby/BuildInstructionsLinux.md93
1 files changed, 62 insertions, 31 deletions
diff --git a/ruby/BuildInstructionsLinux.md b/ruby/BuildInstructionsLinux.md
index e13d5dda574..4bca4b13ab6 100644
--- a/ruby/BuildInstructionsLinux.md
+++ b/ruby/BuildInstructionsLinux.md
@@ -1,16 +1,22 @@
# Building Ice for Ruby on Linux
-This page describes how to build and install Ice for Ruby from source code. If you prefer, you can also download [binary distributions](https://zeroc.com/download.html) for the supported platforms.
+This document describes how to build and install Ice for Ruby from source code.
+If you prefer, you can also download [binary distributions][1] for the supported
+platforms.
## Ruby Build Requirements
### Operating Systems and Compilers
-Ice for Ruby is expected to build and run properly on any recent Linux distribution for x86 and x86_64, and was extensively tested using the operating systems and Ruby versions listed for our [supported platforms](https://zeroc.com/platforms_3_6_0.html).
+Ice for Ruby is expected to build and run properly on any recent Linux distribution
+for x86 and x86_64, and was extensively tested using the operating systems and Ruby
+versions listed for our [supported platforms][2].
### Ruby Versions
-Ice for Ruby supports Ruby versions 1.8.1 or later. You can use a source or binary installation of Ruby. If you use an RPM installation, the following packages are required:
+Ice for Ruby supports Ruby versions 1.8.1 or later. You can use a source or binary
+installation of Ruby. If you use an RPM installation, the following packages are
+required:
ruby
ruby-devel
@@ -18,17 +24,21 @@ Ice for Ruby supports Ruby versions 1.8.1 or later. You can use a source or bina
### Ice Development Kit
-You will need the Ice development kit for C++, which you can install as a binary distribution or compile from source yourself.
+You will need the Ice development kit for C++, which you can install as a binary
+distribution or compile from source yourself.
## Building the Ruby Extension
-The instructions for compiling the Ice extension assume that you have already installed Ruby.
+The instructions for compiling the Ice extension assume that you have already
+installed Ruby.
-If you installed Ruby in a non-standard location, set the ```RUBY_HOME``` environment variable to the installation directory. For example:
+If you installed Ruby in a non-standard location, set the `RUBY_HOME` environment
+variable to the installation directory. For example:
$ export RUBY_HOME=/opt/ruby
-If you have not built Ice for C++ in the ```cpp``` subdirectory, set ```ICE_HOME``` to the directory of your Ice for C++ installation. For example:
+If you have not built Ice for C++ in the `cpp` subdirectory, set `ICE_HOME`
+to the directory of your Ice for C++ installation. For example:
$ export ICE_HOME=/opt/Ice
@@ -36,9 +46,10 @@ Change to the Ice for Ruby source subdirectory:
$ cd ruby
-Edit ```config/Make.rules```and adjust as necessary. For example, you may wish to enable ```OPTIMIZE```.
+Edit `config/Make.rules`and adjust as necessary. For example, you may wish to
+enable `OPTIMIZE`.
-Run ```make``` to build the extension.
+Run `make` to build the extension.
## Installing Ice for Ruby
@@ -46,9 +57,16 @@ You can perform an automated installation with the following command:
$ make install
-This process uses the ```prefix``` variable in ```config/Make.rules``` as the installation's root directory. The subdirectory ```<prefix>/ruby``` is created as a copy of the local ```ruby``` directory and contains the Ice for Ruby extension library (```IceRuby.so```) as well as Ruby source code. Using this installation method requires that you modify your environment as described in *Using Ice for Ruby* below.
+This process uses the `prefix` variable in `config/Make.rules` as the
+installation's root directory. The subdirectory `<prefix>/ruby` is created
+as a copy of the local `ruby` directory and contains the Ice for Ruby
+extension library (`IceRuby.so`) as well as Ruby source code. Using this
+installation method requires that you modify your environment as described
+in *Using Ice for Ruby* below.
-Another option is to copy the contents of the local ```ruby``` directory to your Ruby installation's ```site_ruby``` directory. For example, if you installed Ruby via RPM, you can use the steps below:
+Another option is to copy the contents of the local `ruby` directory to your
+Ruby installation's `site_ruby` directory. For example, if you installed Ruby
+via RPM, you can use the steps below:
# cd <Ice source directory>/ruby/ruby
# sudo tar cf - * | (cd /usr/lib/ruby/site_ruby/1.8/i386-linux; tar xvf -)
@@ -61,17 +79,21 @@ There is no need to modify your environment if you use this approach.
## Configuring your Environment for Ruby
-The Ruby interpreter must be able to locate the Ice extension. If you used the automated installation described above, you need to define the ```RUBYLIB``` environment variable as follows:
+The Ruby interpreter must be able to locate the Ice extension. If you used the
+automated installation described above, you need to define the `RUBYLIB`
+environment variable as follows:
$ export RUBYLIB=/opt/Ice/ruby:$RUBYLIB
-This example assumes that your Ice for Ruby installation is located in the ```/opt/Ice``` directory.
+This example assumes that your Ice for Ruby installation is located in the
+`/opt/Ice` directory.
-You must also modify ```LD_LIBRARY_PATH``` to include the directory ```/opt/Ice/lib```:
+You must also modify `LD_LIBRARY_PATH` to include the directory `/opt/Ice/lib`:
$ export LD_LIBRARY_PATH=/opt/Ice/lib:$LD_LIBRARY_PATH
-To verify that Ruby can load the Ice extension successfully, open a command window and start the interpreter using ```irb```:
+To verify that Ruby can load the Ice extension successfully, open a command
+window and start the interpreter using `irb`:
> irb
irb(main):001:0>
@@ -80,41 +102,50 @@ At the prompt, enter
require "Ice"
-If the interpreter responds with the value true, the Ice extension was loaded successfully. Enter ```exit``` to quit the interpreter.
+If the interpreter responds with the value true, the Ice extension was loaded
+successfully. Enter `exit` to quit the interpreter.
## Running the Ruby Tests
-The ```test``` subdirectory contains Ruby implementations of the core Ice test suite. Python is required to run the test suite.
+The `test` subdirectory contains Ruby implementations of the core Ice test suite.
+Python is required to run the test suite.
-The test suites require that the Ice for C++ tests be built in the ```cpp``` subdirectory of this source distribution.
+The test suites require that the Ice for C++ tests be built in the `cpp`
+subdirectory of this source distribution.
-Open a command window and change to the top-level directory. At the command prompt, execute:
+Open a command window and change to the top-level directory. At the command
+prompt, execute:
> python allTests.py
-You can also run tests individually by changing to the test directory and running this command:
+You can also run tests individually by changing to the test directory and
+running this command:
> python run.py
-If everything worked out, you should see lots of ```ok``` messages. In case of a failure, the tests abort with ```failed```.
+If everything worked out, you should see lots of `ok` messages. In case of a
+failure, the tests abort with `failed`.
## SELinux Notes for Ruby
-If SELinux is enabled on your RHEL system, you may encounter this error message when Ruby attempts to load the Ice extension:
+If SELinux is enabled on your RHEL system, you may encounter this error message
+when Ruby attempts to load the Ice extension:
cannot restore segment prot after reloc: Permission denied
There are two ways to solve this problem:
-- Change the default security context for the Ice extension using the following command:
+- Change the default security context for the Ice extension using the following
+command:
- ```
- $ chcon -t texrel_shlib_t /opt/Ice/ruby/IceRuby.so
- ```
+ $ chcon -t texrel_shlib_t /opt/Ice/ruby/IceRuby.so
- Replace ```/opt/Ice``` with your installation directory.
-- Disable SELinux completely by adding the following line to your ```/etc/sysconfig/selinux``` file:
+ Replace `/opt/Ice` with your installation directory.
- ```
- SELINUX=disabled
- ```
+- Disable SELinux completely by adding the following line to your
+`/etc/sysconfig/selinux` file:
+
+ SELINUX=disabled
+
+[1]: https://zeroc.com/download.html
+[2]: https://zeroc.com/platforms_3_6_0.html