#!/bin/bash cd /root/ apt update apt install -y \ btrfs-progs \ curl \ gcc \ git \ iptables \ libassuan-dev \ libbtrfs-dev \ libc6-dev \ libdevmapper-dev \ libglib2.0-dev \ libgpg-error-dev \ libgpgme-dev \ libprotobuf-c-dev \ libprotobuf-dev \ libseccomp-dev \ libselinux1-dev \ libsystemd-dev \ make \ pkg-config \ runc \ uidmap apt install --no-install-recommends -y libapparmor-dev libsystemd-dev wget curl make ca-certificates wget https://storage.googleapis.com/golang/getgo/installer_linux chmod +x ./installer_linux ./installer_linux PATH=$PATH:$HOME/.go/bin export PATH #source ~/.bash_profile # make conmon git clone https://github.com/containers/conmon cd conmon export GOCACHE="$(mktemp -d)" make cp -vr ./bin ~/build/ cd ~ # make runc git clone https://github.com/opencontainers/runc.git $GOPATH/src/github.com/opencontainers/runc cd $GOPATH/src/github.com/opencontainers/runc make BUILDTAGS="selinux seccomp" cp -v runc ~/build/ cp ~ # make podman PODMAN_VERSION=$(curl -s https://api.github.com/repos/containers/podman/releases/latest|grep tag_name|cut -d '"' -f 4) git clone https://github.com/containers/podman.git podman-$PODMAN_VERSION cd podman-$PODMAN_VERSION git checkout tags/$PODMAN_VERSION make ENABLE_BUILDTAGS="systemd" binaries cp -vr ./bin ~/build/ cd ~ #GO_VERSION=1.16.1 #ARCH=amd64 # #cd /root/ # #apt update #apt upgrade -y #apt-get install --no-install-recommends -y \ # btrfs-progs \ # crun \ # git \ # 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 ## golang-go \ # ## depdencies for this script #apt install --no-install-recommends -y jq wget curl make ca-certificates # ## install go #wget https://go.dev/dl/go$GO_VERSION.linux-amd64.tar.gz #rm -rf /usr/local/go && tar -C /usr/local -xzf go$GO_VERSION.linux-$ARCH.tar.gz #PATH=$PATH:/usr/local/go/bin #export PATH # ## get podman #PODMAN_VERSION=$(curl -s https://api.github.com/repos/containers/podman/releases/latest | jq '.name' -r) #git clone https://github.com/containers/podman.git podman-$PODMAN_VERSION #cd podman-$PODMAN_VERSION #git checkout tags/$PODMAN_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 #PODMAN_NOV_VERSION=$(echo $PODMAN_VERSION | sed s/v//) # ### PREPARE to package into .deb #mkdir -p podman-deb/DEBIAN #cat < podman-deb/DEBIAN/control #Package: podman #Version: $PODMAN_NOV_VERSION #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