#!/bin/bash cd /root/ apt update apt upgrade -y apt-get install --no-install-recommends -y \ btrfs-progs \ crun \ git \ golang-go \ go-md2man \ iptables \ libassuan-dev \ libbtrfs-dev \ libc6-dev \ libdevmapper-dev \ libglib2.0-dev \ libgpgme-dev \ libgpg-error-dev \ libprotobuf-dev \ libprotobuf-c-dev \ libseccomp-dev \ libselinux1-dev \ libsystemd-dev \ pkg-config \ uidmap apt install --no-install-recommends -y jq wget curl make ca-certificates VERSION=$(curl -s https://api.github.com/repos/containers/podman/releases/latest | jq '.name' -r) export VERSION git clone https://github.com/containers/podman.git podman-$VERSION cd podman-$VERSION git checkout tags/$VERSION make ENABLE_BUILDTAGS="systemd" binaries # copy the binaries to mounted build folder and go back to root home cp -vr bin/ ../build cd /root/ # remove v in version name NVERSION=$(echo $VERSION | sed s/v//) ## PREPARE to package into .deb mkdir -p podman-deb/DEBIAN cat < podman-deb/DEBIAN/control Package: podman Version: $NVERSION Depends: libgpgme11 Section: base Priority: optional Architecture: amd64 Maintainer: Shiham Abdul Rahman Description: Podman container engine Podman is a daemonless container engine for developing, managing, and running OCI Containers on your Linux System. EOF # CNI plugins mkdir -p podman-deb/etc/containers/ curl -L -o podman-deb/etc/containers/registries.conf https://src.fedoraproject.org/rpms/containers-common/raw/main/f/registries.conf curl -L -o podman-deb/etc/containers/policy.json https://src.fedoraproject.org/rpms/containers-common/raw/main/f/default-policy.json # Systemd service and socket files mkdir -p podman-deb/usr/lib/systemd/system/ cat < podman-deb/usr/lib/systemd/system/podman.service [Unit] Description=Podman API Service Requires=podman.socket After=podman.socket Documentation=man:podman-system-service(1) StartLimitIntervalSec=0 [Service] Delegate=true Type=exec KillMode=process Environment=LOGGING="--log-level=info" ExecStart=/usr/bin/podman $LOGGING system service [Install] WantedBy=default.target EOF cat < podman-deb/usr/lib/systemd/system/podman.socket [Unit] Description=Podman API Socket Documentation=man:podman-system-service(1) [Socket] ListenStream=%t/podman/podman.sock SocketMode=0660 [Install] WantedBy=sockets.target EOF # Copy the binaries mkdir -p podman-deb/usr/local/bin cp -v build/bin/podman podman-deb/usr/local/bin/ cp -v build/bin/podman-remote podman-deb/usr/local/bin/ cp -v build/bin/quadlet podman-deb/usr/local/bin/ cp -v build/bin/rootlessport podman-deb/usr/local/bin/ # ofc the permission chmod 755 podman-deb/usr/local/bin/* # Finally build the .deb dpkg-deb --build podman-deb build