For one of our clients, I had to get provision new AMI images based on Ubuntu 18.04 (“bionic”). Some of the services require the Codedeploy agent installed to perform deployments on those machines. This works pretty well on current Debian releases (eg. “stretch”), but no on Ubuntu (which is pretty widely used IMO).
To get the Codedeploy agent running on the current Ubuntu release, I’ve headed to its official Github repository, which already contains a pull request with a fix. Unfortunately, that fix does not fix the agent itself, but parts of the installation routine. The installer script will download a prebuilt .deb image from an S3 bucket, which then will refuse to install because it has dependencies which cannot be met on current Ubuntu versions. The Codedeploy agent is written in Ruby and requires Ruby 2.0, 2.1, 2.2 or 2.3. Newer versions are not (officially) supported; I’ve modified some checks to let the version checks pass, and it works so far. I’ve opened a pull request on Github to get it eventually merged.
Weeks have passed since then. My PR has not been merged, and no useful proposal from upstream was given. They want additional tests for the code, which have not existed before. It frustrates me, because I had to implement some ugly hack to install Ruby 2.3 from previous Ubuntu LTS version (“Xenial”) to get it work on the current Ubuntu bionic. This only works if you don’t have any other projects that depend on Ruby 2.4 or higher (because I’ve pinned the Xenial repository for ruby packages).