Chapter 1 Release Notes

The Software Collection Library is currently available for Oracle Linux 7 (x86_64) and is supported for customers with Oracle Linux Premier Support. Note that a subset of the complete Software Collection Library for Oracle Linux 7 (as available for the x86_64 platform) is also available for the 64-bit Arm (aarch64) platform. For more information, see Appendix A, Software Collection Libraries for Oracle Linux 7 (aarch64).

Oracle Linux 8 provides similar components in the form of Application Streams. For more information, see Oracle® Linux 8: Managing Software on Oracle Linux.

1.1 About the Software Collection Library for Oracle Linux

The Software Collection Library enables you install and use several different versions of the same software at the same time on a system. Software collections are primarily intended for development environments, which often require more recent versions of software components such as Perl, PHP, or Python to gain access to the latest features, but which need to avoid the risk of disrupting other processes on the system that rely on different versions of these components. You use the Software Collection Library scl utility to run the developer tools from the software collections that you have installed under the /opt/rh directory hierarchy. The scl utility isolates the effects of running these tools from other versions of the same software utilities that you have installed.

The Software Collection Library version 3.8 replaces the previous release of the Software Collection Library. This version includes all of the software collections that were available in the previous release, along with some package updates, and also includes additional software collections that were not available in previous releases.

1.2 Additions and Updates for the 3.8 Release

The following information applies to the software collections that are available for Oracle Linux 7.

New in the 3.8 release in Oracle Linux 7

The following collections are new in the 3.8 release of the Software Collection Library:

  • devtoolset-11

  • rh-nginx120

  • rh-redis6

1.3 Differences From the Upstream Release

There are some minor differences between the Oracle versions of the software collections and the upstream release.

The following changes are included:

  • Addition of Oracle Linux GPG keys.

  • Removal of the MariaDB, MongoDB, MySQL, PostgreSQL, and Thermostat software collections.

  • Removal of the rhscl-dockerfiles package.

  • Branding changes.

1.4 Available Software Collections

The following software collections are available in the Oracle Linux 7 SoftwareCollections channel on the Unbreakable Linux Network (ULN) and the Oracle Linux 7 software_collections repository on the Oracle Linux yum server.

devassist09

DevAssistant 0.9.3 assists in the creation and configuration of the development environment for projects that use the C, C++, Java, and Python programming languages. DevAssistant has a modular architecture that enables it to be modified to work with many languages, frameworks, and tools.

For more information, see https://devassistant.github.io.

devtoolset-3

The Developer Toolset consists of development, debugging, and performance monitoring tools, including the latest versions of the GNU compiler collection, GNU debugger, and the Eclipse development platform.

For more information, see https://gcc.gnu.org/, http://www.gnu.org/software/gdb/, and https://www.eclipse.org/.

devtoolset-4

The Developer Toolset consists of development, debugging, and performance monitoring tools, including the latest versions of the GNU compiler collection, GNU debugger, and the Eclipse development platform.

For more information, see https://gcc.gnu.org/, http://www.gnu.org/software/gdb/, and https://www.eclipse.org/.

devtoolset-6

The Developer Toolset includes development, debugging, and performance monitoring tools, which include the latest versions of the GNU compiler collection and GNU debugger. Note that the Eclipse development platform is no longer available as part of this collection, but you can install the rh-eclipse46 collection separately.

The following upgraded components are included in the Developer Toolset version 6.1:

  • GCC updated to version 6.3.1.

  • elfutils updated to version 0.168.

  • GDB updated to version 7.12.1.

A bug fix update has also been made available for ltrace.

For more information, see https://gcc.gnu.org/ and http://www.gnu.org/software/gdb/.

devtoolset-7

The Developer Toolset includes development, debugging, and performance monitoring tools, which include the latest versions of the GNU compiler collection and GNU debugger.

The following upgraded components are included in the Developer Toolset version 7.0:

  • GCC updated to version 7.3.1.

  • binutils updated to version 2.28.

  • elfutils updated to version 0.170.

  • make updated to version 4.2.1.

  • GDB updated to version 8.0.1.

  • strace updated to version 4.17.

  • SystemTap updated to version 3.1.

  • Valgrind updated to version 3.13.0.

  • OProfile updated to version 1.2.0.

  • Dyninst updated to version 9.3.2.

For more information, see https://gcc.gnu.org/ and http://www.gnu.org/software/gdb/.

devtoolset-8

The Developer Toolset includes development, debugging, and performance monitoring tools, which include the latest versions of the GNU compiler collection and GNU debugger.

The following upgraded components are included in the Developer Toolset version 8.1:

  • GCC updated to version 8.2.1.

  • GDB updated to version 8.2.

  • binutils updated to version 2.30.

  • elfutils updated to version 0.176.

  • strace updated to version 4.24.

  • SystemTap updated to version 3.3.

  • Valgrind updated to version 3.14.0.

  • OProfile updated to version 1.3.0.

For more information, see https://gcc.gnu.org/ and http://www.gnu.org/software/gdb/.

devtoolset-9

The Developer Toolset includes development, debugging, and performance monitoring tools, which include the latest versions of the GNU compiler collection and GNU debugger.

