пакет загрузки мерзавца: команда, не найденная, при клонировании удаленного Мерзавца repo

169
задан leftaroundabout 22 September 2017 в 13:55
поделиться

9 ответов

Удостоверьтесь git-upload-pack, находится на пути от оболочки невхода в систему. (На моей машине это находится в /usr/bin).

Для наблюдения, на что путь похож на удаленной машине от оболочки невхода в систему попробуйте это:

ssh you@remotemachine echo \$PATH

(Который работает в Bash, Zsh, и tcsh, и вероятно других оболочках также.)

, Если путь это отдает, не включает каталог, который имеет git-upload-pack, необходимо зафиксировать его путем установки его в .bashrc (для Bash), .zshenv (для Zsh), .cshrc (для tcsh) или эквивалентный для оболочки.

необходимо будет внести это изменение на удаленной машине.

, Если Вы не уверены, которые соединяют Вас каналом, должен добавить к Вашему удаленному PATH, можно найти его с этой командой (необходимо выполнить это на удаленной машине):

which git-upload-pack

На моей машине, которая печатает /usr/bin/git-upload-pack. Так в этом случае, /usr/bin путь, необходимо удостовериться, находится в удаленной оболочке невхода в систему PATH.

169
ответ дан Matt Curtis 23 November 2019 в 20:51
поделиться

Как Johan, на которого указывают много раз его .bashrc, это необходимо:

-s .bash_profile .bashrc

линии
1
ответ дан Stefan Lundström 23 November 2019 в 20:51
поделиться

Я нашел и использовал (успешно) эту фиксацию:

# Fix it with symlinks in /usr/bin
$ cd /usr/bin/
$ sudo ln -s /[path/to/git]/bin/git* .

Благодаря Paul Johnston .

30
ответ дан Andy 23 November 2019 в 20:51
поделиться

Для удара это должно быть помещено в .bashrc не .bash_profile (.bash_profile, также только для оболочек входа в систему).

7
ответ дан Andrew Grimm 23 November 2019 в 20:51
поделиться

Решение Matt не работало на меня на OS X, но Paul сделал.

короткая версия из ссылки Paul:

Созданный /usr/local/bin/ssh_session со следующим текстом:

#!/bin/bash
export SSH_SESSION=1
if [ -z "$SSH_ORIGINAL_COMMAND" ] ; then
    export SSH_LOGIN=1
    exec login -fp "$USER"
else
    export SSH_LOGIN=
    [ -r /etc/profile ] && source /etc/profile
    [ -r ~/.profile ] && source ~/.profile
    eval exec "$SSH_ORIGINAL_COMMAND"
fi

Выполнитесь:

chmod +x /usr/local/bin/ssh_session

Добавляют следующее к /etc/sshd_config:

ForceCommand/usr/local/bin/ssh_session

6
ответ дан Skeletron 23 November 2019 в 20:51
поделиться

Я получил эти ошибки с версией MsysGit.

После следования всему совету я мог найти здесь и в другом месте, я закончил:

установка версии Cygwin Мерзавца

на сервере (Выигрывают XP с Cygwin SSHD), это наконец зафиксировало его.

Я все еще использую сторону клиента версии MsysGit

.. на самом деле это - единственный способ, которым это работает на меня, так как я получаю ошибки POSIX с получением по запросу Мерзавца Cygwin с того же самого sshd сервера

Я подозреваю, что некоторая работа все еще необходима эта сторона использования Мерзавца.. (ssh+ease получения по запросу/нажатия в Windows)

5
ответ дан Ric Tokyo 23 November 2019 в 20:51
поделиться

Для zsh вам нужно поместить его в этот файл: ~ /. zshenv

Например, в OS X с использованием пакета git-core из MacPorts:

$ echo 'export PATH = / opt / local / sbin: / opt / local / bin: $ PATH'> ~ / .zshenv

0
ответ дан 23 November 2019 в 20:51
поделиться

Вы также можете использовать параметр «-u», чтобы указать путь. Я считаю это полезным на машинах, где мой .bashrc не загружается в неинтерактивных сеансах. Например,

git clone -u /home/you/bin/git-upload-pack you@machine:code
66
ответ дан 23 November 2019 в 20:51
поделиться

Mac OS X и некоторые другие системы Unix по крайней мере имеют путь пользователя, скомпилированный в sshd по соображениям безопасности, поэтому те из нас, кто устанавливает git как / usr / local / git / {bin, lib, ...}, могут столкнуться с проблемами поскольку исполняемые файлы git не находятся в предварительно скомпилированном пути. Чтобы переопределить это, я предпочитаю отредактировать мой / etc / sshd_config, изменив:

#PermitUserEnvironment no

на

PermitUserEnvironment yes

, а затем при необходимости создать файлы ~ / .ssh / environment. У моих пользователей git в файле ~ / .ssh / environment есть следующее:

PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin

Обратите внимание, что расширение переменной не происходит при чтении файла ~ / .ssh / environment, поэтому:

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

не будет работать.

12
ответ дан 23 November 2019 в 20:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: