Git для Windows - Програма не може запуститися, оскільки відсутній libiconv2.dll


93

Коли я намагаюся запустити певні команди (наприклад, git push, наприклад) з git Bash на Windows 7 (64bit), я отримую помилку:

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

Я вичерпно шукав рішення цього.
Найбільше, що я можу знайти, - це тема теми на сайті коду google ( випуск 419 ) та кілька інших блогів тут і там. Наскільки я можу сказати, жодна з пропозицій, запропонованих у публікаціях, насправді не вирішить мою проблему.

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

У мене працює інсталяція msysgit на іншому вікні Windows 7, і я встановив однаково в обох ситуаціях ... так що не потрібно говорити, що я дуже розгублений.

Будь-яка допомога з цього питання буде дуже вдячна.

Дякую,


1
Чи не має DLL бути в $ GIT / lib замість $ GIT / bin? Принаймні, саме так це працює в Linux / UNIX, бібліотеки йдуть у libкаталог. Я не знаю, чи msysgit використовує ту саму схему компонування, але це буде швидко перевірити.
David Z

Це питання має бути подано як помилка розвитку Git. Але за своє життя я не можу знайти жодних посилань на "посилання помилок" на сайті Git ...
Андрій Дроздюк

1
перша відповідь працює, ви повинні позначити її як вирішену!
erikbwork

@DavidZ - Ви вирішили мою проблему. Ви маєте відповісти тут.
Mekey Salaria

@Groundshaker ні, насамперед я розмістив коментар , а не відповідь; і це не вирішило проблему оригінального плаката, тому навіть якщо це відповідь, його не слід приймати. У будь-якому випадку здається, що декілька існуючих відповідей вже охоплюють це виправлення (це повинно бути libexecзамість того lib, очевидно), тому я не збираюся розміщувати щось, що їх дублює. (Але я радий, що мій коментар виявився корисним.)
David Z

Відповіді:


104

Обійдіть цю тему: http://groups.google.com/forum/#!topic/msysgit/twrVn_EbNI4

  • cd у ваш каталог встановлення git
  • copy mingw\bin\libiconv-2.dll libexec\git-core
    (або copy bin\libiconv-2.dll libexec\git-coreякщо у вашій установці немає mingwпапки)

У зв’язаному ланцюжку Дрю просить про допомогу, тому, якщо ви думаєте, що можете допомогти це виправити, ви можете відповісти у цьому ланцюжку Google Groups.

Помилка відбувається з цими збірками:

  • 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
Це було рішення моєї проблеми. Я думаю, що варто зазначити, що це рішення працює особливо для помилок під час submodule update, але може також виправити інші випадки.
gapple

9
З git-1.7.8 мені потрібно було скопіювати файли в іншому напрямку; libiconv2.dll існує у libexec/git-core, але його потрібно скопіювати bin(або зв'язати:) mklink /H libexec\git-core\libiconv2.dll bin\libiconv2.dll.
gapple

Цей спосіб вирішено для мене msysGit 1.7.7.1 на Windows 2003 x64. Це не вдалося, коли я намагався бігти, git submodule initі, на жаль, єдиним симптомом, який я міг побачити спочатку, була робота Дженкінса, яка зависала на невизначений час. (Запуск git submodule initу вікні Git Bash показав мені справжню помилку.) Дякую!
Paul Karlin

4
@ виправлення grapple працювало для мене з останньою збіркою 1.7.10-preview20120409, за винятком випадків libiconv-2.dll.
Солія

1
TLDR: Atlassian Sourcetree: Копіювати libiconv2.dllв , libexec/git-coreяк описано. Перейменувати libiconv2.dllна libiconv-2.dll. У мене виникла така сама помилка при спробі використовувати останню версію Atlassian Sourcetree. Sourcetree було встановлено використовувати зовнішній Git (замість вбудованого). Мабуть libiconv2.dllі libiconv-2.dllє тим самим файлом, але SourceTree шукає файл з іменем libiconv-2.dll, а не libiconv2.dll. Отже, якщо ви використовуєте вихідне дерево, вам потрібно перейменувати libiconv2 після переміщення його в git-core.
Brandon S.

42
  • copy / Program Files / Git / bin / libiconv-2.dll
  • до / Програмні файли / Git / libexec / git-core /

1
Дякую, це виправлено для мене на моїй машині Win7 з версією git 1.7.7.1.msysgit.0
jesal

1
Тільки хотів зазначити - у моєму повідомленні про помилку вказано libiconv2.dll І в мене було / libiconv2.dll, і libiconv-2.dll у / bin.
Roger_S

1
Це було корисно, дякую. Якщо у вас, як і у мене, немає цих папок, знайдіть їх у% USERPROFILE% \ Local Settings \ Application Data \ GitHub (див. Мою відповідь)
wytten

15

Я це вирішив ... тут слід зазначити кілька речей.

1) Проблема полягала в помилковій помилці мого налаштованого походження в моєму локальному файлі .git / config ... Отже, я ідіот.

