Git für Windows - Das Programm kann nicht gestartet werden, da libiconv2.dll fehlt

93

Wenn ich versuche, bestimmte Befehle (wie z. B. Git Push) von einem Git Bash unter Windows 7 (64 Bit) auszuführen, wird folgende Fehlermeldung angezeigt:

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

Ich habe ausführlich nach einer Lösung dafür gesucht.
Das Beste, was ich finden kann, ist ein Problem-Thread auf der Google Code-Website ( Ausgabe 419 ) und einige andere Blogs hier und da. Soweit ich das beurteilen kann, wird keiner der in den Beiträgen angebotenen Vorschläge mein Problem tatsächlich lösen.

Ich habe versucht, neu zu installieren. Ich habe versucht , das Hinzufügen $GIT/binzu dem PATH.
Ich kann überprüfen, ob sich die DLL im $GIT/binVerzeichnis befindet ... aber ich kann immer noch nicht auf Remote pushen.

Ich habe eine funktionierende Installation von msysgit auf einer anderen Windows 7-Box und habe sie in beiden Situationen auf die gleiche Weise installiert. Ich bin also ziemlich verwirrt.

Jede Hilfe hierzu wäre sehr dankbar.

Vielen Dank,

user413945
quelle
1
Sollte sich die DLL nicht in $ GIT / lib anstelle von $ GIT / bin befinden? Zumindest funktioniert das unter Linux / UNIX so, Bibliotheken gehen in das libVerzeichnis. Ich weiß nicht, ob msysgit das gleiche Layoutschema verwendet, aber es wäre schnell zu überprüfen.
David Z
Diese Frage sollte als Fehler an die Git-Entwicklung gesendet werden. Aber für mein Leben kann ich keine "
Submit
1
Die erste Antwort funktioniert, Sie sollten sie als gelöst markieren!
Erikbwork
@ DavidZ - Du hast mein Problem gelöst. Ihre Antwort muss hier die akzeptierte Antwort sein.
Mekey Salaria
@Groundshaker nein, zuerst habe ich einen Kommentar gepostet , keine Antwort; und es hat das Problem des Originalplakats nicht gelöst, und selbst wenn es eine Antwort wäre, sollte es nicht akzeptiert werden. Auf jeden Fall scheint es , dass einige der bestehenden Antworten bereits dieses Update decken (sollte es libexecstatt lib, offenbar), so dass ich nicht zu Post etwas los , dass Duplikate sie. (Aber ich bin froh, dass mein Kommentar nützlich war.)
David Z

Antworten:

104

Umgehen Sie diesen Thread: http://groups.google.com/forum/#!topic/msysgit/twrVn_EbNI4

  • cd in dein Git-Installationsverzeichnis
  • copy mingw\bin\libiconv-2.dll libexec\git-core
    (oder copy bin\libiconv-2.dll libexec\git-corewenn Ihre Installation keinen mingwOrdner hat)

Im verknüpften Thread bittet Drew um Unterstützung. Wenn Sie also der Meinung sind, dass Sie zur Behebung des Problems beitragen können, möchten Sie möglicherweise in diesem Google Groups-Thread antworten.

Bei diesen Builds tritt ein Fehler auf:

  • msysgit-fullinstall-1.7.4 ODER 1.7.6 (und 1.7.7)
  • msysgit-netinstall-1.7.4 ODER 1.7.6 (und 1.7.7)
  • Git für Windows 1.7.6 (aber nicht 1.7.4)
