podman/build_osx.md
Colin Walters f9de9809e3 docs/build_osx.md: Describe external gvproxy
I think many podman-MacOS developers will fit into what this
doc section describes.

Signed-off-by: Colin Walters <walters@verbum.org>
2024-01-02 13:31:30 -05:00

70 lines
2.2 KiB
Markdown

# 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](https://brew.sh/) 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](https://github.com/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](https://github.com/containers/podman/blob/main/docs/tutorials/remote_client.md).