The following upgraded components are included in the Developer Toolset version 9.1:

  • GCC updated to version 9.3.1.

  • GDB updated to version 8.3.

  • make updated to version 4.2.1.

  • binutils updated to version 2.32.

  • strace updated to version 5.1.

  • ltrace updated to version 0.7.91.

  • SystemTap updated to version 4.1.

  • Valgrind updated to version 3.15.0.

  • Dyninst updated to version 10.1.0.

For more information, see https://gcc.gnu.org/ and http://www.gnu.org/software/gdb/.

devtoolset-10

The Developer Toolset includes development, debugging, and performance monitoring tools, which include the latest versions of the GNU compiler collection and GNU debugger.

The following upgraded components are included in the Developer Toolset version 10.1:

  • Dyninst updated to version 10.2.1.

  • elfutils updated to version 0.182.

  • SystemTap updated to version 4.4.

For more information, see https://gcc.gnu.org/ and http://www.gnu.org/software/gdb/.

devtoolset-11

The Developer Toolset includes development, debugging, and performance monitoring tools, which include the latest versions of the GNU compiler collection and GNU debugger.

The following upgraded components are included in the Developer Toolset version 11.0:

  • GCC updated to version 11.2.1.

  • binutils updated to version 2.36.1.

  • elfutils updated to version 0.185.

  • dwz updated to version 0.14.

  • GDB updated to version 10.2.

  • strace updated to version 5.13.

  • SystemTap updated to version 4.5.

  • Valgrind updated to version 3.17.0.

  • Dyninst updated to version 11.0.0.

  • make updated to version 4.3.

  • annobin updated to version 9.82.

For more information, see https://gcc.gnu.org/ and http://www.gnu.org/software/gdb/.

git19

Git 1.9.4 is built on a decentralized architecture and provides a distributed revision-control system that emphasizes high performance and data integrity, as well as support for non-linear, distributed work flows.

For more information, see https://git-scm.com/.

httpd24

The Apache HTTP Server implements event-based processing for enhanced performance, FastCGI, an improved SSL module, and the mod_auth_kerb module.

The httpd24 software collection provides version 2.4.34 of the software. This release includes a number of bug and security fixes and enhancements from the previous version, as well as improvements for SSL/TLS and support for version 2 of the Automatic Certificate Management Environment (ACME) certificate issuance and management protocol.

For more information, see https://httpd.apache.org/docs/2.4/.

maven30

Maven 3.0.5 is a tool for managing builds, documentation, and reporting for Java projects.

For more information, see https://maven.apache.org/.

nginx16

NGINX 1.6.2 is a combined web and proxy server that is designed to provide enhanced concurrency and performance without placing excessive demands on memory. Supported features include SSL verification enhancements, improved logging options, thread pooling, and hash load balancing.

For more information, see http://nginx.org/.

nodejs010

Node.js 0.10 is a programming platform that includes npm to share and reuse code. This software collection requires the V8 JavaScript engine that is implemented by v8314.

For more information, see https://nodejs.org/en/.

perl516

Perl 5.16.3 provides better performance, new debugging features, enhanced Unicode support, improved interoperability with MySQL and PostgreSQL, and the mod_perl and perl-DateTime modules for use with httpd24.

For more information, see https://www.perl.org/ and https://perldoc.perl.org/.

php54

PHP 5.4.40 provides PEAR 1.9.4, various language and interface improvements, and the APC, memcache, and Zend OPcache extensions.

For more information, see https://www.php.net/.

php55

PHP 5.5.21 has enhanced language features for better exception handling, generators, and Zend OPcache, and also includes the memcache and mongodb extensions.

For more information, see https://www.php.net/.

python27

Python 2.7.18 includes a number of additional utilities, a new ordered dictionary type, faster I/O, and better forward compatibility with Python 3. Also included are the Python 2.7.8 interpreter, web-programming extension libraries and mod_wsgi for use with httpd24, PostgreSQL connectors, and the numpy and scipy modules for scientific applications.

In this release, the python27-python-pymongo package has been updated to version 3.2.1. Note that this version is not fully compatible with the previously shipped version 2.5.2.

For more information, see https://www.python.org/.

python33

Python 3.3.2 includes the Python 3.3.2 interpreter, web-programming extension libraries, and mod_wsgi for use with httpd24, MySQL, and PostgreSQL connectors. Also included are the numpy and scipy modules for scientific applications.

For more information, see https://www.python.org/.

rh-eclipse46

The rh-eclipse46 software collection is an integrated development environment. Previous releases of Eclipse were available as part of the Developer Toolset collections. This release provides an independent software collection that is dependent on the rh-java-common collection.

In this release, the rh-eclipse46 collection is version 4.6.3, which is based on the Eclipse Foundation's Neon release train.

This version of the collection provides several bug fixes and the following new plugins:

  • The m2e plugin provides support for developing maven-based projects.

  • The TestNG plugin provides support for writing and executing tests by using the TestNG framework.

Most other plugins have received incremental updates to fix upstream bugs.

For more information, see https://www.eclipse.org//.

rh-git29

The Git 2.9.3 revision control system is used to track changes in files and coordinate work among multiple contributors in a distributed environment.

For more information, see https://git-scm.com/.

rh-git218

The Git 2.18.4 revision control system is used to track changes in files and coordinate work among multiple contributors in a distributed environment. This collection includes some bug fixes, as well as features that improve on the rh-git29 software collection. This version includes the Large File Storage (LFS) extension.

For more information, see https://git-scm.com/.

