Skip to content

itamae-kitchen/itamae-package

Repository files navigation

itamae-package: itamae releases in *.deb

Itamae software packages. Successor of itamae-kitchen/omnibus-itamae.

Pre-built packages

Download

$ echo 'deb https://dl.bintray.com/itamae/itamae trusty contrib' | sudo tee /etc/apt/sources.list.d/itamae.list
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv D401AB61
$ sudo apt-get update
$ sudo apt-get install itamae

or check releases

Build

Prepare sources

Download required external dependencies (Ruby source tarball and itamae gems)

./prepare.sh

Build package

# single distro
./build.sh DISTRO
# all supported distros
./build-all.sh

where DISTRO is ./docker/Dockerfile.${DISTRO}, e.g. bionic, focal, buster

package files will be saved to ./out/*

Port package onto arm64

# single source package
ruby ./port/port.rb bionic out/itamae_XXX.tar.xz

# multiple source packages
ruby ./port/port-all.rb out/itamae_*.tar.xz

You need to configure AWS CodeBuild to build on arm64 container. Give the following environment variables:

  • ITAMAE_CODEBUILD_REGION: AWS Region to use
  • ITAMAE_CODEBUILD_PROJECT: CodeBuild project name
  • ITAMAE_CODEBUILD_SOURCE_BUCKET: source S3 bucket specified to the CodeBuild project
  • ITAMAE_CODEBUILD_SOURCE_KEY: source S3 key specified to the CodeBuild project

Details

Custom rubygems

Gem additionally installed with /opt/itamae/embedded/bin/gem will be installed under /var/lib/itamae/gems. Executable files will be installed at /var/lib/itamae/bin.

These gems are preserved between upgrades, unless an upgrade contains a change in Ruby ABI (major/minor upgrade).

Build process

  • prepare.sh: Download ruby tarball and gems
  • build-all.sh:
    • build.sh: Build source and binary package for a single distro
      • Build Container
        • in-container.sh
          • src/prepare.sh: Prepare files for source package
            • src/prebuild.sh
          • src/build.sh
            • debuild - debian/rules
              • src/build-ruby.sh
              • src/install-itamae.sh
      • Test Container
        • in-container-test.sh
  • port.rb: Build binary package from the built source package in foreign architecture (arm64)

Release Process

RPM?

Help wanted for RPM!