2012-04-25 71 views
5

Cygwin的报告“-bash:在/ usr/bin中/ SVN:错误地址”

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

$ svn --version 

我得到-bash:/usr/bin/svn: Bad address

$ ls -l /usr/bin/svn 

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

我hav e尝试删除/usr/bin/cygwin1.dll并重新安装基础,但没有运气。

编辑:Futhermore,

$ type svn 
svn is /usr/bin/svn 

$ which svn 
/usr/bin/svn 

$ 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 

我的$ 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

你可以添加'输入svn'和'ldd $(哪个svn)'到你的文章? – sarnold 2012-04-25 01:04:32

+0

@sarnold已添加! – 2012-04-25 01:19:14

+0

另外,你能回应你的$ PATH吗? – 2012-04-25 01:27:11

回答

1

注意,在路径的差异:

$ type svn 
svn is /usr/bin/svn 

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

当您使用LDD,有某种硬编码路径来C:\cygwin\bin又名/bin/ ...您的可执行文件实际驻留在/usr/bin/

只为咯咯地笑,我会尝试复制或移动svn到/斌,只是为了看看这是否能解决问题。如果您复制而不是移动,请确保您将/ bin移动到$ PATH中的/ usr/bin之前,以便实际上调用它。

,我问了一下$PATH是那个cygwin的使用,以C:/cygdrive/c之间进行转换的机制被用双引号受阻的原因......我是在把引号我路径上的窗户边的习惯,这引起cygwin中的路径问题。当我看到一个未翻译的路径名称时,它响起了那个精神钟......唉,这不是问题。

+0

当我查看“C:\ cygwin \ usr \ bin”时,那里绝对没有任何内容。在“C:\ cygwin \ bin”中,我看到“svn.exe”和许多其他与svn相关的文件。但是在任何地方都没有简单的“svn”。我可能错过了一个别名? – 2012-04-25 13:38:32

+0

在这种情况下,我会尝试'$ ln /bin/svn.exe/usr/bin /'。如果'/ usr/bin/svn'不存在,我不明白'$ type svn'如何可以返回'svn is/usr/bin/svn'。如果你之前运行过它,你会看到'svn被哈希(/ usr/bin/svn)'......你可以改变内部的东西,然后再引用哈希的可执行文件......但这不是什么发生在这里。顺便说一句,'$ which svn'给你什么,它是不同于'$ type svn'? – 2012-04-25 13:53:31

+0

两者都给我'/ usr/bin/svn'。我也得到'ln:未能创建硬链接'/usr/bin/svn.exe':File exists'。这很奇怪,当我在'C:\ cygwin \ usr \ bin'的窗口中查看时,它完全是空的,但是'ls/usr/bin'返回长文件列表,看起来像'/ bin'中的那些。 – 2012-04-25 14:07:09

1

可能有一个dll丢失。尝试从提示可见在DOS下运行svn.exe:

C:>C:\ cygwin的\斌\ svn.exe

我有一个弹出窗口,表明cygproxy-1.dll文件丢失。重新安装任何包含代理的单词,问题就消失了。