SSH - кш:мерзавец:не найден
Вопрос
У меня GIT запущен на сервере Solaris.
С компьютера с Windows я установил cygwin, чтобы попытаться клонировать репозиторий, размещенный на сервере.
Я делаю следующее:
$ git clone username@server:project.git ksh: git-upload-pack: not found
Поэтому я стараюсь
$ ssh username@server echo \$PATH /usr/bin
Похоже, что git находится не в /usr/bin/, а в /usr/local/bin/.Я попытался изменить ПУТЬ в .bashrc в моем домашнем каталоге на сервере, чтобы добавить /usr/local/bin/ ...но, похоже, это не работает.
Что я делаю не так ?
Решение
~/.bashrc
считывается оболочками, не входящими в систему, но только удар, и ваш сервер использует кш.
~/.profile
это (я думаю) универсальный файл инициализации, но он читается только с помощью оболочек входа в систему.
~/.kshrc
является типичным файлом запуска, считываемым ksh, но только в том случае, если ENV для него установлена переменная среды (но смотрите SendEnv в ssh_config manpage).
Кроме того, вы всегда можете пройти мимо --upload-pack=/usr/local/bin/git-upload-pack
опция "git clone" (а затем установить remote.origin.uploadpack
конфигурационная переменная), если вы не можете задать ПУТЬ на удаленном компьютере.И, конечно же remote.origin.receivepack
если он не может найти git-receive-pack.
Другие советы
Похоже, что ваша оболочка на машине Solaris - ksh, а не bash, поэтому ваш .bashrc не читается. Попробуйте внести изменения в .profile
Мне нужно было добавить / usr / local / bin к моему пути в .profile, чтобы его можно было найти на солярисе (и заставить работать git upload-pack). Я всегда думал, что это были мои коробки, которые были плохо настроены, но, возможно, не так ...