Installation
macpine depends on QEMU >= 6.2.0_1:
#brew update
#brew upgrade
brew install qemu
Known issue: QEMU 11.1.1 has a regression that can hang
aarch64instances on boot when usingvmnetnetworking. See Troubleshooting if you hit this.
Running vmnet networking without sudo
Instances with vmnet: true in config.yaml (bridged networking, giving the instance a real LAN-reachable IP) normally require alpine start/stop to run as root. That's because QEMU's built-in vmnet-shared networking calls macOS's Vmnet.framework directly, which requires root privileges (or a special Apple-granted entitlement that a plain Homebrew build of QEMU doesn't have).
To avoid sudo for every vmnet VM start/stop, install socket_vmnet — the same privileged-helper daemon used by Lima and Colima. It does the one privileged vmnet setup step in the background; unprivileged processes (including macpine) then talk to it over a Unix socket instead of calling Vmnet.framework themselves:
brew install socket_vmnet
sudo brew services start socket_vmnet # one-time; runs the daemon persistently in the background
Once the daemon is running, macpine detects it automatically and uses it for any vmnet instance — no configuration needed, and no more sudo on alpine start/stop/ssh/exec for those instances. If socket_vmnet isn't installed or running, macpine falls back to QEMU's native vmnet-shared networking (requiring sudo) exactly as before.
Install the latest binary
Download the latest binary release for your system and add it to your path by placing to e.g. /usr/local/bin/
wget https://github.com/beringresearch/macpine/releases/download/v1.0/alpine_darwin_arm64
mv alpine_darwin_arm64 alpine
sudo chmod +x alpine
sudo mv alpine /usr/local/bin/
Install via Homebrew (recommended)
brew install macpine
Install via MacPorts
On MacOS, you can install via MacPorts:
sudo port install macpine
Install from source
git clone https://github.com/beringresearch/macpine
cd macpine
make
make install #install to /usr/local by default, may require sudo