2010-08-07 3 views
88

Когда я пытаюсь выполнить определенные команды (например, git push, например) из git Bash на Windows 7 (64-разрядная), я получаю ошибку:Git for Windows - Программа не запускается, потому что отсутствует libiconv2.dll

The program can't start because libiconv2.dll is missing from your computer 

Я искал исчерпывающе для решения этой проблемы.
Большинство, что я могу найти, это проблема на сайте кодов Google (Issue 419) и несколько других блогов здесь и там. Насколько я могу судить, ни одно из предложений, предлагаемых в сообщениях, не решит мою проблему.

Я попытался переустановить. Я попытался добавить $GIT/bin в PATH.
Я могу проверить, что dll находится в каталоге $GIT/bin ... но все же я не могу нажать на удаленный.

У меня есть рабочая установка msysgit на другом ящике Windows 7, и я установил то же самое в обеих ситуациях ... поэтому нет нужды говорить, что я довольно смущен.

Любая помощь по этому вопросу была бы очень признательна.

Спасибо,

+1

Если не DLL быть в $ GIT/LIB вместо $ GIT/бен? По крайней мере, так оно работает в Linux/UNIX, библиотеки идут в каталог 'lib'. Я не знаю, использует ли msysgit ту же схему компоновки, но это было бы быстро проверить. –

+0

Этот вопрос должен быть представлен как ошибка для разработки Git. Но для моей жизни я не могу найти ссылки «отправить ошибку» на сайте Git ... – drozzy

+1

первый ответ работает, вы должны отметить его как решение! – erikbwork

ответ

15

Я разрешил это ... есть несколько вещей, чтобы отметить здесь.

1) Проблема была опечатка в моем настроенном происхождении в моем локальном файле .git/config ... Так что я идиот.

2) В этой ситуации Git Bash не издает изящно изящно, а затем выводит эту очень вводящую в заблуждение ошибку в качестве предупреждения, а не сообщает, что нет настроенного происхождения имени, указанного в файле .git/config.

Единственный способ, которым я смог это понять, - добавить каталог $ GitPath/cmd к моему пути и запустить git из командной строки. Там мне удалось получить подробное сообщение об ошибке, указывающее, что удаленный репозиторий еще не существует. Затем я поднял верный редактор vi и увидел, что на самом деле это опечатка.

Урок здесь. Если вы получаете странную ошибку .dll с помощью msysgit, это, скорее всего, будет результатом неправильной конфигурации ... а не какой-либо системной аномалии или проблемы с установкой.

Спасибо всем, кто пытался помочь с этим!

+1

+1. В случае ошибки всегда прибегайте к минимальной нативной CMD-сессии. Это поучительно. – VonC

+0

Спасибо, это решило мою проблему, я изменяю msysGit \ bin для msysGit \ cmd в пути к окну. – RenaudBlue

+0

'' копировать C: \ msysgit \ mingw \ bin \ libiconv-2.dll C: \ msysgit \ bin'' Я установил с помощью msysGit-netinstall-1.9.4-preview20140611 " – Jeflopo

2

быстрый способ исправить это является поиск * .dll файл на другой компьютер и скопировать его =)

1

Я msysgit на Windows7 без какого-либо вопроса с любой DLL.

У меня есть libiconv2.dll в каталоге Bin: C:\Path\To\Git\1.7.1\bin

issue 419 был о том, кто установил «среду разработки для компиляции Git для Windows», а не только Git.
См. Это SO answer for the difference between the two.

Итак, какой из них вы установили?

  • Git-1.x.x.x...? (например, «Git-1.7.0.2-preview20100309.exe»),
  • или msysGit-netinstall-1.x.x...? (например, «msysGit-netinstall-1.7.1-preview20100612.exe»).
+0

Я установил .. Git-1.7.0.2-preview20100309.exe Я определенно понимаю, что проблема 419 была установкой разработчика, но это один из единственных результатов поиска, которые я смог найти по этому вопросу, поэтому я надеялся, что это может обеспечить некоторые в поле зрения. У меня libconv2.dll находится в папке C: \ Path \ To \ Git \ bin, которая является местом установки по умолчанию. – user413945

