Chapter 4. Specifics of Individual Software Collections

This chapter is focused on the specifics of certain Software Collections and provides additional details concerning these components.

4.1. Red Hat Developer Toolset

Red Hat Developer Toolset is designed for developers working on the Red Hat Enterprise Linux platform. Red Hat Developer Toolset provides current versions of the GNU Compiler Collection, GNU Debugger, and other development, debugging, and performance monitoring tools. Similarly to other Software Collections, an additional set of tools is installed into the /opt/ directory. These tools are enabled by the user on demand using the supplied scl utility. Similarly to other Software Collections, these do not replace the Red Hat Enterprise Linux system versions of these tools, nor will they be used in preference to those system versions unless explicitly invoked using the scl utility.
For an overview of features, refer to the Main Features section of the Red Hat Developer Toolset Release Notes.
For a complete list of components, see the Red Hat Developer Toolset Components table in the Red Hat Developer Toolset User Guide.
Note that since Red Hat Developer Toolset 3.1, Red Hat Developer Toolset requires the rh-java-common Software Collection.

4.2. Ruby on Rails 5.0

Red Hat Software Collections 3.2 provides the rh-ruby24 Software Collection together with the rh-ror50 Collection.
To install Ruby on Rails 5.0, type the following command as root:
yum install rh-ror50
Installing any package from the rh-ror50 Software Collection automatically pulls in rh-ruby24 and rh-nodejs6 as dependencies.
The rh-nodejs6 Collection is used by certain gems in an asset pipeline to post-process web resources, for example, sass or coffee-script source files. Additionally, the Action Cable framework uses rh-nodejs6 for handling WebSockets in Rails.
To run the rails s command without requiring rh-nodejs6, disable the coffee-rails and uglifier gems in the Gemfile.
To run Ruby on Rails without Node.js, run the following command, which will automatically enable rh-ruby24:
scl enable rh-ror50 bash
To run Ruby on Rails with all features, enable also the rh-nodejs6 Software Collection:
scl enable rh-ror50 rh-nodejs6 bash
The rh-ror50 Software Collection is supported together with the rh-ruby24 and rh-nodejs6 components.

4.3. MongoDB 3.6

The rh-mongodb36 Software Collection is available only for Red Hat Enterprise Linux 7. See Section 4.4, “MongoDB 3.4” for instructions on how to use MongoDB 3.4 on Red Hat Enterprise Linux 6.
To install the rh-mongodb36 collection, type the following command as root:
yum install rh-mongodb36
To run the MongoDB shell utility, type the following command:
scl enable rh-mongodb36 'mongo'

Note

The rh-mongodb36-mongo-cxx-driver package has been built with the -std=gnu++14 option using GCC from Red Hat Developer Toolset 6. Binaries using the shared library for the MongoDB C++ Driver that use C++11 (or later) features have to be built also with Red Hat Developer Toolset 6 or later. See C++ compatibility details in the Red Hat Developer Toolset 6 User Guide.
To start the MongoDB daemon, type the following command as root:
systemctl start rh-mongodb36-mongod.service
To start the MongoDB daemon on boot, type this command as root:
systemctl enable rh-mongodb36-mongod.service
To start the MongoDB sharding server, type the following command as root:
systemctl start rh-mongodb36-mongos.service
To start the MongoDB sharding server on boot, type this command as root:
systemctl enable rh-mongodb36-mongos.service
Note that the MongoDB sharding server does not work unless the user starts at least one configuration server and specifies it in the mongos.conf file.

4.4. MongoDB 3.4

To install the rh-mongodb34 collection, type the following command as root:
yum install rh-mongodb34
To run the MongoDB shell utility, type the following command:
scl enable rh-mongodb34 'mongo'

Note

The rh-mongodb34-mongo-cxx-driver package has been built with the -std=gnu++14 option using GCC from Red Hat Developer Toolset 6. Binaries using the shared library for the MongoDB C++ Driver that use C++11 (or later) features have to be built also with Red Hat Developer Toolset 6. See C++ compatibility details in the Red Hat Developer Toolset 6 User Guide.

MongoDB 3.4 on Red Hat Enterprise Linux 6

