Команды Git не работают в терминале Mac: ошибка "dyld: Symbol not found: ___strlcpy_chk"

Я использую команду 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 ответов

Решение

Мне нужно было установить инструменты командной строки из Xcode. Для этого

  1. Откройте Xcode и нажмите Cmd+,
  2. Нажмите Загрузки
  3. Установите инструменты командной строки.

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

Была такая же проблема. У меня OS X 10.8, поэтому XCode не был для меня решением.

Оказывается, у меня была версия Git, которая не совместима с моей версией OS X

Эта информация может помочь (нашел, что он гуглит:)):

Если вы работаете:

  • 10.6 Snow Leopard: git-2.2.1-intel-universal-snow-leopard
  • 10.7 Lion: git-2.2.1-intel-universal-snow-leopard
  • 10.8 Горный лев: 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/

У меня также были проблемы с той же ошибкой. Я попробовал трюки 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

Я был также изведен мерзавцем, вызывающим ужас:

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 рядом с Топ):

Изображение PyCharm-> Настройки...-> Контроль версий-> 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 почти ничего не было.

Можно также посмотреть на /questions/18118481/oshibka-git-dyld-ne-udalos-svyazat-lenivyij-simvol-simvol-ne-najden-iconvopen/18118489#18118489 и просто сделать.bash_profile, который работал для меня.

Проблема в том, что сопровождающие git поддерживают только MaxOS10.9 (mavericks). Если у вас есть более ранняя версия, вы не можете использовать их распространение.

Рекомендовано кем-то другим на работе - используйте (домашний) напиток. В основном с установленным brew вы можете просто использовать:

brew install git

и это даст вам актуальную версию. Впоследствии, чтобы получить новую версию, используйте:

brew upgrade git

Теперь сам brew использует git, поэтому, возможно, эта установка рекурсивна - мне пришлось установить ее недавно для другой цели, и это заняло у меня несколько часов - но как только она у вас будет, все должно быть в порядке. Все, что я могу сказать, это то, что когда я установил brew изначально, "git" все еще ссылался на версию Apple 1.8.x, и с этим изменением я теперь получаю git v2.1.0.

Другие вопросы по тегам