+0

@thankyoud: Я понимаю (и ваш вопрос кажется хорошо документированным). Просто подумал сделать это более ясным в своем ответе, а для другого - увидеть разницу. Единственная проблема, с которой я столкнулся с проблемой Git, связанной с запуском, связана с ACL (например, с проблемой регистрации DLL или проблемой% TEMP% write). Любая подсказка на этом фронте? – VonC

+0

Я не знаю, каталог% temp%, похоже, имеет полный доступ к моей текущей учетной записи. Выполняется ли git под учетной записью, отличной от администратора, когда вы используете bash? Кроме того, как я упоминал ранее, это никогда не происходило ни на одной другой установке Windows 7, которую я сделал ... поэтому я так озадачен. То есть мне никогда не приходилось возиться с разрешениями на файлы в прошлом. – user413945

14

Я видел эту ошибку с msysGit-fullinstall-1.7.3.1-preview20101002.exe на Win 7.

Added <msysgit_dir>\mingw\bin to PATH 

исправить его. libiconv2.dll был найден в этом каталоге.

+2

Это не сработало для меня, пришлось копировать DLL в% WINDIR% (C: \ windows) – jamiebarrow

+0

Я добавил 'c: \ MinGW \ bin' путь, и это исправлено. – JellicleCat

102

Работа вокруг из этой темы: http://groups.google.com/forum/#!topic/msysgit/twrVn_EbNI4

  • cd в свой мерзавец каталог установки
  • copy mingw\bin\libiconv-2.dll libexec\git-core
    (или copy bin\libiconv-2.dll libexec\git-core, если установка не имеет mingw папку)

В связанном потоке Дрю просит помощи, поэтому, если вы думаете, что можете помочь исправить это, вы можете ответить в том, что Googl e Группы.

Ошибка происходит с этими сборками:

  • msysgit-fullinstall-1.7.4 ИЛИ 1.7.6 (и 1.7.7)
  • msysgit-NetInstall-1.7.4 ИЛИ 1.7.6 (и 1.7 .7)
  • Git Для Windows 1.7.6 (но не 1.7.4)
+5

Это было решением моей проблемы. Я думаю, что стоит отметить, что это решение работает особенно для ошибок во время обновления подмодуля, но может также исправить и другие экземпляры. – gapple

+6

Мне пришлось скопировать файл в папку bin, чтобы он работал. –

+9

С git-1.7.8 мне нужно было скопировать файлы в другом направлении; libiconv2.dll существует в 'libexec/git-core', но его необходимо скопировать в' bin' (или связать: 'mklink/H libexec \ git-core \ libiconv2.dll bin \ libiconv2.dll'). – gapple

40
  • копировать/Program Files/Git/бен/libiconv-2.dll
  • в/Program Files/Git/libexec/ГИТ-ядро/
+1

Спасибо, это исправлено для меня на моей машине Win7 с запуском git версии 1.7.7.1.msysgit.0 – jesal

+1

Просто хотел отметить - мое сообщение об ошибке указано libiconv2.dll И у меня были оба libiconv2.dll и libiconv-2.dll в/bin. –

+1

Это было полезно, спасибо. Если, как и я, у вас нет этих папок, найдите их в% USERPROFILE% \ Local Settings \ Application Data \ GitHub (см. Мой ответ) – wytten

2

Чтобы решить эту проблему, я на самом деле пришлось скопировать все библиотеки DLL из mingw/bin/ в bin/ (не перезаписывая существующие ранее). Я использую удаленные репозитории HTTP, и он просто продолжает жаловаться.

0

Я изначально попытался решить эту проблему, скопировав dll, как упомянуто здесь, но вскоре столкнулся с другими проблемами. Для меня реальным решением было установить путь в моем файле .bashrc для msys, чтобы определить приоритеты двоичных файлов msys.

Открыть оболочки MSYS и следующую строку в ~/.bashrc:

