Подтвердить что ты не робот

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
4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

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

  • 10.6 Snow Leopard: git -2.2.1-intel-universal-snow-leopard
  • 10.7 Лев: git -2.2.1-intel-universal-snow-leopard
  • 10.8 Горный лев: git -2.2.1-intel-universal-snow-leopard
  • 10.9 Mavericks: git -2.2.1-intel-universal-mavericks
  • 10.10 Йосемит: git -2.2.1-intel-universal-mavericks

Вы можете скачать здесь: http://sourceforge.net/projects/git-osx-installer/files/

Ответ 3

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

Ответ 4

Можно также посмотреть fooobar.com/questions/176203/... и просто создать файл .bash_profile, который сработал у меня.

Ответ 5

Проблема заключается в том, что поддерживающие 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.

Ответ 6

Я также страдал от 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 вверху):

Изображение 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/theres uninstall.sh script. В этом script он использует pkgutil для удаления версии git. (Вы должны использовать этот script для удаления.) Вы можете запустить эту строку, чтобы убедиться, что эта утилита имеет запись об установке git:

pkgutil --packages | grep com.git.pkg

Это не та версия, которую вы хотите. Вы хотите версию Apple. Используйте script в каталоге /usr/local/ git/bin, чтобы удалить сломанную версию git.

Деинсталляция гарантирует, что вы никогда не получите эту ошибку, и что вы будете использовать правильную версию git.

Надеюсь, что это поможет другим. Информация была хорошей, но неполной. И для PyCharm почти ничего не было.