Oracle Linux is free and all of the sources used to build the operating system, packages, and kernel are freely available. This makes it possible to build your own packages for Oracle Linux directly from the source code if required. This can be useful if you need to patch particular packages, or customize them, to meet a specific requirement, or if you want to audit all of the source code before it is built and packaged. Oracle just provides the tools to allow developers to self-host a build environment that can be used to rebuild all of the packages for the entire operating system. This is offered to build packages directly from source on their own; even if it is not directly supported by Oracle, code can be modified and built based on requirements in term of code, release and possible custom patches and/or back-ports. 

Building packages directly from source, also known as “non-modular RPM builds”, are usually handled by using the rpmbuild or mock utilities. Using the rpmbuild utility is a direct and quick method to build a standalone package directly from source. To do this, you download the source package and then build it using the tool. This is straightforward for the most simple packages but you need to resolve dependencies manually before you can successfully build the package. The mock utility can assist with dependency resolution during the build process and helps ensure that builds are performed within a chroot environment, so that processes triggered during the build process are sandboxed to help ensure that the build remains secure.

One of the more difficult parts of the challenging process for Oracle Linux 8 is handling builds for modular DNF packages with different streams and profiles. This is usually achieved by using a Module Build Service (MBS) that can take care of the different tasks that are needed to build the multiple sources that are part of a module or stream and to coordinate all of the packaging for the RPMs and dependencies that are included in the module. MBS uses the mock utility to help ensure that each build is secured and that all dependencies are handled during the procedure. MBS also provides the logic to build the multiple source components that are part of the module and can also understand stream separation.

Oracle provides the packages to set up your own MBS and also provides utilities to help you generate the appropriate module build configuration files needed to build a module. The core packages for this service are provided in the `ol8_distro_builder` repository. These packages have dependencies on several unsupported packages in some of the `ol8_developer` repositories.

Full documentation on how to build Oracle Linux 8 packages from source is available at the official Oracle Linux 8 Building RPM Packages from Sourceguide.

Oracle Linux downloads

Individual RPM packages are available on the Unbreakable Linux Network (ULN) and the Oracle Linux yum server. ISO installation images are available from the Oracle Linux yum server and Oracle Software Delivery Cloud and container images are available via Oracle Container RegistryGitHub Container Registry and Docker Hub.

Oracle Linux can be downloaded, used, and distributed free of charge and all updates and errata are freely available. Customers decide which of their systems require a support subscription. This makes Oracle Linux an ideal choice for development, testing, and production systems, since support coverage can be optimized for each individual system, while keeping all systems up to date and secure.

Resources