web-dev-qa-db-fra.com

Les commandes Git ne fonctionnent pas dans le terminal Mac: erreur "dyld: Symbol not found: ___strlcpy_chk"

J'utilise la commande git clone ssh: // .... et j'obtiens l'erreur suivante sur le terminal:

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
31
KateMak

J'avais besoin d'installer des outils de ligne de commande à partir de Xcode. Faire cela-

  1. Ouvrez Xcode et appuyez sur Cmd + ,
  2. Cliquez sur Téléchargements
  3. Installez les outils de ligne de commande.

http://www.hongkiat.com/blog/mountain-lion-git-fix/

34
KateMak

Eu le même problème. J'ai OS X 10.8, donc XCode n'était pas une solution pour moi.

Il s'avère que j'avais une version Git qui n'est pas compatible avec ma version OS X

Cette information pourrait aider (l'a trouvée googler :)):

Si vous courez:

  • 10.6 Snow Leopard: git-2.2.1-intel-universal-snow-leopard
  • 10.7 Lion: git-2.2.1-intel-universal-leopard des neiges
  • 10.8 Mountain Lion: git-2.2.1-intel-universal-snow-leopard
  • 10.9 Mavericks: git-2.2.1-intel-universal-mavericks
  • 10.10 Yosemite: git-2.2.1-intel-universal-mavericks

Vous pouvez télécharger ici: http://sourceforge.net/projects/git-osx-installer/files/

22
Dana

J'avais aussi des problèmes avec la même erreur. J'ai essayé les astuces PATH et .bash_profile (n'a pas aidé). Je n'étais pas vraiment intéressé par l'installation de Xcode, puis des "outils de ligne de commande" comme d'autres l'avaient suggéré. Mais je suis tombé sur une demi-réponse.

Tout d'abord, j'ai désinstallé ma version actuelle de Git (1.9.2). J'ai ensuite constaté qu'il était possible d'installer les outils de ligne de commande par eux-mêmes, sans installer 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)

Avec ceux installés, faire 'git --version' a retourné ceci:

git version 1.8.5.2 (Apple Git-48)

Le fichier "/usr/lib/libSystem.B.dylib" n'a pas été modifié au cours de ce processus. Ou du moins, la taille et la date du fichier n'ont pas changé. Comme cette bibliothèque n'a pas changé, je suppose que ce n'est pas Xcode qui corrige les choses, mais la version de Git qui est installée.

J'ai pensé à tester cette théorie et j'ai trouvé l'ancien code source pour diverses versions de Git, mais je n'ai pas eu le temps de passer à compiler/installer/tester chacune pour voir si cette théorie est correcte. Et je n'ai pas vu de méthode simple pour désinstaller les "outils de ligne de commande". Peut-être que quelqu'un d'autre est plus intrépide. :)

- J

5
Cronk

On peut également regarder https://stackoverflow.com/a/19457333/89412 et juste créer un .bash_profile, qui a fonctionné pour moi.

2
Base_v

Le problème est que les responsables git ne prennent en charge que MaxOS10.9 (mavericks). Si vous avez une version antérieure, vous ne pouvez pas utiliser leur distribution.

Recommandé par quelqu'un d'autre au travail - utilisez (home) brew . Fondamentalement, avec l'infusion installée, vous pouvez simplement utiliser:

brew install git

et il vous donnera une version à jour. Par la suite, pour obtenir une nouvelle version, utilisez:

brew upgrade git

Maintenant, le brassage lui-même utilise git, il se peut donc que cette installation soit récursive - j'ai dû l'installer récemment dans un autre but et cela m'a pris plusieurs heures - mais une fois que vous l'avez là, les choses devraient être OK. Tout ce que je peux dire, c'est que lorsque j'ai installé brew à l'origine, "git" faisait toujours référence à la version 1.8.x Apple, et avec ce changement, je reçois maintenant git v2.1.0.

1
johnfo

J'étais également en proie à du git provoquant la crainte:

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

Après avoir lu de nombreuses suggestions exécutées avec succès concernant la mise à jour de xCode (> 2G) ou juste la partie Outils de ligne de commande de xCode (~ 200M), j'ai installé les outils de ligne de commande et cela a résolu mon problème lors de l'utilisation de git à partir de la ligne de commande.

Fait intéressant, j'ai eu des problèmes avec PyCharm obtenant la même erreur, même après avoir fait la mise à jour. J'ai pu résoudre ce problème en modifiant le chemin d'accès à git (dans PyCharm-> Préférences ...-> Contrôle de version-> Git, j'ai changé/usr/local/bin/git en/usr/bin/git près de la Haut):

Image de PyCharm-> Préférences ...-> Contrôle de version-> Git

J'ai finalement compris exactement ce qui se passe - et pour rendre hommage à toute l'aide que j'ai reçue du Web, je veux partager les détails:

J'ai découvert qu'il y avait deux versions de git installées sur ma machine:

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

Certaines suggestions pour mettre/usr/bin dans le chemin d'accès sont quelque peu utiles, mais pourraient ne pas résoudre le problème insignifiant qu'une version de git installée ne fonctionne pas.

Notez donc ceci:

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

Et:

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

La version Apple git est celle qui fonctionne - c'est celle probablement installée en installant les outils de ligne de commande à partir de xCode. Notez les chemins d'accès dans chacun. Notez également que vous n'avez pas nécessairement pour installer l'ensemble des outils de ligne de commande, juste une version correcte de git.

De plus, dans le répertoire/usr/local/git/bin /, il y a un script uninstall.sh. Dans ce script, il utilise pkgutil pour désinstaller la version de git. (Vous devez utiliser ce script pour effectuer la désinstallation.) Vous pouvez exécuter cette ligne pour vérifier que cet utilitaire a bien enregistré l'installation de git:

pkgutil --packages | grep com.git.pkg

Ce n'est pas la version que vous souhaitez. Vous voulez la version Apple. Utilisez le script dans/usr/local/git/bin pour désinstaller la version cassée de git.

La désinstallation garantit que vous n'obtiendrez jamais cette erreur et que vous utiliserez la bonne version de git.

J'espère que cela aide certains autres. L'info était bonne mais incomplète. Et il n'y avait presque rien pour PyCharm.

1
Kiki Jewell