上
$ svn co http://plugins.svn.wordpress.org/jetpack-easy-playlists/ jep/
Run Code Online (Sandbox Code Playgroud)
要么
$ svn --version
Run Code Online (Sandbox Code Playgroud)
我得到了--bash: /usr/bin/svn: Bad address
$ ls -l /usr/bin/svn
Run Code Online (Sandbox Code Playgroud)
给我 -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
Run Code Online (Sandbox Code Playgroud)
和
$ which svn
/usr/bin/svn
Run Code Online (Sandbox Code Playgroud)
和
$ 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
Run Code Online (Sandbox Code Playgroud)
我的$ 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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
注意路径的区别:
$ type svn
svn is /usr/bin/svn
$ ldd $(which svn)
...
couldn't open C:\cygwin\bin\svn
cannot load file
Run Code Online (Sandbox Code Playgroud)
当您使用 ldd 时,有某种硬编码路径,又名C:\cygwin\bin.../bin/您的可执行文件实际上驻留在/usr/bin/
只是为了咯咯笑,我会尝试将 svn 复制或移动到 /bin 中,看看这是否可以解决问题。如果您复制而不是移动,请确保在 $PATH 中将 /bin 移动到 /usr/bin 之前,以便这实际上是被调用的。
我问的原因$PATH是 cygwin 用于在C:和 之间进行转换的机制/cygdrive/c受到双引号的阻碍...我习惯在 Windows 端的路径周围加上引号,这导致 cygwin 中的路径出现问题。当我看到一个未翻译的路径名时,心里就敲响了警钟……唉,这不是问题所在。