rh-git227

The Git 2.27.0 release of Git is a distributed revision control system with a decentralized architecture. This version introduces numerous enhancements including the following:

  • git checkout command is split into git switch and git restore.

  • Behavior of the git rebase command has changed.

  • Git Large File Storage (LFS) is updated to version 2.11.0.

For more information, see https://git-scm.com/.

rh-haproxy18

The HAProxy 1.8.24 proxy software provides a mechanism that can proxy Transmission Control Protocol (TCP) requests and perform a variety of related functions, such as content-based switching, server load balancing, TCP traffic regulation and monitoring, and HTTP compression.

For more information, see http://cbonte.github.io/haproxy-dconv/.

rh-java-common

The rh-java-common software collection provides common Java libraries and tools that are used by other software collections. It is usually installed as a dependency for these collections.

In this release, the rh-java-common collection has been updated and extended to comply with the changes that are in the dependent components.

rh-maven33

Apache Maven 3.3.9 is a tool that you use to build and manage Java projects. The software provides a single interface to a uniform build system that eases Java development and aids comprehension of any Java-based project.

Note that this version of the rh-maven33 software collection also includes several bug fixes.

For more information, see https://maven.apache.org/docs/3.3.9/release-notes.html.

rh-maven35

Apache Maven 3.5.0 is a tool that you use to build and manage Java projects. The software provides a single interface to a uniform build system that eases Java development and aids comprehension of any Java-based project.

This version of the rh-maven35 software collection includes several bug fixes and enhancements, including console color output and several other improvements.

For more information, see https://maven.apache.org/docs/3.5.0/release-notes.html.

rh-maven36

Apache Maven 3.6.1 is a tool that is used to build and manage Java projects. The software provides a single interface to a uniform build system that eases Java development and assists with comprehension of any Java-based project.

This version of the rh-maven36 software collection also includes several bug fixes and performance enhancements.

For more information, see https://maven.apache.org/docs/3.6.1/release-notes.html.

rh-nginx18

NGINX 1.8.1 is a combined web and proxy server that is designed to provide enhanced concurrency and performance without placing excessive demands on memory. Newer features include SSL verification enhancements, improved logging options, thread pooling, and hash load balancing.

For more information, see http://nginx.org/.

rh-nginx110

NGINX 1.10.2 provides a number of features, including dynamic module support, HTTP/2 support, and numerous performance improvements.

Note that the rh-nginx110 collection does not support integration with Phusion Passenger. If you require NGINX with Passenger support, continue using rh-nginx18, which provides NGINX version 1.8.

The rh-nginx110 software collection has optional support for Perl, in conjunction with the rh-perl524 software collection. To configure Perl handlers and call Perl functions from SSI scripts, install the rh-nginx110-nginx-mod-http-perl package.

For more information, see http://nginx.org/.

rh-nginx112

NGINX 1.12.1 provides a number of features, including IP Transparency, TCP/UDP load balancing, enhanced caching and support for multiple SSL certificates of different types. Many other enhancements and features are available in this release. Refer to the upstream documentation for more information.

Note that the rh-nginx110 collection does not support integration with Phusion Passenger. If you require NGINX with Passenger support, continue using rh-nginx18, which provides NGINX version 1.8.

The rh-nginx110 software collection includes optional support for Perl, in conjunction with the rh-perl524 software collection. To configure Perl handlers and call Perl functions from SSI scripts, install the rh-nginx110-nginx-mod-http-perl package.

For more information, see http://nginx.org/.

rh-nginx114

NGINX 1.14.1 provides a number of features, including a mirror module, a gRPC proxy module, HTTP/2 server push functionality, and improvements to vim syntax-highlighting scripts.

For more information, see http://nginx.org/.

rh-nginx116

NGINX 1.16.1 provides a number of new features, including improved TLS certificate handling, an additional load-balancing algorithm, and improvements to UDP proxying.

For more information, see http://nginx.org/.

rh-nginx118

NGINX 1.18.0 is a web and proxy server that focuses on high concurrency, performance, and low memory usage. This version includes improvements to the HTTP request rate and connection limiting, as well as a new auth_delay directive. Support for new variables has also been added to multiple directives.

For more information, see http://nginx.org/.

rh-nginx120

NGINX 1.20.1 is a web and proxy server that focuses on high concurrency, performance, and low memory usage. This version provides a number of new features, such as SSL certificate validation with Online Certificate Status Protocol (OCSP), and additional configuration settings for HTTP/2 and cache management.

For more information, see http://nginx.org/.

rh-nodejs4

Node.js 4.6.2 is a JavaScript programming platform that includes npm to share and reuse code. This software collection requires the V8 JavaScript engine that is implemented by v8314.

For more information, see https://nodejs.org/en/.

rh-nodejs6

Node.js 6.11.3 is a JavaScript programming platform that includes npm 3.10.9. This version also includes various bug fixes.

For more information, see https://nodejs.org/en/.

rh-nodejs8

Node.js 8.11.4 is a JavaScript programming platform that includes npm to share and reuse code. This release introduces the async_hooks module and experimental support for N-API and full support for HTTP/2.

This software collection uses the V8 JavaScript engine version 6.0, which is included in this collection. This release removes the dependency on v8314, which was required in previous Node.js collections.

For more information, see https://nodejs.org/en/.