экспорт PATH =/USR/местные/бен:/MinGW/бен:/бен: $ PATH

2

Я просто попытался установить SmartGIT в Windows и сталкиваются с той же проблемой. Я просто выясню, что это работает, не указывая на git.exe, вместо этого я указал его на C: \ msysgit \ cmd \ git.cmd. Пока это работает отлично. Я могу получить доступ к git-репозиторию в msysgit.

FYI, я использую установщик Net для Windows.

Надеясь, что это правильный подход.

+1

Я использую GIT для окон, и для меня это работало, указывая на git.exe. –

1

Мой ответ разрешает такую ​​же ошибку для msysgit, но может помочь с чистым git.

В Windows 7, я добавил <msysgit_dir>\mingw\bin к PATHas so_mv has recommended above (через графический интерфейс Системные переменные), но я должен был выхода из системы и войти в ОС после этого, в противном случае значение PATH не будет обновляться.

1

У меня была такая же ошибка в Windows 7 при запуске \ msysgit \ bin \ git.exe. Я исправил его, скопировав \ msysgit \ mingw \ bin \ libiconv-2.dll в корень установочного каталога Win 7.

2

Как SmartGit ссылки эта страница StackOverflow в результате ошибок я думаю, что это знание может быть полезным для кого-то здесь ....

Иногда, хотя нет никаких проблем с установкой мерзавца. Даже если вы можете использовать Git Баш и получить информацию о версии, набрав

git -- version 

SmartGit не добавляет репозиторий и возвращает мерзавец это obsolote или информацию о версии не может быть извлечена (или похожее на это сообщение) ...

Если это так, вы должны сначала проверить настройки безопасности и параметры удаления вирусов. В моей ситуации отключение брандмауэра comodo делает smartgit доступным для установки и версии galty git.

0

Я искал эту проблему, чтобы исправить эту проблему, я удалил tortoisegit и msysgit, а затем переустановил «Git-1.8.1.2-preview20130201».

, выполнив это, это исправило мою проблему, и я не могу использовать пошгит.

3

Изменение ответа sqzaman, поскольку у меня не было папки в том же месте, что они сделали:

Copy 
%USERPROFILE%\Local Settings\Application Data\GitHub\PortableGit_*\bin\*.dll 
to 
%USERPROFILE%\Local Settings\Application Data\GitHub\PortableGit_*\libexec\git-core 

Следует заметить, что я начал путем копирования libiconv-2.DLL, но потом жаловался libcurl.dll поэтому я пошел вперед и скопировал * .dll

+1

После некоторой пробной и ошибки я обнаружил, что копирование libcrypto.dll, libcurl.dll , libiconv-2.dll и libssl.dll в каталог git-core и работал в одном хранилище (минимальное решение). Не удивлюсь, если я закончу копирование всех остальных тоже для других. –

1

Я установил Git для Windows, то Git для того, чтобы скопировать файл .dll

Это не работает для меня. Чтобы решить эту проблему, я должен был добавить путь:

C:\Users\*username*\AppData\Local\GitHub\PortableGit_015aa71ef18c047ce8509ffb2f9e4bb0e3e73f13\cmd

к переменной в PATH среды.

Это устранило проблему, и теперь я могу получить доступ к git из командной строки.

+0

Я использую плагин Git для' Sublime Text 2', где я столкнулся с этой проблемой и решил ее, добавив аналогичный путь в настройки плагина, но со всеми обратными косыми чертами, экранированными следующим образом: 'C: \\ Users \\ * username * \\ AppData \\ Local \\ GitHub \\ PortableGit_054f2e797ebafd44a30203088cd3d58663c627ef \\ bin \\ git.exe' –

-1

Мне пришлось иметь дело с этим же сообщением об ошибке при попытке настроить meanio, из которых git является предварительным условием (моя конкретная ошибка: предварительное условие не найдено: git).
Исправление я понял, повлекло за собой копирование libiconv2.dll из

C:\Program Files (x86)\Git\bin 

в

C:\Program Files (x86)\Git\libexec\git-core 

