podman/build_osx.md

2.2 KiB

Building the Podman client on macOS

The following describes the process for building the Podman client on macOS.

Install brew

Podman requires brew -- a package manager for macOS. This will allow additional packages to be installed that are needed by Podman. See the brew project page for installation instructions.

Install build dependencies

Podman requires some software from brew to be able to build. This can be done using brew from a macOS terminal:

$ brew install go go-md2man

Obtain Podman source code

You can obtain the latest source code for Podman from its github repository.

$ git clone https://github.com/containers/podman go/src/github.com/containers/podman

Build client

After completing the preparatory steps of obtaining the Podman source code and installing its dependencies, the client can now be built.

$ cd go/src/github.com/containers/podman
$ make podman-remote
$ mv bin/darwin/podman bin/podman

The binary will be located in bin/

$ ls -l bin/

Using gvproxy from homebrew, with podman from git

Recent podman builds depend on a gvproxy binary which comes from containers/gvisor-tap-vsock. A common development scenario may be using the podman desktop app as a baseline, with a development binary of podman you build from git. To ensure that the podman you build here can find the gvproxy installed from podman desktop, use:

make podman-remote HELPER_BINARIES_DIR=/opt/podman/bin

(Also note that because the Makefile rules do not correctly invalidate the binary when this variable changes, so if you already have a build you'll need to rm bin/darwin/podman first if you have an existing build).

Alternatively, you can set helper_binaries_dir= in ~/.config/containers/containers.conf.

Building docs

If you would like to build the docs associated with Podman on macOS:

$ make podman-remote-darwin-docs
$ ls docs/build/remote/darwin

To install and view these manpages:

$ cp -a docs/build/remote/darwin/* /usr/share/man/man1
$ man podman

Using the client

To learn how to use the Podman client, refer to its tutorial.