podman: podman machine start cannot find gvproxy when brew is not installed in the standard directory

Is this a BUG REPORT or FEATURE REQUEST? (leave only one on its own line)

/kind bug

Description

It is not possible to run podman machine start when brew is not installed in the default location.

Steps to reproduce the issue:

  1. Install brew on your user directory, as described in the official docs: mkdir ~/homebrew && curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C ~/homebrew

  2. Install podman

brew install podman
podman machine init
podman machine start 

Describe the results you received:

podman machine start returns:

Error: unable to start host networking: 
"could not find \"gvproxy\" in one of 
[
  /usr/local/opt/podman/libexec 
  /opt/homebrew/bin /opt/homebrew/opt/podman/libexec 
  /usr/local/bin /usr/local/libexec/podman 
  /usr/local/lib/podman 
  /usr/libexec/podman 
  /usr/lib/podman
]"

Describe the results you expected: Podman should be able to find its install location and pick up the gvproxy bin inside its libexec folder.

I can confirm that gvproxy IS inside ~/homebrew/Cellar/podman/3.4.1/libexec/ folder.

Output of podman version:

Cannot connect to Podman ....

Have you tested with the latest version of Podman and have you checked the Podman Troubleshooting Guide? (https://github.com/containers/podman/blob/master/troubleshooting.md)

Yes

Additional environment details (AWS, VirtualBox, physical, etc.): MacOS Big Sur 11.3.1

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Reactions: 1
  • Comments: 37 (22 by maintainers)

Commits related to this issue

Most upvoted comments

I know, but gvproxy is the only missing part, if I link it to one of the paths podman listed that it is looking for it, everything works as expected.

Can it then be a new feature? Where podman just reads its realpath and look for gvproxy in one more folder? Its own libexec folder?

It would be great for people that do not have root access, as it is blocked by the Enterprise restrictions, so installing in other places is the only alternative.

Thanks.

This is an issue for nix installs

Closed via: #13372

Example usage: make podman-remote HELPER_BINARIES_DIR=/my/location/prefix

Alright, we’ll look into a solution where a location can be set during compile-time using our makefile.

Right, here they translate to:

HOMEBREW_PREFIX: /home/linuxbrew/.linuxbrew

prefix: /home/linuxbrew/.linuxbrew/Cellar/podman/3.4.1

And have to use podman-remote


It installs as a special user (with sudo), just to share precompiled binaries.

I could have installed it under /home/anders, and compiled everything…

https://docs.brew.sh/Homebrew-on-Linux

The installation script installs Homebrew to /home/linuxbrew/.linuxbrew using sudo if possible and in your home directory at ~/.linuxbrew otherwise.

brew install --build-from-source podman

#{prefix} is /usr/local/Cellar/foo/0.1/. $HOMEBREW_PREFIX is different, it’s /usr/local. every formula in cellar is also symlinked into $HOMEBREW_PREFIX/opt/foo. The docs are pretty confusing on this, but I just verified this on my machine.

@afbjorklund for most places, it would link to $HOMEBREW_PREFIX/bin or $HOMEBREW_PREFIX/lib, but libexec is special in Homebrew, it doesn’t get linked to the homebrew prefix