Paulecoyote
quelle
5
Dies war die Lösung für mein Problem. Ich denke, es ist erwähnenswert, dass diese Lösung besonders bei Fehlern funktioniert submodule update, aber möglicherweise auch andere Instanzen behebt.
Gapple
9
Mit git-1.7.8 musste ich Dateien in die andere Richtung kopieren. libiconv2.dll existiert in libexec/git-core, musste aber kopiert bin(oder verlinkt :) werden mklink /H libexec\git-core\libiconv2.dll bin\libiconv2.dll.
Gapple
Diese Problemumgehung hat msysGit 1.7.7.1 unter Windows 2003 x64 für mich behoben. Es schlug fehl, als ich versuchte zu rennen, git submodule initund leider war das einzige Symptom, das ich anfangs sehen konnte, ein Jenkins-Job, der auf unbestimmte Zeit hängen blieb. (Das Ausführen git submodule initaus einem Git Bash-Fenster hat mir den wirklichen Fehler gezeigt.) Danke!
Paul Karlin
4
@ grapples Fix funktionierte für mich mit dem neuesten Build 1.7.10-Preview20120409, außer es war libiconv-2.dll.
Soliah
1
TLDR: Atlassian Sourcetree: Kopieren libiconv2.dllin , libexec/git-corewie beschrieben. Umbenennen libiconv2.dllin libiconv-2.dll. Ich hatte den gleichen Fehler beim Versuch, die neueste Version von Atlassian Sourcetree zu verwenden. Sourcetree wurde so eingestellt, dass External Git (anstelle von Embedded) verwendet wird. Anscheinend libiconv2.dllund libiconv-2.dllsind die gleiche Datei, aber SourceTree sucht nach der Datei mit dem Namen libiconv-2.dll, nicht libiconv2.dll. Wenn Sie also den Quellbaum verwenden, müssen Sie libiconv2 umbenennen, nachdem Sie ihn in git-core verschoben haben.
Brandon S.
42
  • Kopieren / Programme / Git / bin / libiconv-2.dll
  • zu / Programme / Git / libexec / git-core /
sqzaman
quelle
1
Vielen Dank, dies hat es für mich auf meinem Win7-Computer behoben, auf dem git Version 1.7.7.1.msysgit.0
jesal
1
Ich wollte nur beachten - meine Fehlermeldung gab libiconv2.dll an UND ich hatte sowohl libiconv2.dll als auch libiconv-2.dll in / bin.
Roger_S
1
Das war hilfreich, danke. Wenn Sie wie ich diese Ordner nicht haben, suchen Sie sie in% USERPROFILE% \ Lokale Einstellungen \ Anwendungsdaten \ GitHub (siehe meine Antwort)
wytten
15

Ich habe das gelöst ... hier gibt es ein paar Dinge zu beachten.

1) Das Problem war ein Tippfehler in meinem konfigurierten Ursprung in meiner lokalen .git / config-Datei ... Ich bin also ein Idiot.

2) Git Bash schlägt in dieser Situation nicht ordnungsgemäß fehl und gibt dann diesen sehr irreführenden Fehler als Warnung aus, anstatt zu melden, dass es keinen konfigurierten Ursprung des in der .git / config-Datei angegebenen Namens gibt.

Die einzige Möglichkeit, dies herauszufinden, bestand darin, das Verzeichnis $ GitPath / cmd zu meinem Pfad hinzuzufügen und git über die Befehlszeile auszuführen. Dort konnte ich eine ausführliche Fehlermeldung erhalten, die darauf hinwies, dass das Remote-Repository noch nicht vorhanden war. Dann habe ich den vertrauenswürdigen vi-Editor aufgerufen und festgestellt, dass tatsächlich ein Tippfehler vorliegt.

Die Lektion hier. Wenn Sie mit msysgit einen seltsamen DLL-Fehler erhalten, kann dies sehr wahrscheinlich auf eine Fehlkonfiguration zurückzuführen sein ... und nicht auf eine Systemanomalie oder ein Installationsproblem.

Vielen Dank an alle, die versucht haben, dabei zu helfen!

user413945
quelle
1
+1. Im Fehlerfall immer auf eine minimale native CMD-Sitzung zurückgreifen. Es ist im Allgemeinen lehrreich.
VonC
Vielen Dank, dies hat mein Problem gelöst. Ich ändere msysGit \ bin für msysGit \ cmd im Windows-Pfad.
Renaud
copy C:\msysgit\mingw\bin\libiconv-2.dll C:\msysgit\binIch installierte mit "msysGit-netinstall-1.9.4-Vorschau20140611"
Jeflopo
14

Ich habe diesen Fehler mit msysGit-fullinstall-1.7.3.1-recovery20101002.exe unter Win 7 gesehen.

Added <msysgit_dir>\mingw\bin to PATH 

repariere es. libiconv2.dll wurde in diesem Verzeichnis gefunden.

so_mv
quelle
2
Dies funktionierte nicht für mich, musste die DLL nach% WINDIR% (C: \ windows)
kopieren
Ich habe dem c:\MinGW\binPfad hinzugefügt , und das hat es behoben.
JellicleCat
10