rh-nodejs10

Node.js 10.21.0 is a JavaScript programming platform that includes npm to share and reuse code. Full support for N-API, stability improvements, and security enhancements are included in this release.

This software collection uses the V8 JavaScript engine version 6.6, which is included in this collection.

For more information, see https://nodejs.org/en/.

rh-nodejs12

Node.js 12.22.5 is a JavaScript programming platform that includes npm to share and reuse code. This release introduces support for ECMAScript 2015 (ES6) modules, improved support for native modules, and some performance improvements.

This software collection uses the V8 JavaScript engine version 7.6, which is included in this collection.

For more information, see https://nodejs.org/en/.

rh-nodejs14

Node.js 14.17.5 is a release of Node.js that includes V8 version 8.3, a new experimental WebAssembly System Interface (WASI), and a new experimental Async Local Storage API.

For more information, see https://nodejs.org/en/.

rh-passenger40

Phusion Passenger 4.0.50 is a fast and robust and lightweight web application server that is designed to be used in conjunction with applications that are written in Python or Ruby. This software collection is typically used in conjunction with several other software collections, including the various Python, Ruby or Ruby on Rails collections, and a web server like NGINX or the Apache HTTP Server.

For more information, see https://www.phusionpassenger.com/.

rh-perl520

Perl 5.20.1 includes additional scripts and utilities, as well as the database connectors for MySQL and PostgreSQL. Other included components are the DateTime module and the mod_perl Apache module that is supported by the httpd24 collection.

For more information, see https://www.perl.org/.

rh-perl524

Perl 5.24.0 includes additional scripts and utilities, as well as the database connectors for MySQL and PostgreSQL. Other included components are the DateTime module and the mod_perl Apache module that is supported by the httpd24 collection.

For more information, see https://www.perl.org/.

rh-perl526

Perl 5.26.3 includes some security improvements, bug fixes, and enhancements. Enhancements include changes to remove the current directory from the @INC module search path, deprecation of the do statement, stricter regular expression patterning, and support for Unicode 9.0.

The rh-perl526-perl package installs core modules, along with the interpreter, which is provided in the rh-perl526-perl-interpreter package. Note that this is a change in behavior from previous releases, where core modules were not included in the base perl package.

For more information, see https://www.perl.org/.

rh-perl530

Perl 5.30.1 includes security improvements, bug fixes, and enhancements. Note that certain language features are deprecated or removed in this version of Perl. In addition, the rh-perl530-perl-CGI package is added to the rh-perl530 Software Collection. The rh-perl530-perl-CGI package includes a Perl module that implements the Common Gateway Interface (CGI) to enable you to run scripts that are written in the Perl language.

