Skip to content

(ruby gem) Unable to run overmind on MacOS 13: "overmind: Can't find tmux. Did you forget to install it?" #198

@robacarp

Description

@robacarp

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions