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, Eclipse development platform, 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 a list 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.
4.2. Thermostat 1
The Thermostat Software Collection provides a monitoring and instrumentation tool for the OpenJDK HotSpot JVM, with support for monitoring multiple JVM instances. The system is made up of two components: an
Agent
, which collects data, and a Client
, which allows users to visualize collected data. These components communicate via a storage layer: either directly via MongoDB or indirectly via a Web layer for increased security. A pluggable agent and GUI framework allows for collection and visualization of performance data beyond what is included out of the box.
To install the thermostat1 collection, type the following command as
root
:
yum install thermostat1
To enable this collection, type the following command at a shell prompt:
scl enable thermostat1 bash
To deploy the thermostat1-thermostat-webapp, start the web storage endpoint in Red Hat Software Collections by typing the following command as
root
:
service thermostat1-thermostat-tomcat start
For more information, please refer to the Thermostat User Guide. In order to deploy Thermostat securely, see the Configuration and Administration Guide.
4.3. Ruby on Rails 4.0
This Software Collection adds the ruby200 package together with the ror40 package. The Ruby on Rails collection can be enabled by the following command, which will automatically enable ruby200:
scl enable ror40 bash
These two collections are supported together.
4.4. MongoDB 2.4.9
To install the mongodb24 collection, type the following command as
root
:
yum install mongodb24
To run the MongoDB shell utility, type the following command:
scl enable mongodb24 'mongo'
4.4.1. MongoDB 2.4.9 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 mongodb24-mongodb start
To start the MongoDB daemon on boot, type this command as
root
:
chkconfig mongodb24-mongodb on
To start the MongoDB sharding server, type this command as
root
:
service mongodb24-mongodb-shard start
To start the MongoDB sharding server on boot, type the following command as
root
:
chkconfig mongodb24-mongodb-shard on
4.4.2. MongoDB 2.4.9 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 mongodb24-mongodb.service
To start the MongoDB daemon on boot, type this command as
root
:
systemctl enable mongodb24-mongodb.service
To start the MongoDB sharding server, type the following command as
root
:
systemctl start mongodb24-mongodb-shard.service
To start the MongoDB sharding server on boot, type this command as
root
:
systemctl enable mongodb24-mongodb-shard.service
4.5. 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 6 Developer Guide.
4.6. DevAssistant
DevAssistant is a tool designed to assist developers with creating and setting up basic projects in various programming languages, installing dependencies, setting up a development environment, and working with source control. The devassist09 Software Collection supports several programming languages, namely C, C++, Java, and Python. Additionally, DevAssistant is able to support working with any other language, framework, or tool due to its modular architecture.
DevAssistant is a framework that runs plug-ins called assistants. Each assistant can have several subassistants.
4.6.1. Getting Started with DevAssistant
To install the devassist09 Software Collection, type the following command as
root
:
yum install devassist09
To enable this collection, type the following command at a shell prompt:
scl enable devassist09 bash
To get help for DevAssistant, use the following command:
devassistant --help
or the shorter variant of the same command:
da -h
It is advisable to use the
--help
option on each level to list your possible next steps, until you reach the level of an executable subassistant (see Example 4.1, “Creating a New Python Library Project”).
To access the graphical user interface, type this command at a shell prompt:
devassistant-gui
or the shortened variant:
da-gui
Please note that the GUI is available only if you install the devassist09 Software Collection on Red Hat Enterprise Linux 7. The functionalities and procedures are the same as when using the command line interface.
Note that the
devassistant
and da
commands are equal. Further in the text, we will use only the shorter variant, the da
command.
4.6.2. Running Assistants
DevAssistant provides the following functionalities:
create
, modify
, prepare
, and task
. To run an assistant, use the following command:
da [--debug] {create,modify,prepare,task} [assistant [arguments]] ...
The four basic commands and descriptions related to these functionalities are listed in the following table:
Command | Shortened Command | Description |
---|---|---|
da create | da crt | Creating a new project from scratch |
da modify | da mod | Working with an existing project |
da prepare | da prep | Preparing a development environment for an upstream project |
da task | Performing a custom task not related to a specific project |
The devassist09 Software Collection does not include any assistants for the
modify
, prepare
, and task
functionalities. These categories are available for users who want to create their own assistants.
4.6.3. Creating Projects with DevAssistant
The devassist09 Software Collection includes the following assistants for creating projects:
Assistant | Subassistant | Description |
---|---|---|
c | app | An application in C |
lib | A dynamically linked library in C | |
cpp | app | An application in C++ |
lib | A dynamically linked library in C++ | |
java | maven | A simple project using Maven |
python | lib | A simple library for Python |
The following example demonstrates creating a new Python library project by following instructions displayed by the
--help
option.
Example 4.1. Creating a New Python Library Project
To create a new Python library project, complete the following steps:
- Enable the devassist09 Software Collection by running this command:
~]$
scl enable devassist09 bash
- Display help about DevAssistant by using the
--help
option:~]$
da --help
You can either run assistants with: da [--debug] {create,modify,prepare,task} [ASSISTANT [ARGUMENTS]] ... Where: create used for creating new projects modify used for working with existing projects prepare used for preparing environment for upstream projects task used for performing custom tasks not related to a specific project You can shorten "create" to "crt", "modify" to "mod" and "prepare" to "prep". Or you can run a custom action: da [--debug] [ACTION] [ARGUMENTS] Available actions: help Print detailed help version Print version - List the possible next steps for creating a project by typing:
~]$
da create --help
usage: create [-h] [--deps-only] {c,cpp,java,python} ... Kickstart new projects easily with DevAssistant. optional arguments: -h, --help show this help message and exit --deps-only Only install dependencies subassistants: Following subassistants will help you with setting up your project. {c,cpp,java,python} - Display help on the
python
assistant by typing at a shell prompt:~]$
da create python --help
usage: create python [-h] {lib} ... This is a base Python assistant, you have to select a subassistant. optional arguments: -h, --help show this help message and exit subassistants: Following subassistants will help you with setting up your project. {lib} - List your choices for the only
python
subassistant,lib
, by running this command:~]$
da create python lib --help
usage: create python lib [-h] [-e [ECLIPSE]] -n NAME Scaffolds a simple Python library project. optional arguments: -h, --help show this help message and exit -e [ECLIPSE], --eclipse [ECLIPSE] Configure as Eclipse project (uses ~/workspace or specified directory) -n NAME, --name NAME Name of project to create - Run the assistant to create your new Python library project named
mypythonlib
by using the following command:~]$
da create python lib -n mypythonlib
To get more information about the upstream version of DevAssistant, refer to the DevAssistant User Documentation. Please note that though the basic concept of the upstream application is the same as in the devassist09 Software Collection, individual plug-ins and their functionalities might differ.
4.7. Maven
The maven30 Software Collection 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 maven30 collection, type the following command as
root
:
yum install maven30
To enable this collection, type the following command at a shell prompt:
scl enable maven30 bash
Global Maven settings, such as remote repositories or mirrors, can be customized by editing the
/opt/rh/maven30/root/etc/maven/settings.xml
file.
For more information about using Maven, refer to the Maven documentation. To find documentation regarding individual plug-ins, please see the index of plug-ins.