2011-12-06 18 views
19

Al intentar clonar cualquier repositorio de GitHub a través de https, obtenemos:git detrás de Proxy: retirado CABEZA refiere a ref inexistente, incapaz de pago y envío

git clone https://github.com/rails/rails.git 
Cloning into rails... 
remote HEAD refers to nonexistent ref, unable to checkout 

Nuestro servidor está detrás de un proxy. Hemos definido http_proxy y https_proxy de manera apropiada. Todas las otras funciones están funcionando.

versión git es 1.7.5.4

Server es Ubuntu Server 11.04.

Tenga en cuenta que ya que esto ocurre con CADA repositorio github que hemos intentado, creemos firmemente que no es un problema con los refs en el repositorio. Hemos probado repositorios tan conocidos como jquery y rieles: si el problema estuviera en esos repositorios, mucha gente se estaría quejando. Creo firmemente que el problema es con git y el proxy, pero mi búsqueda en Google no me ha llevado a una solución.

Como un punto de datos adicional, los clones parecen funcionar bien si son http. Solo los clones de https que fallan con este error.

Tenga en cuenta que no creo que esta pregunta sea un duplicado, ya que las otras preguntas con este error se centran en problemas con el repositorio, no funciona con git y un proxy.

Respuesta

19

He tropezado a través de la solución a este problema a través de este mensaje:

http://comments.gmane.org/gmane.comp.version-control.git/185459

La cuestión es al parecer un error en la versión libcurl instalado en el servidor de Ubuntu 11.04. Simplemente ejecutar apt-get install libcurl3-gnutls no fue suficiente para resolver el problema, ya que simplemente informaba que la última versión ya estaba instalada.

Para resolver el problema, tuve que instalar manualmente las últimas libcurl3-gnutls, y dos dependencias, como se verá más adelante (obviamente, después de haberlos descargado a mi sistema primero):

sudo dpkg -i libp11-kit0_0.6-0ubuntu2_amd64.deb 
sudo dpkg -i libgnutls26_2.12.14-3_amd64.deb 
sudo dpkg -i libcurl3-gnutls_7.22.0-3ubuntu1_amd64.deb 

Espero que esto ayude alguien.

+0

Esto funcionó bien para mí, sacó los paquetes fuera de la cesión temporal de precisión. – jhogendorn

+0

Funcionó aquí también, aunque recibí el siguiente mensaje de error: "p11-kit: no se pudo cargar el módulo: /usr/lib/x86_64-linux-gnu/pkcs11/gnome-keyring-pkcs11.so:/usr/lib/x86_64-linux-gnu/pkcs11/gnome-keyring-pkcs11.so: no se puede abrir el archivo de objeto compartido: No existe dicho archivo o directorio ". [Reportado a Ubuntu.] (Https://bugs.launchpad.net/ubuntu/+source/curl/+bug/940431) – l0b0

+0

dpkg: error al procesar libcurl3-gnutls_7.22.0-3ubuntu4_amd64.deb (--install): la arquitectura del paquete (amd64) no coincide con el sistema (i386). Guay. ¿Podría publicar las soluciones de 32 bits también? De hecho, utilicé la solución de Alexey Romanov. –

10

los paquetes mencionados anteriormente se pueden encontrar aquí:

que utilizan estas versiones y fue capaz de utilizar git detrás de un proxy sin descendencia:

$ sudo dpkg -i libp11-kit0_0.10-1_amd64.deb libgnutls26_2.12.14-5ubuntu2_amd64.deb libcurl3-gnutls_7.22.0-3ubuntu2_amd64.deb 
9

Una solución que se encuentra en el error de Ubuntu vinculado:

añadir lo siguiente a ~/.gitconfig o/etc/gitconfig

# Workaround for bug when using SSL and HTTP proxy (LP #940431) 
[url "http://"] 
insteadOf = "https://" 

Ya no es necesario partir de 12.04.

Cuestiones relacionadas