Тогда мне пришлось внести некоторые коррективы в системные переменные среды Windows (Щелкните правой кнопкой мыши компьютер, выберите Свойства, нажмите «Дополнительные системные настройки» на левой вертикальной панели, выберите переменные среды). . Перейдите в раздел «Переменные среды» в поле «Системные переменные».Найдите

PATH 

переменные и добавить три новые ссылки:

C:\Program Files (x86)\Git\bin; 
C:\Program Files (x86)\Git\cmd; 
C:\Program Files (x86)\Git\libexec\git-core 

Таким образом, все необходимые файлы Git доступны по системному пути.

Надеюсь, это поможет!

0

В моем случае я использовал шоколадный (chocolatey.org) для установки git.

Мне пришлось скопировать libconv-2.dll в C:\ProgramData\chocolatey\bin, чтобы заставить его работать. Я не уверен, что копирование файла на C:\Program Files (x86)\Git\libexec\git-core также обязательно, поскольку я сделал это первым.

1

Лично я решил это, читая ошибку, полученную от getopt.exe, которая сказала мне, что отсутствует «libiconv2.dll». У меня был libiconv-2.dll (обратите внимание на тире «-») в C: \ Program Files (x86) \ Git \ bin. Сделав копию и назвав ее, libiconv2.dll сделал трюк для меня ...

Я использовал несколько шоколадных пакетов ... возможно, фактический файл был переименован в течение его жизненного цикла ... и зависимости в пакетах не ....

Ну надеюсь, что это помогает кто-то там :)

1

Если ошибка "отсутствует libiconv-2.DLL" происходит при запуске SourceTree на Windows, следующие работал для меня (Win 8.1):

перейти к

C:\Users\$USERNAME$\AppData\Local\Atlassian\SourceTree\git_local\bin 

копия

libcrypto.dll 
libcurl.dll 
libiconv-2.dll 
libssl.dll 

в

C:\Users\$USERNAME$\AppData\Local\Atlassian\SourceTree\git_local\libexec\git-core 
0

Я использовал GitHub Desktop версии и с той же проблемой, я изменил умолчанию шелл Настройка -> Параметры ---> По умолчанию оболочки и проверил Git Баш , Я начал «Open Git shell» и запускал команду «git pull», это исправляло проблему. Это сработало в моем случае.

0

Скопируйте все из библиотек .dll:

C: \ Users \ имя_пользователя \ AppData \ Local \ GitHub \ PortableGit_25d850739bc178b2eb13c3e2a9faafea2f9143c0 \ mingw32 \ Bin

к:

C: \ Users \ имя_пользователя \ AppData \ Local \ GitHub \ PortableGit_25d850739bc178b2eb13c3e2a9faafea2f9143c0 \ mingw32 \ libexec \ мерзавца-ядра

1

Одно из возможных решений для SourceTree:

1.Open the "Option" window. 
    2.Select "Git". 
    3.Than "Use System Git". 
    4.And press OK button. 
+0

Работал для меня. По какой-то причине SourceTree переключился на встроенный git после обновления, что вызвало проблему. – starteleport

4

Если бы эта проблема в SmartGit на Mac. Fixed, изменив в Настройки -> Команды -> Исполняемые

Гит Исполняемые:

из

/usr/bin/git 

к:

/usr/local/git/bin/git 
+0

Работал отлично, спасибо –

+0

Спасибо! В моем случае мне пришлось использовать/usr/local/bin/git. – ezequielc

0

У меня было то же самое проблема, я использую Windows 10, и это супер легко решить эту проблему.

Скачать файл DLL из:

https://www.dll-files.com/libiconv-2.dll.html

извлечь его или вставить его в папку MinGW непосредственно, это, как правило, в C- диске, если вы установили его, используя параметры по умолчанию. Надеюсь, поможет.

0

Попробуйте следующую команду:

sudo rm -rf /Library/Developer/CommandLineTools 

и установить инструменты разработчика

 Смежные вопросы

  • Нет связанных вопросов^_^