Git -upload-pack: команда не найдена
Я прочитал этот ответ примерно восемь-пять раз, но там что-то не понимаю правильно:
git -upload-pack: команда не найдена, как исправить это правильно
Когда я пытаюсь клонировать репозиторий на моем сервере, я получаю следующее:
bash: git-upload-pack: command not found
Но когда я клонирую, предоставляя клон параметр -u /usr/local/bin/git-upload-pack
, все работает хорошо.
Я думаю, это имеет смысл, поскольку это положение пакета git -upload на моем сервере.
Верхний ответ показывает, что мой .bashrc файл на сервере нуждается в обновлении, чтобы отразить это, поскольку результат ssh [email protected] 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 [email protected] echo \$PATH
не возвращает /usr/local/bin
? Это как-то связано с входами и недействительными оболочками?
Пожалуйста, помогите! Спасибо заранее.
Ответы
Ответ 1
Это связано с этой проблемой:
https://serverfault.com/questions/130834/svnssh-getting-bash-to-load-my-path-over-ssh
Ssh не загружает вашу среду по умолчанию при отправке команды без перехода в интерактивный режим.
Хорошее решение - это файл с файлом .ssh/environment:
в файле /etc/ssh/sshd _config добавьте:
PermitUserEnvironment yes
Затем просто создайте каталог .ssh/directory и dump envronment для .ssh/enviroment:
cd ~/
mkdir .ssh
env > .ssh/environment
Перезапустить SSH
/etc/init.d/sshd restart
Теперь, когда вы сделаете это с вашей локальной машины:
ssh [email protected] "which git-upload-pack"
вы получите
/usr/local/bin/git-upload-pack
и git clone s'd.
Ответ 2
Да, это связано с подключением к логину и без входа. Файл .bashrc
загружается только в недействительные оболочки. Вы можете использовать .bash_profile
для систем входа. Просто добавьте ту же самую модификацию в PATH
в файл .bash_profile
, и вы должны быть хорошо.
export PATH=/usr/local/bin:$PATH
Вы можете найти интересную статью о различиях между .bashrc и .bash_profile, а также командами входа в систему и без входа.
Ответ 3
Я решил эту проблему в моем случае, войдя в удаленную машину, в поле Ubuntu и выполнив sudo apt-get install git
. Не уверен, что это чересчур или нет, но решила проблему для меня мгновенно.
Ответ 4
Мое решение для этой проблемы
Если он дает путь - скопируйте его (без git-upload-pack
и конечной косой черты. Примеры: /usr/bin
, /home/yourname/bin
, /whatever/gituploadpack/path
и т.д.).
Нет такого пути (/whatever/gituploadpack/path
), не так ли? Хорошо!
-
Войдите в свою удаленную машину:
ssh [email protected]
-
Откройте .bashrc_profile:
nano /home/yourname/.bashrc_profile
-
Найдите эти строки, если таковые имеются:
if [ -f ~/.bashrc ]; then
~/.bashrc
fi
... и изменить их для:
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
-
Откройте .bashrc:
nano /home/yourname/.bashrc
-
Добавьте следующие 4 строки:
if [ -d "/whatever/gituploadpack/path" ] ; then
PATH="$PATH:/whatever/gituploadpack/path"
fi
export PATH
-
Выход из удаленного компьютера:
exit
-
Проверьте свою PATH на удаленном компьютере во время сеанса входа:
ssh [email protected] 'echo $PATH'
Вы видите /whatever/gituploadpack/path
? Congrats!
Обратите внимание, что вы решили не только проблему git-upload-pack
, но также git-receive-pack
и другие исполняемые файлы на /whatever/gituploadpack/path
!
Ответ 5
Я получал следующие ошибки:
git-credential-osxkeychain died of signal 11
Когда я делал git pull, я бы получил
fatal: https://github.com/.../../info/refs?service=git-upload-pack not found: did you run git update-server-info on the server?
Я предполагаю, что это связано с моими предыдущими недопустимыми учетными данными github в цепочке ключей.
- Открытый инструмент доступа к цепочке ключей с использованием Командного пространства
- искали github в инструменте доступа keychain.
- удалены все записи, связанные с github (поскольку я больше не нуждаюсь в нем)
- снова следует раздел настройки git пароля setup git
- он работал
Включение любого из приведенных выше ответов не помогает.