git-上载包:命令找不到

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (51)

当我试图在我的服务器上克隆一个存储库时,我得到以下信息:

bash: git-upload-pack: command not found

但当我通过克隆-u /usr/local/bin/git-upload-pack选项,一切正常。

我想这是合理的,因为这是我的服务器上的git-上传包的位置。

顶部的答案表明,服务器上的.bashrc文件需要更新以反映这一点,这是ssh you@remotemachine echo \$PATH不回来/usr/local/bin...。(它返回/usr/bin:/bin:/usr/sbin:/sbin).

但是,当我查看.bashrc文件时,它包含:

export PATH=/usr/local/bin:$PATH

所以我现在很困惑。

如何避免使用-u /usr/local/bin/git-upload-pack每次都有选择?为什么ssh you@remotemachine echo \$PATH不返回/usr/local/bin是吗?这与登录和非登录shell有关吗?

救命啊!提前谢谢。

提问于
用户回答回答于

在没有进入交互模式的情况下发送命令时,SSH默认不会加载您的环境。

好的解决方案是一个有.ssh/环境文件的解决方案:

in/etc/ssh/sshd_配置添加:

PermitUserEnvironment yes

然后只需创建.ssh/目录并将环境转储到.ssh/Environment:

cd ~/
mkdir .ssh
env > .ssh/environment

重启SSH

/etc/init.d/sshd restart

现在,当从本地机器执行此操作时:

ssh you@server.com  "which git-upload-pack"

你会得到

/usr/local/bin/git-upload-pack
用户回答回答于

是的,这与登录和非登录shell有关.。.bashrc文件只在非登录shell中加载。你可以用.bash_profile用于登录shell。只需将相同的修改添加到你的PATH.bash_profile把文件归档,你就应该很好。

export PATH=/usr/local/bin:$PATH

扫码关注云+社区