Hatte dieses Problem in SmartGit auf dem Mac. Es wurde behoben, indem in Einstellungen -> Befehle -> Ausführbare Datei geändert wurde

Git Executable:

von

/usr/bin/git

zu:

/usr/local/git/bin/git
Kühler
quelle
2
Vielen Dank! In meinem Fall musste ich / usr / local / bin / git verwenden.
Ezequielc
3

Variation der Antwort von sqzaman, da ich die Ordner nicht an derselben Stelle hatte, an der sie sich befanden:

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

Beachten Sie, dass ich mit dem Kopieren von libiconv-2.dll begonnen habe, mich dann aber über libcurl.dll beschwert habe, also habe ich * .dll kopiert

wytten
quelle
1
Nach einigem Ausprobieren stellte ich fest, dass das Kopieren von libcrypto.dll, libcurl.dll, libiconv-2.dll und libssl.dll in das git-core-Verzeichnis für ein Repository funktionierte (minimale Lösung). Wäre nicht überrascht, wenn ich am Ende auch alle anderen für andere kopieren würde.
alle_meije
3

Da SmartGit auf diese Seite des Stackoverflow im Fehlerergebnis verweist, denke ich, dass dieses Wissen für jemanden hier nützlich sein könnte ....

Manchmal, obwohl es kein Problem mit der Installation von Git gibt. Auch wenn Sie git bash verwenden und Versionsinformationen durch Eingabe abrufen können

git -- version 

SmartGit fügt kein Repository hinzu und gibt zurück, dass git veraltet ist oder Versionsinformationen nicht abgerufen werden können (oder dieser Nachricht ähnlich sind) ...

In diesem Fall sollten Sie zuerst die Einstellungen Ihrer Sicherheitsdienstprogramme und Virenentfernungsanwendungen überprüfen. In meiner Situation kann durch Deaktivieren der Comodo-Firewall Smartgit Informationen zur Installation und Version von Healty Git anzeigen.

Erdinç Çorbacı
quelle
2

Der schnellste Weg, dies zu beheben, besteht darin, die * .dll-Datei auf dem anderen PC zu suchen und zu kopieren =)

KristofMols
quelle
2

Ich habe gerade versucht, SmartGIT unter Windows zu installieren und habe das gleiche Problem. Ich finde nur heraus, dass es nicht funktioniert, indem ich auf git.exe zeige, sondern auf C: \ msysgit \ cmd \ git.cmd. Bisher funktioniert es gut. Ich kann unter msysgit auf das Git-Repository zugreifen.

Zu Ihrer Information, ich verwende das Net-Installationsprogramm für Windows.

Ich hoffe, dass dies der richtige Ansatz ist.


quelle
1
Ich benutze GIT für Windows und für mich hat es funktioniert, indem ich auf git.exe gezeigt habe.
Mandeep Janjua
2

Meine Antwort behebt den gleichen Fehler für msysgit, kann aber bei reinem Git helfen.

Unter Windows 7 habe ich hinzugefügt <msysgit_dir>\mingw\bin, PATH wie so_mv oben empfohlen hat (über die GUI für Systemvariablen ), aber danach musste ich mich abmelden und beim Betriebssystem anmelden , sonst wird der PATHWert nicht aktualisiert.

Sompylasar
quelle
2

Um dieses Problem zu beheben hatte ich eigentlich alle DLLs kopieren von mingw/bin/zu bin/(nicht überschrieben wird jede bestehende einmal). Ich verwende Remote-HTTP-Repositorys und es hat sich immer wieder beschwert.

Kingen
quelle
1

Ich hatte den gleichen Fehler unter Windows 7 beim Ausführen von \ msysgit \ bin \ git.exe. Ich habe das Problem behoben, indem ich die Datei \ msysgit \ mingw \ bin \ libiconv-2.dll in das Stammverzeichnis des Win 7-Installationsverzeichnisses kopiert habe.

Boris Jockov
quelle
1

Ich habe Git für Windows und dann Git installiert, um die DLL zu kopieren

Das hat bei mir nicht funktioniert. Um das Problem zu lösen, musste ich den Pfad hinzufügen:

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

zur PATHUmgebungsvariablen.

