Команды 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. Для этого
- Откройте Xcode и нажмите
Cmd
+,
- Нажмите Загрузки
- Установите инструменты командной строки.
Была такая же проблема. У меня 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.