Building a Perl DBD::Oracle Apache Docker container

Introduction

In my last post, I discussed building RPM packages for the Perl Oracle DB driver for Enterprise Linux. These packages were then used to build a Docker container running Apache and an Oracle client, which could be used to serve Perl CGI scripts. In this post I discuss installing this same module, but in a Debian-based Apache/HTTPD container, which is more lightweight and better-suited to running Apache than a full OS container. For me, this was a quick way to get a 90s-style Apache CGI environment up and running in order to start learning how to do some basic web development for systems administration (full disclosure: I am not a web developer).

Continue reading

Building Perl DBD::Oracle RPM packages for Enterprise Linux

Introduction

One of the many “hats” I wear in my job is an Oracle database administrator. In this role I write a number of Perl scripts that interact with the Oracle DB, and are used for purposes such as updating data and automating maintenance tasks. Over the years I’ve built up a fairly large library of scripts that I can clone off of when I need something new. With Perl and Oracle, one uses the DBI module for Oracle, DBD::Oracle. I’ve mostly used this on Red Hat systems—Enterprise Linux or EL, as I will refer to it here—distributed with an RPM package (instead of being installed using CPAN). Perhaps because it requires the installation of closed-source Oracle software, there aren’t pre-built RPMs of DBD::Oracle; I’ve always had to build these myself, using an RPM spec file I inherited from a colleague. However, I’ve wanted to revisit this and find a spec file from a source outside of work, one that I could use for experimentation in personal projects, as well as providing an improved version for my work. I was able to find a spec file from a public source, make some improvements, and build the packages for Enterprise Linux versions 7 through 10. This post documents those steps.

Continue reading