If you are using Red Hat Enterprise Linux 6, the following instructions apply to your system.
To start the MongoDB daemon, type the following command as root:
service rh-mongodb34-mongod start
To start the MongoDB daemon on boot, type this command as root:
chkconfig rh-mongodb34-mongod on
To start the MongoDB sharding server, type this command as root:
service rh-mongodb34-mongos start
To start the MongoDB sharding server on boot, type the following command as root:
chkconfig rh-mongodb34-mongos on
Note that the MongoDB sharding server does not work unless the user starts at least one configuration server and specifies it in the mongos.conf file.

MongoDB 3.4 on Red Hat Enterprise Linux 7

When using Red Hat Enterprise Linux 7, the following commands are applicable.
To start the MongoDB daemon, type the following command as root:
systemctl start rh-mongodb34-mongod.service
To start the MongoDB daemon on boot, type this command as root:
systemctl enable rh-mongodb34-mongod.service
To start the MongoDB sharding server, type the following command as root:
systemctl start rh-mongodb34-mongos.service
To start the MongoDB sharding server on boot, type this command as root:
systemctl enable rh-mongodb34-mongos.service
Note that the MongoDB sharding server does not work unless the user starts at least one configuration server and specifies it in the mongos.conf file.

4.5. Maven

The rh-maven35 Software Collection, available only for Red Hat Enterprise Linux 7, provides a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting, and documentation from a central piece of information.
To install the rh-maven35 Collection, type the following command as root:
yum install rh-maven35
To enable this collection, type the following command at a shell prompt:
scl enable rh-maven35 bash
Global Maven settings, such as remote repositories or mirrors, can be customized by editing the /opt/rh/rh-maven35/root/etc/maven/settings.xml file.
For more information about using Maven, refer to the Maven documentation. Usage of plug-ins is described in this section; to find documentation regarding individual plug-ins, see the index of plug-ins.

4.6. Passenger

The rh-passenger40 Software Collection provides Phusion Passenger, a web and application server designed to be fast, robust and lightweight.
The rh-passenger40 Collection supports multiple versions of Ruby, particularly the ruby193, ruby200, and rh-ruby22 Software Collections together with Ruby on Rails using the ror40 or rh-ror41 Collections. Prior to using Passenger with any of the Ruby Software Collections, install the corresponding package from the rh-passenger40 Collection: the rh-passenger-ruby193, rh-passenger-ruby200, or rh-passenger-ruby22 package.
The rh-passenger40 Software Collection can also be used with Apache httpd from the httpd24 Software Collection. To do so, install the rh-passenger40-mod_passenger package. Refer to the default configuration file /opt/rh/httpd24/root/etc/httpd/conf.d/passenger.conf for an example of Apache httpd configuration, which shows how to use multiple Ruby versions in a single Apache httpd instance.
Additionally, the rh-passenger40 Software Collection can be used with the nginx 1.6 web server from the nginx16 Software Collection. To use nginx 1.6 with rh-passenger40, you can run Passenger in Standalone mode using the following command in the web appplication's directory:
scl enable nginx16 rh-passenger40 'passenger start'
Alternatively, edit the nginx16 configuration files as described in the upstream Passenger documentation.

4.7. Database Connectors

Database connector packages provide the database client functionality, which is necessary for local or remote connection to a database server. Table 4.1, “Interoperability Between Languages and Databases” lists Software Collections with language runtimes that include connectors for certain database servers:
  • yes - the combination is supported
  • no - the combination is not supported

Table 4.1. Interoperability Between Languages and Databases

 Database
Language (Software Collection)MariaDBMongoDBMySQLPostgreSQLRedis
rh-nodejs4nonononono
rh-nodejs6nonononono
rh-nodejs8nonononono
rh-nodejs10nonononono
rh-perl520yesnoyesyesno
rh-perl524yesnoyesyesno
rh-perl526yesnoyesyesno
rh-php56yesyesyesyesno
rh-php70yesnoyesyesno
rh-php71yesnoyesyesno
rh-php72yesnoyesyesno
python27yesyesyesyesno
rh-python34noyesnoyesno
rh-python35yesyesyesyesno
rh-python36yesyesyesyesno
rh-ror41yesyesyesyesno
rh-ror42yesyesyesyesno
rh-ror50yesyesyesyesno
rh-ruby25yesyesyesyesno