Unison仅支持macOS同步到Debian,反向同步报zsh命令未找到错误
解决Unison从Debian同步到Mac时的"command not found: unison"错误
这个问题的核心是:SSH登录Mac时的环境变量PATH没有包含brew安装的Unison路径——虽然你在Mac本地终端能正常运行Unison,但SSH会话加载的是简化版环境变量,找不到brew安装的程序路径。
解决方案1:在Unison命令中指定Mac端Unison的绝对路径
- 先在Mac本地终端执行
which unison,得到Unison的绝对路径(M系列Mac通常是/opt/homebrew/bin/unison,Intel Mac则是/usr/local/bin/unison)。 - 修改Debian上的Unison同步命令,通过
-server参数指定Mac端Unison的完整路径:
unison /home/debianuser/sync ssh://macuser@workingip//opt/homebrew/bin/unison -server /Documents/insync
或者用-sshcmd参数直接指定带路径的SSH执行命令:
unison /home/debianuser/sync ssh://macuser@workingip/Documents/insync -sshcmd "ssh macuser@workingip /opt/homebrew/bin/unison"
解决方案2:修复Mac SSH会话的PATH环境变量
让SSH登录Mac时自动加载包含brew路径的环境变量:
- 在Mac本地编辑
~/.zprofile(SSH登录默认是login shell,会读取这个配置文件),添加brew路径:- M系列Mac:
echo 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.zprofile - Intel Mac:
echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.zprofile
- M系列Mac:
- 从Debian重新SSH到Mac,执行
echo $PATH确认brew路径已包含其中,再测试unison -version是否能正常运行。 - 之后再执行原本的Unison同步命令即可。
额外注意点
确保Debian和Mac上的Unison主版本号一致(比如都是2.53.x),不同主版本的Unison可能出现兼容性问题,即使命令能找到也可能同步失败。
内容的提问来源于stack exchange,提问作者theCoder1243323543
相关产品推荐
相关产品推荐

