Deploying on a cluster¶
sinteractive runs tmux on the allocated compute node, and /usr/local
is typically node-local, so the tmux binary (and, for a system-wide install,
the script itself) must exist on every node. The Makefile has root-only admin
targets for this.
Building and distributing tmux¶
sinteractive needs tmux ≥ 3.7 on every compute node (path configurable via
SINTERACTIVE_TMUX). These targets build the latest
tmux release from source on the head node
and fan it out to the cluster:
# One-time: install build dependencies (RHEL/Rocky 9)
sudo make tmux-deps
# Download, build, and install into /usr/local
sudo make tmux
# Copy the built binary to every Slurm compute node
sudo make tmux-push
# Or do the build + push in one step
sudo make tmux-all
- Bump the version with
TMUX_VERSION, e.g.sudo make tmux TMUX_VERSION=3.8. - Restrict the push to specific nodes with
NODES, e.g.sudo make tmux-push NODES="compute00 compute01"(defaults to all Slurm nodes fromsinfo). tmux-pushcopies to a temp name and renames into place, so runningsinteractivesessions aren't disturbed.
Installing sinteractive on every node¶
This installs the script, man page, and bash completion to /usr/local on
every compute node.
If the checkout lives on a cluster-wide mount and pdsh is available, each
node installs straight from the shared path; otherwise it falls back to an
scp/ssh loop. NODES and SSH_USER are overridable as above.