git-upload-pack: command no encontrado

He leído esta respuesta unas ocho o cinco veces, pero hay algo que no entiendo correctamente.

git-upload-pack: command no encontrado, cómo solucionarlo correctamente

Cuando trato de clonar un repository en mi server, obtengo lo siguiente:

bash: git-upload-pack: command not found 

Pero cuando clono dando clonar la opción -u /usr/local/bin/git-upload-pack , todo funciona bien.

Supongo que esto tiene sentido, ya que esa es la position del package de carga de git en mi server.

La respuesta principal sugiere que mi file .bashrc en el server debe actualizarse para reflejar esto, ya que el resultado de ssh you@remotemachine echo \$PATH no devuelve /usr/local/bin . (Devuelve /usr/bin:/bin:/usr/sbin:/sbin ).

Pero cuando miro mi file .bashrc, contiene:

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

Así que ahora estoy confundido.

¿Qué debo hacer para evitar usar la opción -u /usr/local/bin/git-upload-pack cada vez? ¿Por qué ssh you@remotemachine echo \$PATH no devuelve /usr/local/bin ? ¿Tiene esto algo que ver con los shells de inicio de session y los que no inician session?

¡Por favor ayuda! Gracias por adelantado.

Esto está relacionado con este problema:

https://serverfault.com/questions/130834/svnssh-getting-bash-to-load-my-path-over-ssh

Ssh no carga su entorno de forma pnetworkingeterminada al enviar un command sin pasar al modo interactivo.

una buena solución es la que tiene el file .ssh / environment:

en / etc / ssh / sshd_config agregar:

 PermitUserEnvironment yes 

A continuación, simplemente cree .ssh / directory y dump envronment para .ssh / enviroment:

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

Reiniciar SSH

 /etc/init.d/sshd restart 

Ahora cuando haces esto desde tu máquina local:

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

tu tendrías

 /usr/local/bin/git-upload-pack 

y git clone s'd trabajo.

Sí, tiene que ver con los shells de inicio de session y los que no inician session. El file .bashrc solo se carga en shells que no son de inicio de session. Puede usar .bash_profile para shell de inicio de session. Simplemente agregue la misma modificación a su PATH en el file .bash_profile y usted debería estar bien.

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

Puede encontrar que este es un artículo interesante sobre la diferencia entre .bashrc y .bash_profile, y los shells de inicio de session y de no inicio de session.

Resolví este problema en mi caso iniciando session en la máquina remota, en un cuadro de Ubuntu y haciendo sudo apt-get install git . No estoy seguro de si esto es excesivo o no, pero me solucionó el problema al instante.

Mi solución para este problema

  1. Compruebe la ruta de git-upload-pack en su máquina remota:

     ssh yourname@IP-addressORdomain 'which git-upload-pack' 

Si le da una ruta, cópiela (sin git-upload-pack y barra inclinada. Ejemplos: /usr/bin , /home/yourname/bin , /whatever/gituploadpack/path , etc.).

  1. Compruebe su PATH en la máquina remota durante el inicio de session shell:

     ssh yourname@IP-addressORdomain 'echo $PATH' 

No existe tal ruta ( /whatever/gituploadpack/path ), ¿no es así? ¡Bueno!

  1. Ingresa a tu máquina remota:

     ssh yourname@IP-addressORdomain 
  2. Abra .bashrc_profile:

     nano /home/yourname/.bashrc_profile 
  3. Encuentre estas líneas si las hay:

     if [ -f ~/.bashrc ]; then ~/.bashrc fi 

… y cambiarlos por:

  if [ -f ~/.bashrc ]; then source ~/.bashrc fi 
  1. Abra .bashrc:

     nano /home/yourname/.bashrc 
  2. Agregue estas 4 líneas:

     if [ -d "/whatever/gituploadpack/path" ] ; then PATH="$PATH:/whatever/gituploadpack/path" fi export PATH 
  3. Salga de la máquina remota:

     exit 
  4. Compruebe su PATH en la máquina remota durante el inicio de session shell:

     ssh yourname@IP-addressORdomain 'echo $PATH' 

¿Ves /whatever/gituploadpack/path ? Felicidades!

¡Tenga en count que ahora ha resuelto no solo el problema de git-upload-pack sino también git-receive-pack y otros ejecutables en su /whatever/gituploadpack/path !

git-cnetworkingential-osxkeychain died of signal 11 los siguientes errores: git-cnetworkingential-osxkeychain died of signal 11 Cuando estaba haciendo git pull, me ponía fatal: https://github.com/.../../info/refs?service=git-upload-pack not found: did you run git update-server-info on the server?

Supongo que tiene que ver con mis cnetworkingenciales de github inválidas anteriores en el llavero.

  • Herramienta de acceso de llavero abierta usando el espacio de Comando
  • buscado github en la herramienta de acceso llavero
  • eliminó todas las inputs relacionadas con github (ya que ya no la necesitaba)
  • seguido de la installation de la contraseña de la sección de almacenamiento en caching de nuevo configurar git
  • funcionó

En caso de que alguna de las respuestas anteriores no ayude.