github.com/containers/podman/v5@v5.1.0-rc1/DISTRO_PACKAGE.md (about)

     1  # Podman Packaging
     2  
     3  This document is currently written with Fedora as a reference, intended for use
     4  by packagers of other distros as well as package users.
     5  
     6  ## Fedora Users
     7  Podman v4 is available as an official Fedora package on Fedora 36 and rawhide.
     8  This version of Podman brings with it a new container stack called
     9  Netavark which serves as a replacement for CNI plugins
    10  (containernetworking-plugins on Fedora), as well as Aardvark-dns, the
    11  authoritative DNS server for container records.
    12  
    13  Both Netavark and Aardvark-dns are available as official Fedora packages on
    14  Fedora 35 and newer versions and form the default network stack for new
    15  installations of Podman 4.0.
    16  
    17  On Fedora 36 and newer, fresh installations of Podman v4 will
    18  automatically install Aardvark-dns along with Netavark.
    19  
    20  To install Podman v4:
    21  
    22  ```console
    23  $ sudo dnf install podman
    24  ```
    25  
    26  To update Podman from an older version to v4:
    27  
    28  ```console
    29  $ sudo dnf update podman
    30  ```
    31  
    32  **NOTE:** Fedora 35 users will not be able to install Podman v4 using the default yum
    33  repositories and are recommended to use the COPR repo below:
    34  
    35  ```console
    36  $ sudo dnf copr enable rhcontainerbot/podman4
    37  
    38  # install or update per your needs
    39  $ sudo dnf install podman
    40  ```
    41  
    42  After installation, if you would like to migrate all your containers to use
    43  Netavark, you will need to set `network_backend = "netavark"` under
    44  the `[network]` section in your containers.conf, typically located at:
    45  `/usr/share/containers/containers.conf`
    46  
    47  ### Testing the latest development version`
    48  
    49  If you would like to test the latest unreleased upstream code, try the
    50  podman-next COPR
    51  
    52  ```console
    53  $ sudo dnf copr enable rhcontainerbot/podman-next
    54  
    55  $ sudo dnf install podman
    56  ```
    57  
    58  **CAUTION:** The podman-next COPR provides the latest unreleased sources of Podman,
    59  Netavark and Aardvark-dns as rpms which would override the versions provided by
    60  the official packages.
    61  
    62  ## Distro Packagers
    63  
    64  The Fedora packaging sources for Podman are available at the [Podman
    65  dist-git](https://src.fedoraproject.org/rpms/podman).
    66  
    67  The main `podman` package no longer explicitly depends on
    68  containernetworking-plugins. The network stack dependencies are now handled in
    69  the [containers-common](https://src.fedoraproject.org/rpms/containers-common)
    70  package which allows for a single point of dependency maintenance for Podman
    71  and Buildah.
    72  
    73  - containers-common
    74  ```
    75  Requires: container-network-stack
    76  Recommends: netavark
    77  ```
    78  
    79  - netavark
    80  ```
    81  Provides: container-network-stack = 2
    82  ```
    83  
    84  - containernetworking-plugins
    85  ```
    86  Provides: container-network-stack = 1
    87  ```
    88  
    89  This configuration ensures:
    90  - New installations of Podman will always install netavark by default.
    91  - The containernetworking-plugins package will not conflict with netavark and
    92  users can install them together.
    93  
    94  ## Listing bundled dependencies
    95  If you need to list the bundled dependencies in your packaging sources, you can
    96  process the `go.mod` file in the upstream source.
    97  For example, Fedora's packaging source uses:
    98  
    99  ```
   100  $ awk '{print "Provides: bundled(golang("$1")) = "$2}' go.mod | sort | uniq | sed -e 's/-/_/g' -e '/bundled(golang())/d' -e '/bundled(golang(go\|module\|replace\|require))/d'
   101  ```