Dies hat das Problem behoben und ich kann jetzt über die Eingabeaufforderung auf git zugreifen.

Sebastien V.
quelle
Ich verwende das Git-Plugin, um Sublime Text 2auf dieses Problem zu C:\\Users\\*username*\\AppData\\Local\\GitHub\\PortableGit_054f2e797ebafd44a30203088cd3d58663c627ef\\bin\\git.exe
stoßen
1

Persönlich habe ich es gelöst, indem ich den Fehler von getopt.exe gelesen habe, der mir sagte, dass "libiconv2.dll" fehlte. Ich hatte libiconv-2.dll (beachten Sie den Bindestrich "-") in C: \ Programme ( x86) \ Git \ bin. Eine Kopie zu erstellen und sie libiconv2.dll zu nennen, hat den Trick für mich getan ...

Ich habe einige schokoladige Pakete verwendet ... vielleicht wurde die eigentliche Datei während ihrer Entwicklungszeit umbenannt ... und die Abhängigkeiten in den Paketen haben nicht ...

Hoffe es hilft jemandem da draußen :)

Maurice CGP Peters
quelle
1

Wenn beim Starten von SourceTree unter Windows der Fehler "fehlende libiconv-2.dll" auftritt, hat Folgendes für mich funktioniert (Win 8.1):

gehe zu

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

Kopieren

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

zu

C:\Users\$USERNAME$\AppData\Local\Atlassian\SourceTree\git_local\libexec\git-core
felix
quelle
1

Eine mögliche Lösung für SourceTree:

   1.Open the "Option" window.
   2.Select "Git".
   3.Than "Use System Git".
   4.And press OK button.
Flayn
quelle
Hat für mich gearbeitet. Aus irgendeinem Grund wechselte SourceTree nach dem Update zu Embedded Git, was das Problem verursachte.
Starteleport
0

Ich habe msysgit unter Windows7 ohne Probleme mit einer DLL.

Ich habe libiconv2.dll im bin-Verzeichnis: C:\Path\To\Git\1.7.1\bin

Das Problem 419 betraf jemanden, der die "Entwicklungsumgebung zum Kompilieren von Git für Windows" installiert hat, nicht nur Git.
In dieser SO-Antwort finden Sie den Unterschied zwischen den beiden .

Welches haben Sie installiert?

  • Git-1.x.x.x...? (wie ' Git-1.7.0.2-preview20100309.exe'),
  • oder msysGit-netinstall-1.x.x...? (wie ' msysGit-netinstall-1.7.1-preview20100612.exe').
VonC
quelle
Ich habe installiert .. Git-1.7.0.2-Vorschau20100309.exe Ich weiß definitiv, dass Problem 419 eine Entwicklerinstallation war, aber es ist eines der wenigen Suchergebnisse, die ich zu diesem Thema finden konnte, also hoffte ich, dass es einen Einblick geben könnte. Meine libconv2.dll befindet sich in C: \ Path \ To \ Git \ bin. Dies ist nur der Standardinstallationsspeicherort.
user413945
@thankyoud: Ich verstehe (und Ihre Frage scheint gut dokumentiert zu sein). Ich dachte nur, um das in meiner Antwort besonders deutlich zu machen, damit andere den Unterschied sehen können. Das einzige andere Problem, bei dem Git Probleme beim Ausführen hat, hängt mit der ACL zusammen (z. B. ein Problem mit der DLL-Registrierung oder ein %TEMP%Problem beim Schreiben). Irgendwelche Hinweise an dieser Front?
VonC
Ich weiß nicht, das Verzeichnis% temp% scheint vollen Zugriff auf mein Girokonto zu haben. Läuft git unter einem anderen Konto als dem Administrator, wenn Sie schlagen? Wie ich bereits erwähnt habe, ist dies bei keiner anderen Windows 7-Installation passiert, die ich durchgeführt habe. Deshalb bin ich so ratlos. Das heißt, ich musste in der Vergangenheit nie mit Dateiberechtigungen herumspielen.
user413945
@thankyoud: Seltsam. Was ist mit der "tragbaren" Installation? (entpacken Sie es einfach und fügen Sie das cmdVerzeichnis Ihrem Pfad hinzu): Wird es das gleiche fehlerhafte Verhalten aufweisen?
VonC
@thankyoud: Gibt es einen Konflikt in PATHdiesem speziellen Windows7? Sehen Sie den gleichen Fehler mit einem "Minimal PATH"? Ie"C:\Path\To\Got\cmd;C:\Windows\system32;C:\Windows;C:\Windows\Syste m32\Wbem"
VonC
0

