Подтвердить что ты не робот

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? Это как-то связано с входами и недействительными оболочками?

Пожалуйста, помогите! Спасибо заранее.

4b9b3361

Ответ 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 на удаленном компьютере:

    ssh [email protected] 'which git-upload-pack'
    

Если он дает путь - скопируйте его (без git-upload-pack и конечной косой черты. Примеры: /usr/bin, /home/yourname/bin, /whatever/gituploadpack/path и т.д.).

  • Проверьте свою PATH на удаленном компьютере во время сеанса входа:

    ssh [email protected] 'echo $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
  • он работал

Включение любого из приведенных выше ответов не помогает.