Skip to content

Latest commit

 

History

History
78 lines (43 loc) · 2.99 KB

File metadata and controls

78 lines (43 loc) · 2.99 KB

Package organization

This page explains which package types exist, how they relate to each other, and which script generates them.

fullstaq-ruby-[VERSION AND VARIANT]

Purpose

These packages contain a specific Ruby version. Each package is for a specific distribution, architecture and variant.

It places files primarily in /usr/lib/fullstaq-ruby/versions/<VERSION AND VARIANT>.

For the purpose of allowing Rbenv to find this Ruby version, the package also installs a symlink /usr/lib/rbenv/versions/<VERSION AND VARIANT>, which points to the aforementioned directory.

Relationship with other packages

The fullstaq-ruby-XXX package can be installed independently and has no hard dependencies.

The Debian package recommends fullstaq-ruby-common.

The RPM package does not specify fullstaq-ruby-common as a recommended dependency, even though the latter is in fact recommended. The main reason for this is because it's not clear whether RPM supports recommended dependencies, and even if it does, whether FPM supports specifying them. So instead, we tell users through documentation to manually install fullstaq-ruby-common prior to installing fullstaq-ruby-XXX.

Example package filenames

  • fullstaq-ruby-2.7-jemalloc_0-debian-10_amd64.deb
  • fullstaq-ruby-2.7-jemalloc-rev2-centos8.x86_64.rpm

Contents

  • /usr/lib/fullstaq-ruby/versions/<VERSION AND VARIANT>
  • /usr/lib/rbenv/versions/<VERSION AND VARIANT> (symlink to previous entry)

Generated by

  • container-entrypoints/build-ruby-deb
  • container-entrypoints/build-ruby-rpm

fullstaq-ruby-common

Purpose

This is a dummy package which contains no files, and only serves as a "glue" that specifies what all the other recommended dependencies are.

Currently the only recommended dependency is fullstaq-rbenv. If we ever introduce more recommended depdendencies, then we don't have to tell users to manually install them: they'll get the new recommended dependencies automatically through fullstaq-ruby-common.

This package has a hard dependency on fullstaq-rbenv.

Since this package contains no files, and does not depend on any other OS packages, it's distribution- and architecture-independent.

All fullstaq-ruby-XXX Debian packages recommend fullstaq-ruby-common.

Example package filenames

  • fullstaq-ruby-common_1.0-0_all.deb
  • fullstaq-ruby-common-1.0-0.noarch.rpm

Generated by

  • container-entrypoints/build-common-deb
  • container-entrypoints/build-common-rpm

fullstaq-rbenv

Purpose

This packages our Rbenv fork with support for system-wide Rubies.

Since Rbenv only consists of shell scripts, and does not depend on any other OS packages which aren't already preinstalled anywhere, it's distribution- and architecture-independent.

Example package filenames

  • fullstaq-rbenv_1.1.2-16-0_all.deb
  • fullstaq-rbenv-1.1.2-16-0.noarch.rpm

Generated by

  • container-entrypoints/build-rbenv-deb
  • container-entrypoints/build-rbenv-rpm