-
Notifications
You must be signed in to change notification settings - Fork 95
Description
Running overmind installed via ruby gem on MacOS 13 causes this error:
> which tmux
/opt/homebrew/bin/tmux
> bin/overmind
overmind: Can't find tmux. Did you forget to install it?
Knowing from previous experience that the ruby gem vendors compiled dependencies, I had a hunch where this would lead. So I took this route:
> pwd
/.../ruby/gems/3.3.0/gems/overmind-2.5.1-arm64-darwin/libexec/prebuilt-tmux/bin
> ./tmux
dyld[97360]: Symbol not found: _tiparm_s
Referenced from: <42CC8660-9D8B-339F-9967-E05EE9C76E8A> /.../ruby/gems/3.3.0/gems/overmind-2.5.1-arm64-darwin/libexec/prebuilt-tmux/bin/tmux (built for macOS 14.0 which is newer than running OS)
Expected in: <36E01F34-1B7D-33C5-B8D9-C97EB482572F> /usr/lib/libncurses.5.4.dylib
zsh: abort ./tmux
The root of the problem is that the tmux binary which is packaged with the ruby Overmind gem is built for MacOS 14 and newer, and there's no way to override it. The Overmind binary itself is more portable than that and has no issues getting loaded by dyld, tmux not so much. I commend the effort to install everything in one go, but I wonder if it should be system aware enough to scan for a tmux on path and use that if present?
In our case the workaround for this particular developer is "ok, just use the brew installed overmind." And that mostly works, except that our workflow wraps the overmind binary in a bin/dev script so it has other consequences. If it's welcome, I'd be happy to submit a pull request to tweak overmind/cli.rb to opt for the system tmux when available. If not, I'll probably just add that same override to our bin/dev to detect if overmind is installed on the system and use it instead of the ruby binary.