2) Git Bash не виходить з ладу в цій ситуації, а потім видає цю дуже оманливу помилку як попередження, а не повідомляє про відсутність налаштованого походження імені, вказаного у файлі .git / config.

Єдиний спосіб, коли мені вдалося це зрозуміти, було додати каталог $ GitPath / cmd до мого шляху та запустити git з командного рядка. Там мені вдалося отримати багатослівне повідомлення про помилку, яке вказує на те, що віддалене сховище ще не існує. Тоді я підняв надійного редактора vi і побачив, що насправді була друкарська помилка.

Урок тут. Якщо у вас виникає дивна помилка .dll із msysgit, це, швидше за все, може бути наслідком неправильної конфігурації ... а не якоїсь системної аномалії чи проблеми встановлення.

Дякуємо всім, хто намагався допомогти у цьому!


1
+1. У разі помилки завжди вдайтеся до мінімальної сесії CMD. Це, як правило, повчально.
VonC

Дякую, це вирішило мою проблему. Я змінив msysGit \ bin на msysGit \ cmd у шляху Windows.
Рено

copy C:\msysgit\mingw\bin\libiconv-2.dll C:\msysgit\bin Я встановив за допомогою "msysGit-netinstall-1.9.4-preview20140611"
Jeflopo

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

Я додав c:\MinGW\binдо шляху, і це виправило.
JellicleCat

10

Мав цю проблему в SmartGit на mac. Виправлено, змінивши Налаштування -> Команди -> Виконане

Git Executable:

з

/usr/bin/git

до:

/usr/local/git/bin/git

2
Дякую! У моєму випадку мені довелося використовувати / usr / local / bin / git.
ezequielc

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, і це працювало для одного сховища (мінімальне рішення). Не здивувався б, якщо я в кінцевому підсумку копіюю всі інші теж для інших.
alle_meije

3

Оскільки SmartGit посилається на цю сторінку stackoverflow у результаті помилок, я думаю, що ці знання можуть бути корисними для когось тут ....

Іноді, хоча немає проблеми з установкою git. Навіть якщо ви можете використовувати git bash та отримувати інформацію про версію, ввівши

git -- version 

SmartGit не додає сховище і повертає git застарілим, або інформація про версію не може бути отримана (або подібне до цього повідомлення) ...

Якщо так, то краще спочатку перевірити налаштування програм безпеки та програм для видалення вірусів. У моїй ситуації відключення брандмауера comodo робить smartgit здатним бачити інформацію про встановлення та версію healty git.


2

Найшвидший спосіб виправити це - знайти файл * .dll на іншому ПК та скопіювати його =)


2

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

FYI, я використовую інсталятор Net для Windows.

Сподіваючись, що це правильний підхід.


1
Я використовую GIT для Windows, і для мене він працював, вказуючи на git.exe.
Mandeep Janjua

2

Моя відповідь усуває ту саму помилку для msysgit, але може допомогти з чистим git.

У Windows 7, я додав <msysgit_dir>\mingw\binу PATH якості so_mv рекомендував вище (через графічний інтерфейс системних змінних), але я повинен був вихід з системи та входу в ОС після цього , в іншому випадку PATHзначення НЕ буде оновлюватися.


2

Щоб вирішити цю проблему, мені фактично довелося скопіювати всі бібліотеки DLL з mingw/bin/на bin/(не перезаписуючи жодної існуючої). Я використовую віддалені сховища HTTP, і це просто продовжувало скаржитися.


1

У мене була така ж помилка в Windows 7 під час запуску \ msysgit \ bin \ git.exe. Я виправив це, скопіювавши файл \ msysgit \ mingw \ bin \ libiconv-2.dll до кореневої директорії інсталяції Win 7.


1

Я встановив Git для Windows, потім Git, щоб скопіювати .dll

У мене це не спрацювало. Для вирішення проблеми мені довелося додати шлях:

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

до PATHзмінної середовища.

Це вирішило проблему, і тепер я можу отримати доступ до git із командного рядка.


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

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

1

Одне з можливих рішень SourceTree:

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

Працювали для мене. Чомусь SourceTree перейшов на вбудований git після оновлення, що спричинило проблему.
starteleport

0

У мене є msysgit у Windows7 без жодної проблеми з жодною бібліотекою DLL.

