Cygwin报告“-bash:/ usr / bin / svn:Bad address”

时间:2012-04-25 01:02:58

标签: svn bash cygwin

$ 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

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

编辑:此外,

$ 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.

2 个答案:

答案 0 :(得分: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之前移动/ bin,这实际上就是调用它。

我询问$PATH的原因是cygwin用于在C:/cygdrive/c之间进行翻译的机制受到双引号的阻碍......我养成了放置的习惯引用我在Windows窗口的路径,这引起了cygwin路径的问题。当我看到一个未翻译的路径名称时,它敲响了那个心灵的钟声......唉,这不是问题所在。

答案 1 :(得分:1)

可能缺少dll。尝试从dos提示符运行svn.exe:

C:GT;的 C:\ cygwin的\ BIN \ svn.exe

我得到一个弹出窗口,表示缺少cygproxy-1.dll。用其中的单词proxy重新安装任何东西,问题就消失了。