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. Eclipse 4.6.3
The rh-eclipse46 Software Collection, available for Red Hat Enterprise Linux 7, includes Eclipse 4.6.3, which is based on the Eclipse Foundation's Neon release train. This integrated development environment was previously available as a part of Red Hat Developer Toolset. Note that the rh-eclipse46 Software Collection requires the rh-java-common Collection.
Note
A new version of Eclipse is now available as the rh-eclipse47 component of the Red Hat Developer Tools offering. For more information, see Using Eclipse.
Eclipse is a powerful development environment that provides tools for each phase of the development process. It integrates a variety of disparate tools into a unified environment to create a rich development experience, provides a fully configurable user interface, and features a pluggable architecture that allows for an extension in a variety of ways. For instance, the Valgrind plug-in allows programmers to perform memory profiling, otherwise performed on the command line, through the Eclipse user interface.
Figure 4.1. Sample Eclipse Session
Eclipse provides a graphical development environment alternative to traditional interaction with command line tools and as such, it is a welcome alternative to developers who do not want to use the command line interface. The traditional, mostly command line-based Linux tools suite (such as
gcc
or gdb
) and Eclipse offer two distinct approaches to programming.
Note that if you intend to develop applications for Red Hat JBoss Middleware or require support for OpenShift Tools, it is recommended that you use Red Hat JBoss Developer Studio.
Package | Description |
---|---|
rh-eclipse46-eclipse-cdt | The C/C++ Development Tooling (CDT), which provides features and plug-ins for development in C and C++. |
rh-eclipse46-eclipse-changelog | The ChangeLog plug-in, which allows you to create and maintain changelog files. |
rh-eclipse46-eclipse-egit | EGit, a team provider for Eclipse that provides features and plug-ins for interaction with Git repositories. |
rh-eclipse46-eclipse-emf | The Eclipse Modeling Framework (EMF), which allows you to build applications based on a structured data model. |
rh-eclipse46-eclipse-epp-logging | The Eclipse error reporting tool. |
rh-eclipse46-eclipse-gcov | The GCov plug-in, which integrates the GCov test coverage program with Eclipse. |
rh-eclipse46-eclipse-gef | The Graphical Editing Framework (GEF), which allows you to create a rich graphical editor from an existing application model. |
rh-eclipse46-eclipse-gprof | The Gprof plug-in, which integrates the Gprof performance analysis utility with Eclipse. |
rh-eclipse46-eclipse-jdt | The Eclipse Java development tools (JDT) plug-in. |
rh-eclipse46-eclipse-jgit | JGit, a Java implementation of the Git revision control system. |
rh-eclipse46-eclipse-manpage | The Man Page plug-in, which allows you to view manual pages in Eclipse. |
rh-eclipse46-eclipse-mpc | The Eclipse Marketplace Client. |
rh-eclipse46-eclipse-mylyn | Mylyn, a task management system for Eclipse. |
rh-eclipse46-eclipse-oprofile | The OProfile plug-in, which integrates OProfile with Eclipse. |
rh-eclipse46-eclipse-pde | The Plugin Development Environment for developing Eclipse plugins. |
rh-eclipse46-eclipse-perf | The Perf plug-in, which integrates the perf tool with Eclipse. |
rh-eclipse46-eclipse-ptp | A subset of the PTP project providing support for synchronized projects. |
rh-eclipse46-eclipse-pydev | A full featured Python IDE for Eclipse. |
rh-eclipse46-eclipse-remote | The Remote Services plug-in, which provides an extensible remote-services framework. |
rh-eclipse46-eclipse-rpm-editor | The Eclipse Spec File Editor, which allows you to maintain RPM spec files. |
rh-eclipse46-eclipse-rse | The Remote System Explorer (RSE) framework, which allows you to work with remote systems from Eclipse. |
rh-eclipse46-eclipse-systemtap | The SystemTap plug-in, which integrates SystemTap with Eclipse. |
rh-eclipse46-eclipse-valgrind | The Valgrind plug-in, which integrates Valgrind with Eclipse. |
rh-eclipse46-eclipse-webtools | The Eclipse Webtools plug-ins. |
4.2.1. Installing Eclipse
The Eclipse development environment is provided as a collection of RPM packages. To install the rh-eclipse46 Software Collection, type the following command as
root
:
yum install rh-eclipse46
For a list of available components, see Table 4.1, “Eclipse Components Included in the rh-eclipse46 Software Collection”.
Note
The rh-eclipse46 Software Collection fully supports C, C++, and Java development, but does not provide support for the Fortran programming language.
4.2.2. Using Eclipse
To start the rh-eclipse46 Software Collection, either select from the panel, or type the following at a shell prompt:
scl enable rh-eclipse46 eclipse
During its startup, Eclipse prompts you to select a workspace, that is, a directory in which you want to store your projects. You can either use
~/workspace/
, which is the default option, or click the button to browse your file system and select a custom directory. Additionally, you can select the Use this as the default and do not ask again check box to prevent Eclipse from displaying this dialog box the next time you run this development environment. When you are done, click the button to confirm the selection and proceed with the startup.
4.2.2.1. Using the Red Hat Developer Toolset Toolchain
To use the rh-eclipse46 Software Collection with support for the GNU Compiler Collection and binutils from Red Hat Developer Toolset, make sure that the devtoolset-7-toolchain package is installed and run the application as described in Section 4.2.2, “Using Eclipse”. The rh-eclipse46 Collection uses the Red Hat Developer Toolset toolchain by default.
For detailed instructions on how to install the devtoolset-7-toolchain package in your system, see the Red Hat Developer Toolset User Guide.
Important
If you are working on a project that you previously built with the Red Hat Enterprise Linux version of the GNU Compiler Collection, make sure that you discard all previous build results. To do so, open the project in Eclipse and select from the menu.
4.2.2.2. Using the Red Hat Enterprise Linux Toolchain
To use the rh-eclipse46 Software Collection with support for the toolchain distributed with Red Hat Enterprise Linux, change the configuration of the project to use absolute paths to the Red Hat Enterprise Linux system versions of
gcc
, g++
, and as
.
To configure Eclipse to explicitly use the Red Hat Enterprise Linux system versions of the tools for the current project, complete the following steps:
- In the C/C++ perspective, choose
from the main menu bar to open the project properties. - In the menu on the left-hand side of the dialog box, click
. - Select the Tool Settings tab.
- If you are working on a C project:
- select Command field to:or and change the value of the
/usr/bin/gcc
- select Command field to:or and change the value of the
/usr/bin/gcc
- select Command field to:or and change the value of the
/usr/bin/as
If you are working on a C++ project:- select Command field to:or and change the value of the
/usr/bin/g++
- select Command field to:or and change the value of the
/usr/bin/gcc
- select Command field to:or and change the value of the
/usr/bin/g++
- select Command field to:or and change the value of the
/usr/bin/as
- Click thebutton to save the configuration changes.
4.2.3. Additional Resources
A detailed description of Eclipse and all its features is beyond the scope of this book. For more information, see the resources listed below.
Installed Documentation
- Eclipse includes a built-in system, which provides extensive documentation for each integrated feature and tool. This greatly decreases the initial time investment required for new developers to become fluent in its use. The use of this Help section is detailed in the Red Hat Enterprise Linux Developer Guide linked below.
See Also
- Using Eclipse describing usage of the rh-eclipse47 component of Red Hat Developer Tools.
- The Red Hat Developer Toolset chapter in the Red Hat Developer Toolset User Guide provides an overview of Red Hat Developer Toolset and more information on how to install it on your system.
- The GNU Compiler Collection (GCC) chapter in the Red Hat Developer Toolset User Guide provides information on how to compile programs written in C, C++, and Fortran on the command line.
4.3. Ruby on Rails 5.0
Red Hat Software Collections 3.1 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.4. MongoDB 3.6
The rh-mongodb36 Software Collection is available only for Red Hat Enterprise Linux 7. See Section 4.5, “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.5. 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.6. Git
Git is a distributed revision control system with a decentralized architecture. As opposed to centralized version control systems with a client-server model, Git ensures that each working copy of a Git repository is an exact copy with complete revision history. This not only allows you to work on and contribute to projects without the need to have permission to push your changes to their official repositories, but also makes it possible for you to work with no network connection. For detailed information, see the Git chapter in the Red Hat Enterprise Linux 7 Developer Guide.
4.7. 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.8. 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.9. Database Connectors
Database connector packages provide the database client functionality, which is necessary for local or remote connection to a database server. Table 4.2, “Interoperability Between Languages and Databases” lists Software Collections with language runtimes that include connectors for certain database servers.
Database | |||||
---|---|---|---|---|---|
Language (Software Collection) | MariaDB | MongoDB | MySQL | PostgreSQL | Redis |
rh-nodejs4 | |||||
rh-nodejs6 | |||||
rh-nodejs8 | |||||
rh-perl520 | |||||
rh-perl524 | |||||
rh-perl526 | |||||
rh-php56 | |||||
rh-php70 | |||||
rh-php71 | |||||
python27 | |||||
rh-python34 | |||||
rh-python35 | |||||
rh-python36 | |||||
rh-ror41 | |||||
rh-ror42 | |||||
rh-ror50 | |||||
rh-ruby25 | |||||
Supported | Unsupported |