У мене є libiconv2.dll у каталозі bin: C:\Path\To\Git\1.7.1\bin

Питання 419 був про те, хто встановив «середовище розробки для компіляції Git для Windows», а не тільки Git.
Дивіться цю відповідь ТА для різниці між ними .

То який з них ви встановили?

  • Git-1.x.x.x...? (як-от ' Git-1.7.0.2-preview20100309.exe'),
  • або msysGit-netinstall-1.x.x...? (як ' msysGit-netinstall-1.7.1-preview20100612.exe').

Я встановив .. Git-1.7.0.2-preview20100309.exe Я, безумовно, розумію, що випуск 419 був встановленою розробником, але це один з єдиних результатів пошуку, який я міг знайти з цього приводу, тому сподівався, що це може дати деяку інформацію. Мій libconv2.dll знаходиться в C: \ Path \ To \ Git \ bin, що є лише місцем встановлення за замовчуванням.
користувач413945

@thankyoud: Я розумію (і ваше питання здається добре задокументованим). Просто думав зробити це додатково зрозумілим у моїй відповіді, щоб інші бачили різницю. Єдина проблема, з якою я бачив проблеми з запуском Git, пов’язана з ACL (наприклад, якоюсь проблемою реєстрації DLL або %TEMP%проблемою написання). Будь-яка підказка на цьому фронті?
VonC

Я не знаю, що, схоже, каталог% temp% має повний доступ до мого поточного рахунку. Чи працює git під обліковим записом, відмінним від адміністратора, коли ви басите? Крім того, як я вже згадував, цього ніколи не бувало в будь-якій іншій установці Windows 7, яку я робив ... тому я так здивований. Тобто, у минулому мені ніколи не доводилося поводитися з дозволами на файли.
користувач413945

@thankyoud: Дивно. А як щодо "портативної" установки? (просто розпакуйте його та додайте cmdкаталог до свого шляху): чи буде він демонструвати таку саму помилкову поведінку?
VonC

@thankyoud: Чи є конфлікт у PATHцій конкретній Windows7? Ви бачите ту саму помилку із "мінімальним PATH"? Тобто"C:\Path\To\Got\cmd;C:\Windows\system32;C:\Windows;C:\Windows\Syste m32\Wbem"
VonC

0

Спочатку я намагався вирішити цю проблему, скопіювавши dll, як згадувалося тут, але незабаром зіткнувся з іншими проблемами. Для мене реальним рішенням було встановити шлях у моєму .bashrc-файлі для msys для розстановки пріоритетів бінарних файлів msys.

Відкрийте оболонку msys та наступний рядок у ~ / .bashrc:

експортувати PATH = / usr / local / bin: / mingw / bin: / bin: $ PATH


0

Мені натрапило на цю проблему, щоб виправити цю проблему, я видалив tortoisegit та msysgit, а потім перевстановив "Git-1.8.1.2-preview20130201".

роблячи це, це виправило мою проблему, і я не можу користуватися пошгітом.


0

У моєму випадку я використовував шоколадний (chocolatey.org) для встановлення git.

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


0

Я використовував настільну версію GitHub і, маючи ту ж проблему, я змінив оболонку за замовчуванням, встановивши -> Параметри ---> Оболонка за замовчуванням і перевірив Git bash. Я запустив "Відкрити оболонку Git" і запустив команду "git pull", це вирішило проблему. Це спрацювало в моєму випадку.


0

Скопіюйте всі .dll з:

C: \ Користувачі \ YOURUSERNAME \ AppData \ Local \ GitHub \ PortableGit_25d850739bc178b2eb13c3e2a9faafea2f9143c0 \ mingw32 \ bin

до:

C: \ Users \ YOURUSERNAME \ AppData \ Local \ GitHub \ PortableGit_25d850739bc178b2eb13c3e2a9faafea2f9143c0 \ mingw32 \ libexec \ git-core


0

У мене була та сама проблема, я використовую Windows 10, і вирішити цю проблему надзвичайно просто.

Завантажте файл dll з:

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

витягніть його або вставте безпосередньо в папку mingw, він зазвичай знаходиться на C-диску, якщо ви встановили його за допомогою параметрів за замовчуванням. Сподіваюся, це допомагає.


0

Спробуйте виконати таку команду:

sudo rm -rf /Library/Developer/CommandLineTools 

та встановити інструменти для розробників


-1

Мені довелося мати справу з тим самим повідомленням про помилку, намагаючись налаштувати meanio, обов’язковою умовою якого є git (моя особлива помилка: prerequisite not found: 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 доступні через системний шлях.

Сподіваюся, це допомагає!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.