Ich habe ursprünglich versucht, dieses Problem durch Kopieren der hier erwähnten DLL zu lösen, bin aber bald auf andere Probleme gestoßen. Für mich bestand die eigentliche Lösung darin, den Pfad in meiner .bashrc-Datei für msys festzulegen, um die msys-Binärdateien zu priorisieren.

Öffnen Sie die msys-Shell und die folgende Zeile in ~ / .bashrc:

export PATH = / usr / local / bin: / mingw / bin: / bin: $ PATH

Judah Menter
quelle
0

Ich war von diesem Problem geplagt. Um dieses Problem zu beheben, habe ich Tortoisegit und msysgit deinstalliert und dann "Git-1.8.1.2-Preview20130201" neu installiert.

Auf diese Weise wurde mein Problem behoben und ich kann poshgit nicht verwenden.

AdamWhite
quelle
0

In meinem Fall habe ich schokoladig (ocolatey.org) verwendet, um git zu installieren.

Ich hatte kopieren libconv-2.dllzu , C:\ProgramData\chocolatey\binum es zu arbeiten. Ich bin mir nicht sicher, ob das Kopieren der Datei C:\Program Files (x86)\Git\libexec\git-coreauch unbedingt erforderlich ist, da ich das zuerst getan habe.

Luke Chavers
quelle
0

Ich habe die GitHub Desktop-Version verwendet und hatte das gleiche Problem. Ich habe die Standard-Shell durch Einstellen -> Optionen ---> Standard-Shell geändert und die Git-Bash aktiviert. Ich habe "Open Git Shell" gestartet und den Befehl "git pull" ausgeführt. Das Problem wurde behoben. In meinem Fall hat es funktioniert.

Mundroid
quelle
0

Kopieren Sie alle DLLs von:

C: \ Benutzer \ IHR BENUTZERNAME \ AppData \ Local \ GitHub \ PortableGit_25d850739bc178b2eb13c3e2a9faafea2f9143c0 \ mingw32 \ bin

zu:

C: \ Benutzer \ IHR BENUTZERNAME \ AppData \ Local \ GitHub \ PortableGit_25d850739bc178b2eb13c3e2a9faafea2f9143c0 \ mingw32 \ libexec \ git-core

Chris Halcrow
quelle
0

Ich hatte das gleiche Problem, ich verwende Windows 10 und es ist super einfach, dieses Problem zu lösen.

Laden Sie die DLL-Datei herunter von:

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

Extrahieren Sie es oder fügen Sie es direkt in den Ordner mingw ein. Es befindet sich im Allgemeinen in Laufwerk C, wenn Sie es mit den Standardoptionen installiert haben. Ich hoffe es hilft.

Samriddhi Verma
quelle
0

Versuchen Sie den folgenden Befehl:

sudo rm -rf /Library/Developer/CommandLineTools 

und installieren Sie Entwicklertools

Samolazov Roman
quelle
-1

Ich musste mich mit derselben Fehlermeldung befassen, als ich versuchte, meanio zu konfigurieren, von dem git eine Voraussetzung ist (mein besonderer Fehler war: Voraussetzung nicht gefunden: git).
Das Update, das ich herausgefunden habe, beinhaltete das Kopieren von libiconv2.dll von

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

zu

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

Dann musste ich einige Anpassungen an den Windows-Systemumgebungsvariablen vornehmen (Klicken Sie mit der rechten Maustaste auf den Computer, gehen Sie zu den Eigenschaften, klicken Sie in der linken vertikalen Leiste auf "Erweiterte Systemeinstellungen", wählen Sie Umgebungsvariablen aus.) Suchen Sie in Umgebungsvariablen im Feld Systemvariablen. Finden Sie die

PATH

Variieren Sie und fügen Sie drei neue Referenzen hinzu:

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

Auf diese Weise kann auf alle erforderlichen Git-Dateien über den Systempfad zugegriffen werden.

Hoffe das hilft!

deusofnull
quelle