Other notable changes include the following:

  • Removal of the Math::BigInt::CalcEmu, arybase, and B::Debug modules and the :locked and :uniq attributes.

  • File descriptors are opened with a close-on-exec flag.

  • Subroutine attributes must precede subroutine signatures.

  • pack() function no longer returns malformed UTF-8 format.

  • Using the sysread() and syswrite() functions on :utf8 handles returns fatal error.

  • Support for Unicode 12.1.

  • Unicode code points that have a value greater than IV_MAX are no longer allowed.

  • The following are no longer allowed: comma-less variable lists in formats, a bare << here-document operator, certain formerly deprecated uses of an unescaped left brace ({) character in regular expression patterns, sort pragma for specifying a sort algorithm, use of the $* and $# variables, and declaring variables by using the my() function in a false condition branch.

The rh-perl530-perl package installs core modules along with the interpreter, which is provided in the rh-perl530-perl-interpreter package.

For more information, see https://www.perl.org/.

rh-php56

PHP 5.6.25, including PEAR 1.9.5, enhanced language features for constant expressions, variadic functions, argument unpacking and interactive debugging. The memcache, mongodb and XDebug extensions are also included.

For more information, see https://www.php.net/.

rh-php70

PHP 7.0.27, including PEAR 1.10, enhanced language features and performance improvements.

For more information, see https://www.php.net/.

rh-php71

PHP 7.1.8, including PEAR 1.10.4 and the APCu extension version 5.1.8. This release includes many bug fixes and performance improvements.

For more information, see https://www.php.net/.

rh-php72

PHP 7.2.24, including PEAR 1.10.5 and the APCu extension version 5.1.12. This version includes many bug fixes and performance improvements, including the following: object-to-array and array-to object casts for numeric keys, a new object typehint, and a change to HashContext from a resource to an object.

For more information, see https://www.php.net/.

rh-php73

PHP 7.3.29 includes many notable changes, updates, and performance enhancements over PHP 7.2, including some deprecations and backward incompatibility changes.

Other notable changes include the following:

  • Several new and upgraded extensions.

  • Improvements to multibyte string handling.

  • Improvements to FastCGI Process Manager (FPM) logging.

  • Support for LDAP controls.

For more information about this PHP release, see https://www.php.net/.

See https://www.php.net/manual/en/migration73.php for specific information about migrating from PHP 7.2 to PHP 7.3.

rh-python34

Python 3.4 includes the Python 3.4.2 interpreter, web-programming extension libraries and mod_wsgi for use with httpd24, MySQL, and PostgreSQL connectors, as well as the numpy and scipy modules for scientific applications.

For more information, see https://www.python.org/.

rh-python35

Python 3.5.1 includes the Python 3.5.1 interpreter, web-programming extension libraries and mod_wsgi for use with httpd24, MySQL, and PostgreSQL connectors, as well as the numpy and scipy modules for scientific applications.

For more information, see https://www.python.org/.

rh-python36

Python 3.6.12 includes the Python 3.6.12 interpreter, web-programming extension libraries and mod_wsgi for use with httpd24, MySQL, and PostgreSQL connectors, as well as the numpy and scipy modules for scientific applications. This version includes several syntax features, including formatted string literals and asynchronous generators and comprehensions. The secrets module is also included in the standard library and dictionaries were reimplemented to use significantly less memory to enhance performance. Note that support for DTrace and SystemTap probes is also provided.

For more information, see https://www.python.org/.

rh-python38

Python 3.8.11 includes the following newer Python modules: contextvars, dataclasses, and importlib.resources, as well as new language features, and improved performance. Also included are web-programming extension libraries and mod_wsgi for use with httpd24, as well as PostgreSQL connectors and the numpy and scipy modules for scientific applications. For a complete list of the new features and enhancements in this version, see https://docs.python.org/3/whatsnew/3.8.html.

rh-redis32

Redis 3.2.4 is an open source, in-memory data structure store that is commonly used as a database and cache, as well as a message broker.

For more information, see https://redis.io.

rh-redis5

Redis 5.0, a persistent key-value database. Redis also now provides redis-trib, which is a cluster management tool.

For more information, see https://redis.io.

rh-redis6

Redis 6.0.16 is a recent version of a persistent key-value database. This version is compatible with REdis Serialization Protocol version 3 (RESP3), and provides server-side functionality such as access control lists, SSL-encrypted communication and threaded operations.

For more information, see https://redis.io.

rh-ror41

Ruby on Rails 4.1.5 is a version of the web application framework that is written in the Ruby language.

This release includes the following features:

  • Spring application pre-loader.

  • Action Pack.

  • Action Mailer.

  • Security fixes for earlier versions of the software.

For more information, see https://rubyonrails.org/.

rh-ror42

Ruby on Rails 4.2.6 is a recent version of the web application framework that is written in the Ruby language. This version includes the following features: Active Job, improvements such as support for asynchronous mails, performance enhancements such as the Adequate Record feature, and a default Web Console that is included with each new application.

For more information, see https://rubyonrails.org/.

rh-ror50

Ruby on Rails 5.0.1 provides a number of bug fixes and the following features:

  • Action Cable framework for handling WebSockets in Rails.

  • API mode to assist in creating a Rails application for an API server more easily.

  • Exclusive use of the rails CLI over Rake.

  • Addition of ActionRecord attributes.

    Note that you can now override ActiveRecord attributes, if needed.

For further details, see the upstream release notes.

The rh-ror50 software collection is supported with the rh-ruby24 and rh-nodejs6 collections.

For more information, see https://rubyonrails.org/.

rh-ruby22

Ruby 2.2.9 is a stable release of Ruby 2.2. This release is backward compatible with Ruby 2.0.0, and Ruby 1.9.3 at a source level.

For more information, see https://www.ruby-lang.org/.

rh-ruby23

Ruby 2.3.8 is a stable release of Ruby 2.3 and includes many features, including the following: a frozen string literal pragma, a safe navigation or lonely operator, improved debugging, and many performance enhancements. This release is backward compatible with Ruby 2.2.2, Ruby 2.0.0, and Ruby 1.9.3 at a source level.

For more information, see https://www.ruby-lang.org/.

rh-ruby24

Ruby 2.4.6 includes the following performance features:

  • Improved hash table performance.

  • New binding#irb method starts a read–eval–print loop (REPL) session, which provides for easier debugging and introspection of variables during runtime.

  • Improved debugging of threads and better deadlock detection.

  • Fixnum and Bignum classes are integrated into the Integer class.

  • Support for Unicode case mappings.

  • Support for the OpenSSL 1.1.0 library.

Ruby 2.4 is backward compatible with Ruby 2.3.1, Ruby 2.2.2, Ruby 2.0.0, and Ruby 1.9.3. The rh-ruby23 and rh-ruby22 software collections continue to supported.

For more information, see https://www.ruby-lang.org/.

rh-ruby25

Ruby 2.5.9 introduces the following performance improvements:

  • Simplified block usage with the rescue, else, and ensure keywords.

  • New yield_self method.

  • Support for branch and method coverage measurement.

  • New Hash#slice and Hash#transform_keys methods.

Ruby 2.5 is backward compatible with Ruby 2.4, Ruby 2.3.1, Ruby 2.2.2, Ruby 2.0.0, and Ruby 1.9.3. The rh-ruby23 and rh-ruby22 software collections continue to be supported.

For more information, see https://www.ruby-lang.org/.

rh-ruby26

Ruby 2.6.7 includes several performance improvements.

Ruby 2.6 is backward compatible with Ruby 2.5, Ruby 2.4, Ruby 2.3.1, Ruby 2.2.2, Ruby 2.0.0, and Ruby 1.9.3. The rh-ruby23 and rh-ruby22 software collections are also still supported.

For more information, see https://www.ruby-lang.org/.

rh-ruby27

Ruby 2.7.4 includes multiple performance improvements and new features, such as Compaction GC and the command-line interface (CLI) for the LALR(1) parser generator, as well as an enhancement to REPL. Ruby 2.7 maintains source-level backward compatibility with Ruby 2.6.

For more information, see https://www.ruby-lang.org/en/news/2019/12/25/ruby-2-7-0-released/ and https://www.ruby-lang.org/en/news/2020/03/31/ruby-2-7-1-released/.

rh-ruby30

Ruby 3.0.2 provides multiple performance improvements and new features, such as Ractor, Fiber Scheduler, and the RBS (Ruby Type Signature) annotation language. Ruby 3.0 maintains source-level backward compatibility with Ruby 2.7.

rh-scala210

The Scala 2.10.6 software collection is a general-purpose programming language that is designed to express common programming patterns in a concise and type-safe manner. Scala 2.10.6 integrates both object-oriented and functional languages features and is fully interoperable with Java.

For more information, see https://docs.scala-lang.org/.

rh-varnish4

Varnish Cache 4.0.3 is an efficient reverse proxy for HTTP. Files and content are cached in memory to reduce response time and network bandwidth consumption. The Varnish Cache feature can improve web application performance significantly.

For more information, see https://varnish-cache.org/.

rh-varnish5

Varnish Cache 5.2.1 is an efficient reverse proxy for HTTP. This release provides bug fixes and enhancements over the previous version, including experimental HTTP/2 support, the shard director, and improvements to configuration through Varnish Configuration Language files and labels.

For more information, see https://varnish-cache.org/.

rh-varnish6

Varnish Cache 6.0.8 is a high-performance HTTP reverse proxy. This version includes support for Unix Domain Sockets (both for clients and for back-end servers), a new level of the VCL language (vcl 4.1), and improved HTTP/2 support.

For more information, see https://varnish-cache.org/docs/6.0/index.html.

ror40

Ruby on Rails 4.0.2 provides includes support for live-streaming over persistent connections; the feature can be used with ruby200. Note that this software collection requires the V8 JavaScript engine that is implemented by v8314.

For more information, see https://rubyonrails.org/.

ruby193

Ruby 1.9.3 includes Ruby on Rails 3.2.8 and includes enhanced Unicode support, improved threading, quicker loading, as well as the mod_passenger module, for use with httpd24, and a large collection of Ruby gems.

For more information, see https://www.ruby-lang.org/.

ruby200

Ruby 2.0.0 provides improved performance and reliability, as well as additional features and enhanced debugging. This version retains backward compatibility with Ruby 1.9.3 at the source level.

For more information, see https://www.ruby-lang.org/.

source-to-image

The source-to-image software collection provides a tool for building artifacts from source and injecting them into docker images. This collection is only available for Oracle Linux 7. Note that the collection depends on docker, which is available in the ol7_addons channel.

For more information, see https://github.com/openshift/source-to-image/blob/master/README.md.

v8314

The v8314 software collection, which provides a V8 JavaScript engine, is supported as a dependency of other software collections only.

For more information, see https://v8.dev/.

1.5 Installing the Software Collection Library Utility From ULN

The scl-utils package, which provides the Software Collection Library scl utility, is available in the Oracle Linux 7 latest channel.

The software collection packages are available in the Oracle Linux 7 SoftwareCollections channel.

To use a software collection on an Oracle Linux 7 system, you must first install the scl utility on that system.

To install scl on a system:

  1. Log in to the ULN at linux.oracle.com and then subscribe the system to the following latest and SoftwareCollections channels:

    • ol7_x86_64_latest,

    • ol7_x86_64_optional_latest

    • ol7_x86_64_SoftwareCollections

  2. Install the scl-utils package.

    sudo yum install scl-utils

    You can now install and use software collection packages on the system. See Section 1.7, “Installing a Software Collection From the Oracle Linux Yum Server” and Section 1.9, “Using the Software Collection Version of a Command”.

Note

Alternatively, you can obtain the scl-utils and software collection packages from the Oracle Linux yum server. See Section 1.6, “Installing the Software Collection Library Utility From the Oracle Linux Yum Server”.

1.6 Installing the Software Collection Library Utility From the Oracle Linux Yum Server

The scl-utils package, which provides the Software Collection Library scl utility is available in the Oracle Linux 7 latest repository on the Oracle Linux yum server.

The software collection packages are available in the following Oracle Linux 7 repository: https://yum.oracle.com/repo/OracleLinux/OL7/SoftwareCollections/x86_64/.

To use a software collection on an Oracle Linux 7 system, you must first install the scl utility on that system.

To install scl on a system:

  1. Ensure that your system is up to date and that you have transitioned to use the modular yum repository configuration by installing the oraclelinux-release-rel package and running the /usr/bin/ol_yum_configure.sh script. For example, on Oracle Linux 7, do the following:

    sudo yum install oraclelinux-release-el7
    sudo /usr/bin/ol_yum_configure.sh
  2. Enable the software_collections repository:

    sudo yum-config-manager --enable software_collections
  3. Ensure that the ol7_latest and ol7_optional_latest repositories are also enabled:

    sudo yum-config-manager --enable ol7_latest ol7_optional_latest
  4. Install the scl-utils package.

    sudo yum install scl-utils

    You can now install and use software collection packages on the system. See Section 1.7, “Installing a Software Collection From the Oracle Linux Yum Server” and Section 1.9, “Using the Software Collection Version of a Command”.

1.7 Installing a Software Collection From the Oracle Linux Yum Server

After you set up the system to access the software_collections repository on the Oracle Linux yum server or the SoftwareCollections channel on ULN, you can use the yum command to install a software collection on the system as follows:

sudo yum install sw_col

Replace sw_col with the name of the software collection that you want to install.

A software collection can have a number of optional packages that you can also choose to install if required. To list these packages, use the following command:

sudo yum list available sw_col-\*

To list the installed software collections, use the scl --list command.

To list the packages that a software collection contains, use the scl --list sw_col command.

To display a list of all of the available packages within the Software Collection Library, restrict your yum query as follows:

sudo yum --disablerepo="*" --enablerepo="*_SoftwareCollections" list available

1.8 Updating or Removing a Software Collection

You can update or remove a software collection in the same way as you would update or remove any ordinary package, for example:

sudo yum update sw_col
sudo yum remove sw_col

1.9 Using the Software Collection Version of a Command

To enable and use the version of a command that a software collection contains, use the scl utility with the enable action:

sudo scl enable sw_col -- command args

By default, the specified command from the software collection runs in a bash environment. If required, you can specify a different shell environment.

If you want to enable several software collections so that you can run several utilities together, specify bash to provide the environment from which you can access the utilities, for example:

sudo scl enable sw_col1 sw_col2 -- bash
Note

The X_SCLS environment variable contains a list of the currently enabled software collections in the shell.

You can specify the commands that you want to run in a software collection environment and pipe these to the scl command:

cat cmd_file | scl enable sw_col -

You could also create an executable wrapper script to run an scl command, for example:

#!/bin/bash

scl enable php55 -- php $@

Starting with version 3.0, the scl utility can be called directly from the shebang (#!) line of a script, with the enable action provided. This feature change enables you to call an interpreter from within a collection directly from your scripts, for example:

#!/usr/bin/scl enable rh-python36 -- python

import platform 
import sys
import os

print(os.system('python -V'))
print(platform.python_version())
print(sys.version)

For more information, see the scl(1) manual page.

1.10 Using Services That Are Provided by Software Collections

Some of the software collections install service scripts in /etc/rc.d/init.d that include the software collection name in the name of the service script, for example httpd24-httpd. You can control a software collection service by running the systemctl command.

1.11 Accessing Software Collection-Specific Manual Pages

A software collection is packaged with a manual page that describes its content. Use the following command to display the manual page for a software collection:

sudo scl enable sw_col -- man sw_col

1.12 Known Software Collection Issues

The following are known issues in this release.

1.12.1 Package Dependency Issues When Upgrading From an Earlier Software Collection Version

In the case where a certain Software Collection version is already installed on Oracle Linux 7, and the system is upgraded to a later Software Collection version, some dependency issues may result if the following packages are installed:

  • devtoolset-3-liblsan-devel

  • devtoolset-3-libtsan-devel

Typically, the error appears as follows:

--> Finished Dependency Resolution
Error: Package: devtoolset-3-liblsan-devel-4.9.1-10.el7.x86_64 (@ol7_x86_64_SoftwareCollections)
           Requires: liblsan = 4.9.1-10.el7
           Removing: liblsan-4.9.1-10.el7.x86_64 (@ol7_x86_64_SoftwareCollections12)
               liblsan = 4.9.1-10.el7
           Updated By: liblsan-6.2.1-3.1.el7.x86_64 (SCL23)
               liblsan = 6.2.1-3.1.el7
           Available: liblsan-5.2.1-2.2.el7.x86_64 (ol7_x86_64_SoftwareCollections)
               liblsan = 5.2.1-2.2.el7
           Available: liblsan-5.3.1-6.1.el7.x86_64 (ol7_x86_64_SoftwareCollections)
               liblsan = 5.3.1-6.1.el7
Error: Package: devtoolset-3-libtsan-devel-4.9.1-10.el7.x86_64 (@ol7_x86_64_SoftwareCollections)
           Requires: libtsan = 4.9.1-10.el7
           Removing: libtsan-4.9.1-10.el7.x86_64 (@ol7_x86_64_SoftwareCollections12)
               libtsan = 4.9.1-10.el7
           Updated By: libtsan-6.2.1-3.1.el7.x86_64 (SCL23)
               libtsan = 6.2.1-3.1.el7
           Available: libtsan-4.8.2-16.el7.x86_64 (ol7_x86_64_optional_latest)
               libtsan = 4.8.2-16.el7
           Available: libtsan-4.8.2-16.2.el7_0.x86_64 (ol7_x86_64_optional_latest)
               libtsan = 4.8.2-16.2.el7_0
           Available: libtsan-4.8.3-9.el7.x86_64 (ol7_x86_64_optional_latest)
               libtsan = 4.8.3-9.el7
               libtsan = 4.8.2-16.el7
           Available: libtsan-4.8.5-4.el7.x86_64 (ol7_x86_64_optional_latest)
               libtsan = 4.8.5-4.el7
               libtsan = 4.8.2-16.el7
           Available: libtsan-4.8.5-11.el7.x86_64 (ol7_x86_64_optional_latest)
               libtsan = 4.8.5-11.el7
               libtsan = 4.8.2-16.el7
           Available: libtsan-5.2.1-2.2.el7.x86_64 (ol7_x86_64_SoftwareCollections)
               libtsan = 5.2.1-2.2.el7
           Available: libtsan-5.3.1-6.1.el7.x86_64 (ol7_x86_64_SoftwareCollections)
               libtsan = 5.3.1-6.1.el7     

The workaround is to uninstall and remove the listed rpm packages before running theyum update or yum install command. You should also exclude these packages from a yum update or yum install, by editing the /etc/yum.conf file and updating the exclude option. Or, you can use the --exclude flag when running the yum command.

(Bug ID 24376931)

1.12.2 libasan-static Package Dependency

When installing the devtoolset-3-libasan-devel-4.9.1-10.el7 package, which requires the libasan-4.9.1-10.el7 package, there is a potential dependency issue if the libasan-static-4.8.3-9.el7 package is already present on the system. An error such as the following is reported:

--> Finished Dependency Resolution 
Error:  Multilib version problems found. This often means that the root
       cause is something else and multilib version checking is just
       pointing out that there is a problem. Eg.:

         1. You have an upgrade for libasan which is missing some
            dependency that another package requires. Yum is trying to
            solve this by installing an older version of libasan of the
            different architecture. If you exclude the bad architecture
            yum will tell you what the root cause is (which package
            requires what). You can try redoing the upgrade with
            --exclude libasan.otherarch ... this should give you an error
            message showing the root cause of the problem.

         2. You have multiple architectures of libasan installed, but
            yum can only see an upgrade for one of those architectures.
            If you don't want/need both architectures anymore then you
            can remove the one with the missing update and everything
            will work.

         3. You have duplicate versions of libasan installed already.
            You can use "yum check" to get yum show these errors.

       ...you can also use --setopt=protected_multilib=false to remove
       this checking, however this is almost never the correct thing to
       do as something else is very likely to go wrong (often causing
       much more problems).

       Protected multilib versions: libasan-4.9.1-10.el7.x86_64 != libasan-4.8.5-11.el7.i686

The workaround is to remove the libasan-static package before installing the devtoolset-3-libasan-devel package.

(Bug ID 21896256)

1.12.3 Software Collection and Package Version Conflicts

You cannot install multiple versions of software collections on a system due to package conflicts within matching software collections. The following software collections are known to conflict:

  • rh-nginx18, rh-nginx110 and nginx16

  • rh-nodejs4, rh-nodejs6 and nodejs010

  • python27, python33, rh-python34 and rh-python35

  • rh-ror42, rh-ror50 and ror40

  • ruby193, ruby200, rh-ruby22, rh-ruby23 and rh-ruby24

In most cases, the conflict may result from particular package conflicts within each software collection. Typically, the conflict occurs because it is only possible to install one set of macro files for the packages, which means that the scldevel packages for each collection tend to conflict. For instance, the rh-php56-scldevel and php54-scldevel packages within the php54 and rh-php56 software collections are known to conflict. Note that this behavior is expected. As such, do not attempt to install multiple versions of a software collections package on the same system.

In some cases, other conflicts may occur. For instance, the devtoolset-3-tycho and devtoolset-4-tycho packages conflict. This conflict occurs due to binary mismatches within the packages. As previously stated, do not attempt to install multiple versions of a software collections package on the same system.

(Bug IDs 20090086, 23311408, 24286085, 24376992, 25115835, 25164232, 25424807, 25562645, 25562669, 25562714, 25562760, 26540817)

1.12.4 rh-php56-build Dependency Issue When Upgrading Software Collection Version

A package dependency conflict results when attempting to upgrade the rh-php56 collection from an earlier Software Collection version to later Software Collection version. Typically, the following output is displayed during the upgrade:

--> Finished Dependency Resolution
Error: Package: rh-php56-build-2.0-6.el7.x86_64
(@ol7_x86_64_SoftwareCollections)
           Requires: rh-php56-runtime(x86-64) = 2.0-6.el7
           Removing: rh-php56-runtime-2.0-6.el7.x86_64
(@ol7_x86_64_SoftwareCollections)
               rh-php56-runtime(x86-64) = 2.0-6.el7
           Updated By: rh-php56-runtime-2.3-1.el7.x86_64
(ol7_x86_64_SoftwareCollections)
               rh-php56-runtime(x86-64) = 2.3-1.el7

The workaround for this issue is to uninstall and remove the rh-php56-build-2.0-6.el7.x86_64 rpm package before running the yum update or yum install command, for example:

sudo yum remove rh-php56-build-2.0-6

You should also exclude these packages from the yum update or yum install command by editing the /etc/yum.conf file and updating the exclude option. Or, you can use the --exclude flag when running the yum command.

(Bug ID 25424699)

1.12.5 source-to-image Dependency on Docker

The source-to-image package has a dependency on docker, but it is not in the ol7_latest channel. If the system where source-to-image is to be installed is not subscribed to the ol7_addons channel, the installation fails due to a missing dependency.

Note that the system must be subscribed to the ol7_addons channel to install source-to-image.

1.12.6 rh-ror41 Dependency on v8314

The rh-ror41 collection has a dependency on the v8314 collection. The therubyracer gem, which compresses and provides a runtime for Javascript, uses the V8 Javascript engine that is made available in the v8314 software collection.

To enable this collection and make it available to rh-ror41, run the command:

sudo scl enable v8314

(Bug ID 25683450)