Rather than having to use a search engine to read up on how to install podman
on Oracle Linux 8, I thought I’d write the procedure down. Hopefully this saves you (and me) a few minutes next time the task comes up. I probably should write a short Ansible Playbook at some point, but that’s for another post.
The easiest way to install podman
on Oracle Linux 8 is to install the entire podman
module. If you haven’t used modules and application streams yet in Oracle Linux 8 yet, you can find more details in the Oracle Linux 8 documentation. Quoting from chapter 5, section “Use DNF Modules and Application Streams” in Managing Software in Oracle Linux Guide:
DNF introduces the concepts of modules, streams and profiles to allow for the management of different versions of software applications within a single operating system release. Modules can be used to group together many packages that comprise a single application and its dependencies.
This sounds exactly like what I want.
Installing the Podman Module
So what do the concepts of stream and module mean in practice? Podman is shipped as a module in the Application Stream (AppStream):
[root@ol8podman ~]# dnf module list container-tools:ol8 Last metadata expiration check: 0:12:47 ago on Fri 15 Jul 2022 10:13:15 BST. Oracle Linux 8 Application Stream (x86_64) Name Stream Profiles Summary container-tools ol8 [d] common [ Most recent (rolling) versions of podman, buildah, skopeo, runc, conmon, d] runc, conmon, CRIU, Udica, etc as well as dependencies such as containe r-selinux built and tested together, and updated as frequently as every 12 weeks. Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Rather than installing the podman
RPM on its own and figure out which other packages I need I went with the installation of the entire module:
[root@ol8podman ~]# dnf module install container-tools:ol8 Last metadata expiration check: 0:15:25 ago on Fri 15 Jul 2022 10:13:15 BST. Dependencies resolved. ========================================================================================================= Package Arch Version Repository Size ========================================================================================================= Installing group/module packages: buildah x86_64 1:1.24.2-4.module+el8.6.0+20665+a3b29bef ol8_appstream 8.1 M cockpit-podman noarch 43-1.module+el8.6.0+20665+a3b29bef ol8_appstream 493 k conmon x86_64 2:2.1.0-1.module+el8.6.0+20665+a3b29bef ol8_appstream 55 k container-selinux noarch 2:2.179.1-1.module+el8.6.0+20665+a3b29bef ol8_appstream 58 k containernetworking-plugins x86_64 1:1.0.1-2.module+el8.6.0+20665+a3b29bef ol8_appstream 18 M containers-common x86_64 2:1-27.0.1.module+el8.6.0+20665+a3b29bef ol8_appstream 67 k criu x86_64 3.15-3.module+el8.6.0+20665+a3b29bef ol8_appstream 518 k crun x86_64 1.4.4-1.module+el8.6.0+20665+a3b29bef ol8_appstream 209 k fuse-overlayfs x86_64 1.8.2-1.module+el8.6.0+20665+a3b29bef ol8_appstream 73 k libslirp x86_64 4.4.0-1.module+el8.6.0+20665+a3b29bef ol8_appstream 70 k podman x86_64 2:4.0.2-6.module+el8.6.0+20665+a3b29bef ol8_appstream 13 M python3-podman noarch 4.0.0-1.module+el8.6.0+20665+a3b29bef ol8_appstream 149 k runc x86_64 1:1.0.3-2.module+el8.6.0+20665+a3b29bef ol8_appstream 3.0 M skopeo x86_64 2:1.6.1-2.module+el8.6.0+20665+a3b29bef ol8_appstream 6.7 M slirp4netns x86_64 1.1.8-2.module+el8.6.0+20665+a3b29bef ol8_appstream 51 k udica noarch 0.2.6-3.module+el8.6.0+20665+a3b29bef ol8_appstream 49 k Installing dependencies: checkpolicy x86_64 2.9-1.el8 ol8_baseos_latest 346 k cockpit-bridge x86_64 264.1-1.0.1.el8 ol8_baseos_latest 535 k fuse-common x86_64 3.3.0-15.0.2.el8 ol8_baseos_latest 22 k fuse3 x86_64 3.3.0-15.0.2.el8 ol8_baseos_latest 55 k fuse3-libs x86_64 3.3.0-15.0.2.el8 ol8_baseos_latest 95 k glib-networking x86_64 2.56.1-1.1.el8 ol8_baseos_latest 155 k gsettings-desktop-schemas x86_64 3.32.0-6.el8 ol8_baseos_latest 633 k json-glib x86_64 1.4.4-1.el8 ol8_baseos_latest 144 k libmodman x86_64 2.0.1-17.el8 ol8_baseos_latest 36 k libnet x86_64 1.1.6-15.el8 ol8_appstream 67 k libproxy x86_64 0.4.15-5.2.el8 ol8_baseos_latest 75 k podman-catatonit x86_64 2:4.0.2-6.module+el8.6.0+20665+a3b29bef ol8_appstream 354 k policycoreutils-python-utils noarch 2.9-19.0.1.el8 ol8_baseos_latest 253 k protobuf-c x86_64 1.3.0-6.el8 ol8_appstream 37 k python3-audit x86_64 3.0.7-2.el8.2 ol8_baseos_latest 87 k python3-chardet noarch 3.0.4-7.el8 ol8_baseos_latest 195 k python3-idna noarch 2.5-5.el8 ol8_baseos_latest 97 k python3-libsemanage x86_64 2.9-8.el8 ol8_baseos_latest 128 k python3-pip noarch 9.0.3-22.el8 ol8_appstream 20 k python3-policycoreutils noarch 2.9-19.0.1.el8 ol8_baseos_latest 2.2 M python3-pysocks noarch 1.6.8-3.el8 ol8_baseos_latest 34 k python3-pytoml noarch 0.1.14-5.git7dea353.el8 ol8_appstream 25 k python3-pyxdg noarch 0.25-16.el8 ol8_appstream 94 k python3-requests noarch 2.20.0-2.1.el8_1 ol8_baseos_latest 123 k python3-setools x86_64 4.3.0-3.el8 ol8_baseos_latest 624 k python3-setuptools noarch 39.2.0-6.el8 ol8_baseos_latest 163 k python3-urllib3 noarch 1.24.2-5.0.1.el8 ol8_baseos_latest 177 k python36 x86_64 3.6.8-38.module+el8.5.0+20329+5c5719bc ol8_appstream 19 k shadow-utils-subid x86_64 2:4.6-16.el8 ol8_baseos_latest 112 k yajl x86_64 2.1.0-10.el8 ol8_appstream 41 k Installing module profiles: container-tools/common Enabling module streams: container-tools ol8 python36 3.6 Transaction Summary ========================================================================================================= Install 46 Packages Total download size: 58 M Installed size: 200 M ...
This is great! The current stable podman
release at the time of writing is 4.1.1, so getting 4.0.2 doesn’t look too bad to me :)
Summary
Installing podman
on Oracle Linux 8 is quite simple provided you are happy to install the entire podman
module. The module provides a very convenient way to install recent releases for podman
and its related tools (buildah
, skopeo
, …). Podman is important enough to get its own User Guide in the Oracle Linux 8 documentation set, the installation instructions I used when putting this post together can be found in chapter 2.