Skip to content

Instantly share code, notes, and snippets.

@gertvdijk gertvdijk/

Last active Jan 26, 2017
What would you like to do?
Create rkt package for Debian/Ubuntu using checkinstall
# Based on
# Pre-requirement: install the packages:
# - ca-certificates
# - curl
# - gnupg2
# - bash-completion
# - checkinstall
# - wget
# Suggestion: sudo apt-get install -y --no-install-recommends ca-certificates curl gnupg2 bash-completion checkinstall wget
# Then run this script as a normal user. In the final step, checkinstall will create the package in the location as shown in the output. Install as follows:
# sudo dpkg -i /path/to/the.deb
set -e
set -o pipefail
set -x
cd $(mktemp -d)
export DEBIAN_FRONTEND=noninteractive
curl -sSL | gpg2 --import -
key=$(gpg2 --with-colons --keyid-format LONG -k | egrep ^pub | cut -d ':' -f5)
wget --progress=bar:force"${version}"/rkt-v"${version}".tar.gz
wget --progress=bar:force"${version}"/rkt-v"${version}".tar.gz.asc
gpg2 --trusted-key "${key}" --verify-files *.asc
tar xvzf rkt-v"${version}".tar.gz
cat <<EOF >install-pak
# abort/fail on any error
set -e
# fix mkdir issues with checkinstall and fstrans
for dir in /usr/lib/rkt/stage1-images/\\
mkdir -p \$dir 2>/dev/null || :
for flavor in fly coreos kvm; do
install -Dm644 rkt-v${version}/stage1-\${flavor}.aci /usr/lib/rkt/stage1-images/stage1-\${flavor}.aci
install -Dm755 rkt-v${version}/rkt /usr/bin/rkt
for f in rkt-v${version}/manpages/*; do
install -Dm644 "\${f}" "/usr/share/man/man1/\$(basename \$f)"
install -Dm644 rkt-v${version}/bash_completion/rkt.bash /usr/share/bash-completion/completions/rkt
install -Dm644 rkt-v${version}/init/systemd/tmpfiles.d/rkt.conf /usr/lib/tmpfiles.d/rkt.conf
for unit in rkt-gc.{timer,service} rkt-metadata.{socket,service}; do
install -Dm644 rkt-v${version}/init/systemd/\$unit /usr/lib/systemd/system/\$unit
chmod +x install-pak
cat <<EOF >preinstall-pak
groupadd --force --system rkt-admin
groupadd --force --system rkt
chmod +x preinstall-pak
cp rkt-v"${version}"/scripts/ postinstall-pak
chmod +x postinstall-pak
cat <<EOF >>postinstall-pak
systemctl daemon-reload
systemd-tmpfiles --create /usr/lib/tmpfiles.d/rkt.conf
checkinstall -y --pkgname=rkt --pkgversion="${version}" --install=no --fstrans=yes ./install-pak
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.