2012-04-25 9 views
5

AlCygwin informa “-bash:/usr/bin/SVN: Bad dirección”

$ svn co http://plugins.svn.wordpress.org/jetpack-easy-playlists/ jep/ 

o

$ svn --version 

consigo -bash: /usr/bin/svn: Bad address

$ ls -l /usr/bin/svn 

me da -rwxr-xr-x 1 JFishwick Domain Users 189966 Mar 8 15:52 /usr/bin/svn

I hav e intenté eliminar /usr/bin/cygwin1.dll y reinstalar la base, pero sin suerte.

EDIT: Futhermore,

$ type svn 
svn is /usr/bin/svn 

y

$ which svn 
/usr/bin/svn 

y

$ ldd $(which svn) 
     ntdll.dll => /cygdrive/c/WINDOWS/system32/ntdll.dll (0x7c900000) 
     kernel32.dll => /cygdrive/c/WINDOWS/system32/kernel32.dll (0x7c800000) 
     cygsvn_client-1-0.dll => /usr/bin/cygsvn_client-1-0.dll (0x6f2c0000) 
     cygsvn_ra-1-0.dll => /usr/bin/cygsvn_ra-1-0.dll (0x620c0000) 
     cygsvn_ra_local-1-0.dll => /usr/bin/cygsvn_ra_local-1-0.dll (0x6b9c0000) 
     cygsvn_repos-1-0.dll => /usr/bin/cygsvn_repos-1-0.dll (0x6b6c0000) 
     cygsvn_fs-1-0.dll => /usr/bin/cygsvn_fs-1-0.dll (0x6e800000) 
     cygsvn_fs_base-1-0.dll => /usr/bin/cygsvn_fs_base-1-0.dll (0x6c780000) 
     cygsvn_delta-1-0.dll => /usr/bin/cygsvn_delta-1-0.dll (0x61bc0000) 
     cygsvn_subr-1-0.dll => /usr/bin/cygsvn_subr-1-0.dll (0x6d680000) 
     cygwin1.dll => /usr/bin/cygwin1.dll (0x61000000) 
     cygz.dll => /usr/bin/cygz.dll (0x692c0000) 
     cyggcc_s-1.dll => /usr/bin/cyggcc_s-1.dll (0x6bf40000) 
     cygapr-1-0.dll => /usr/bin/cygapr-1-0.dll (0x69f70000) 
     cyguuid-1.dll => /usr/bin/cyguuid-1.dll (0x542e0000) 
     cygaprutil-1-0.dll => /usr/bin/cygaprutil-1-0.dll (0x69f50000) 
couldn't open C:\cygwin\bin\svn 
cannot load file 

mi $ PATH:

$ echo $PATH 
/usr/local/bin:/usr/bin:/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32/Wbem:/cygdrive/c/PROGRA~1/IBM/CLIENT~1:/cygdrive/c/PROGRA~1/IBM/CLIENT~1/Shared:/cygdrive/c/PROGRA~1/IBM/CLIENT~1/Emulator:/cygdrive/c/Program Files/Common Files/Lenovo:/cygdrive/c/Program Files/TortoiseSVN/bin:/cygdrive/c/Program Files/Microsoft SQL Server/100/Tools/Binn:/cygdrive/c/Program Files/Microsoft SQL Server/100/DTS/Binn:/cygdrive/c/Program Files/WinSCP:/cygdrive/c/WINDOWS/system32/WindowsPowerShell/v1.0:/cygdrive/c/Program Files/QuickTime Alternative/QTSystem:/cygdrive/c/Program Files/Git/cmd:/cygdrive/c/Program Files/Google/Google Apps Sync:/cygdrive/c/Program Files/Google/Google Apps Migration:/cygdrive/c/Program Files/CVSNT: C:/Program Files/Java/jdk1.6.0_26/bin:/usr/lib/lapack 

vs

$ $PATH 
-bash: /usr/local/bin:/usr/bin:/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32/Wbem:/cygdrive/c/PROGRA~1/IBM/CLIENT~1:/cygdrive/c/PROGRA~1/IBM/CLIENT~1/Shared:/cygdrive/c/PROGRA~1/IBM/CLIENT~1/Emulator:/cygdrive/c/Program: No such file or directory 

Further discussion and fact finding here.

+0

¿Se puede agregar la salida de 'type svn' y' ldd $ (which svn) 'a su publicación? – sarnold

+0

@sarnold ¡Agregado! –

+0

Además, ¿puedes repetir tu $ PATH? –

Respuesta

1

Nota la diferencia de caminos:

$ type svn 
svn is /usr/bin/svn 

$ ldd $(which svn) 
    ... 
couldn't open C:\cygwin\bin\svn 
cannot load file 

Cuando se utiliza LDD, hay una especie de camino codificado difícil C:\cygwin\bin aka /bin/ ... su ejecutable reside en realidad en /usr/bin/

Solo para risitas, intento copiar o mover svn en/bin, solo para ver si esto resolverá el problema. Si copia en lugar de mover, asegúrese de mover/bin delante de/usr/bin en $ PATH, para que esto sea realmente lo que se llama.

La razón por la que me preguntó sobre $PATH es que el mecanismo que utiliza cygwin para traducir entre C: y /cygdrive/c se bloqueó por comillas dobles ... yo estaba en el hábito de poner comillas alrededor de mis caminos en el lado de las ventanas, lo que causó problemas con los caminos en cygwin. Cuando vi un nombre de ruta sin traducir, sonó la campana mental ... ¡ay !, ese no era el problema aquí.

+0

Cuando miro en "C: \ cygwin \ usr \ bin" no hay absolutamente nada allí. En "C: \ cygwin \ bin" veo "svn.exe" y muchos otros archivos relacionados con svn.Pero no hay un simple "svn" en ningún lugar. ¿Me estoy perdiendo un alias? –

+0

En ese caso, probaría '$ ln /bin/svn.exe/usr/bin /'. No entiendo cómo '$ type svn' puede devolver' svn is/usr/bin/svn' si '/ usr/bin/svn' no existe. Si lo hubiera ejecutado antes, vería que 'svn es hash (/ usr/bin/svn)' ... puede cambiar las cosas bajo el capó y seguir consultando el ejecutable hash ... pero eso no es lo que pasando aquí. Por cierto, ¿qué le otorga '$ which svn', y es diferente de' $ type svn'? –

+0

Ambos me dan '/ usr/bin/svn'. También obtengo 'ln: error al crear el enlace duro '/usr/bin/svn.exe': el archivo existe'. Es extraño, cuando miro en Windows en 'C: \ cygwin \ usr \ bin' está completamente vacío, pero' ls/usr/bin' devuelve una larga lista de archivos, aparentemente aquellos en '/ bin'. –

1

Es posible que falte un dll. Pruebe a ejecutar svn.exe desde el indicador de DOS vis:

c:>c: \ cygwin \ bin \ svn.exe

Tengo un pop-up que indica que cygproxy-1.dll faltaba. Reinstaló todo con la palabra proxy y el problema desapareció.