Git命令在Mac终端中不起作用:“dyld:未找到符号:___ strcpy_chk”错误

时间:2014-01-05 03:27:36

标签: macos git version-control terminal clone

我正在使用命令git clone ssh:// ....并在终端上收到以下错误:

dyld: lazy symbol binding failed: Symbol not found: ___strlcpy_chk
  Referenced from: /usr/local/git/bin/git
  Expected in: /usr/lib/libSystem.B.dylib

dyld: Symbol not found: ___strlcpy_chk
  Referenced from: /usr/local/git/bin/git
  Expected in: /usr/lib/libSystem.B.dylib

Trace/BPT trap: 5

6 个答案:

答案 0 :(得分:34)

我需要从Xcode安装命令行工具。为此 -

  1. 打开Xcode并点击Cmd + ,
  2. 点击下载
  3. 安装命令行工具。
  4. http://www.hongkiat.com/blog/mountain-lion-git-fix/

答案 1 :(得分:22)

有同样的问题。我有OS X 10.8,所以XCode不适合我。

原来我有一个与我的OS X版本不兼容的Git版本

此信息可能有所帮助(发现它谷歌搜索:)):

如果您正在运行:

  • 10.6 Snow Leopard:git-2.2.1-intel-universal-snow-leopard
  • 10.7狮子:git-2.2.1-intel-universal-snow-leopard
  • 10.8 Mountain Lion:git-2.2.1-intel-universal-snow-leopard
  • 10.9小牛:git-2.2.1-intel-universal-mavericks
  • 10.10 Yosemite:git-2.2.1-intel-universal-mavericks

您可以从这里下载: http://sourceforge.net/projects/git-osx-installer/files/

答案 2 :(得分:5)

我也遇到了同样错误的麻烦。我尝试了PATH和.bash_profile技巧(没有帮助)。我对安装Xcode以及随后的命令行工具'并不感兴趣。正如其他人的建议。但我偶然发现了半个答案。

首先,我卸载了当前版本的Git(1.9.2)。然后我发现可以自己安装命令行工具,而无需安装Xcode:

Xcode page:  https://developer.apple.com/xcode/
Downloads near the top
Scroll down to 'Additional Tools'->'View Downloads'
Command Line Tools (OS X Mountain Lion)

安装完成后,执行git --version'退了这个:

git version 1.8.5.2 (Apple Git-48)

文件" /usr/lib/libSystem.B.dylib"在这个过程中没有受到影响。或者至少,文件大小和日期没有改变。由于该库没有改变,我猜测Xcode不是修复东西,而是安装了Git的版本。

我考虑过测试该理论并找到各种版本的Git的旧源代码,但是没有时间花时间编译/安装/测试每一个,看看这个理论是否正确。我没有看到卸载“命令行”工具的简单方法。也许其他人更加强悍。 :)

- J

答案 3 :(得分:2)

还可以查看https://stackoverflow.com/a/19457333/894120,然后创建一个适合我的.bash_profile。

答案 4 :(得分:1)

问题是git维护者只支持MaxOS10.9(mavericks)。如果您有早期版本,则无法使用其分发版。

其他人推荐使用(home)brew。基本上安装brew后,您只能使用:

brew install git

它将为您提供最新版本。随后获取新版本使用:

brew upgrade git

现在brew本身使用git,所以可能是这个安装是递归的 - 我最近必须安装它用于其他目的,它花了我几个小时 - 但是一旦你有它,事情应该没问题。我只能说,当我最初安装brew时,“git”仍然提到1.8.x Apple版本,并且通过这个改变我现在得到git v2.1.0。

答案 5 :(得分:1)

我也被git困扰着可怕的事情:

dyld: lazy symbol binding failed: Symbol not found: ___strlcpy_chk
Referenced from: /usr/local/bin/git
Expected in: /usr/lib/libSystem.B.dylib

dyld: Symbol not found: ___strlcpy_chk
Referenced from: /usr/local/bin/git
Expected in: /usr/lib/libSystem.B.dylib

在阅读了许多成功执行的建议后,围绕更新xCode(> 2G)或只是xCode(~200M)的命令行工具部分,我安装了命令行工具,这解决了我在命令行中使用git时遇到的问题。

有趣的是,即使我做了更新,我也遇到了PyCharm遇到同样错误的问题。我能够通过改变找到git的路径来解决这个问题(在PyCharm-> Preferences ...-> Version Control-> Git,我将/ usr / local / bin / git更改为/ usr / bin / git靠近顶部):

Image of PyCharm->Preferences...->Version Control->Git

我终于弄明白到底发生了什么 - 并向我从网上收到的所有帮助表示敬意,想要分享细节:

我发现我的机器上安装了两个版本的git:

/usr/bin/git 
/usr/local/git/bin/git 
(also interestingly: /usr/local/bin/git -> ../git/bin/git)

将/ usr / bin放在路径中的一些建议有些帮助,但可能无法解决安装的git版本无效的琐碎问题。

请注意:

$ pwd 
/usr/local/git/bin 
$./git --version 
git version 2.8.1

$ pwd 
/usr/bin 
$ ./git --version 
git version 1.8.5.2 (Apple Git-48)

Apple git版本是可行的 - 这是可能通过从xCode安装命令行工具安装的版本。注意每个中的路径。另请注意,您不一定要安装整个命令行工具,只需安装适当版本的git。

此外,在/ usr / local / git / bin /目录中,有一个uninstall.sh脚本。在该脚本中,它使用pkgutil来卸载git的版本。 (您应该使用此脚本进行卸载。)您可以运行此行来验证此实用程序是否具有安装git的记录:

pkgutil --packages | grep com.git.pkg

这不是您想要的版本。你想要Apple版。使用/ usr / local / git / bin中的脚本卸载损坏的git版本。

卸载它可确保您永远不会收到此错误,并且您将使用正确版本的git。

希望能帮助其他人。信息很好但不完整。 PyCharm几乎没有任何东西。