Git for Windows - Le programme ne peut pas démarrer car libiconv2.dll est manquant

93

Lorsque j'essaie d'exécuter certaines commandes (comme git push, par exemple) à partir d'un git Bash sous Windows 7 (64 bits), j'obtiens l'erreur:

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

J'ai cherché de manière exhaustive une solution à cela.
Le plus que je puisse trouver est un fil de discussion sur le site de code google ( numéro 419 ) et quelques autres blogs ici et là. Pour autant que je sache, aucune des suggestions proposées dans les articles ne résoudra réellement mon problème.

J'ai essayé de réinstaller. J'ai essayé d'ajouter $GIT/binau fichier PATH.
Je peux vérifier que la dll est dans le $GIT/binrépertoire ... mais je ne peux toujours pas pousser à distance.

J'ai une installation fonctionnelle de msysgit sur une autre boîte Windows 7, et j'ai installé de la même manière dans les deux situations ... donc inutile de dire que je suis assez confus.

Toute aide à ce sujet serait très appréciée.

Merci,

user413945
la source
1
La DLL ne devrait-elle pas être dans $ GIT / lib au lieu de $ GIT / bin? Au moins, c'est ainsi que cela fonctionne sous Linux / UNIX, les bibliothèques vont dans le librépertoire. Je ne sais pas si msysgit utilise le même schéma de mise en page, mais ce serait rapide à vérifier.
David Z
Cette question doit être soumise en tant que bogue au développement Git. Mais pour la vie de moi, je ne trouve aucun lien "soumettre un bug" sur le site Git ...
Andriy Drozdyuk
1
la première réponse fonctionne, vous devez la marquer comme résolue!
erikbwork
@DavidZ - Vous avez résolu mon problème. Votre réponse doit être la réponse acceptée ici.
Mekey Salaria
@Groundshaker non, j'ai d'abord posté un commentaire , pas une réponse; et cela n'a pas résolu le problème de l'affiche originale, donc même si c'était une réponse, cela ne devrait pas être accepté. Quoi qu'il en soit, il semble que plusieurs des réponses existantes couvrent déjà ce correctif (cela devrait être à la libexecplace lib, évidemment), donc je ne vais pas publier quelque chose qui les duplique. (Mais je suis content que mon commentaire ait été utile.)
David Z

Réponses:

104

Contournez à partir de ce fil: http://groups.google.com/forum/#!topic/msysgit/twrVn_EbNI4

  • cd dans votre répertoire d'installation git
  • copy mingw\bin\libiconv-2.dll libexec\git-core
    (ou copy bin\libiconv-2.dll libexec\git-coresi votre installation n'a pas de mingwdossier)

Dans le fil lié, Drew demande de l'aide, donc si vous pensez que vous pouvez aider à résoudre ce problème, vous voudrez peut-être répondre dans ce fil de discussion Google Groupes.

Une erreur se produit avec ces versions:

  • msysgit-fullinstall-1.7.4 OU 1.7.6 (et 1.7.7)
  • msysgit-netinstall-1.7.4 OU 1.7.6 (et 1.7.7)
  • Git pour Windows 1.7.6 (mais pas 1.7.4)
paulecoyote
la source
5
C'était la solution à mon problème. Je pense qu'il vaut la peine de noter que cette solution fonctionne particulièrement pour les erreurs pendant submodule update, mais peut également corriger d'autres instances.
gapple
9
Avec git-1.7.8, j'avais besoin de copier des fichiers dans l'autre sens; libiconv2.dll existe dans libexec/git-core, mais devait être copié bin(ou lié :) mklink /H libexec\git-core\libiconv2.dll bin\libiconv2.dll.
gapple
Cette solution de contournement a corrigé msysGit 1.7.7.1 sur Windows 2003 x64 pour moi. Cela a échoué lorsque j'ai essayé de courir git submodule initet, malheureusement, le seul symptôme que j'ai pu voir au départ était un travail de Jenkins qui se bloquerait indéfiniment. (L'exécution à git submodule initpartir d'une fenêtre Git Bash m'a montré la vraie erreur.) Merci!
Paul Karlin
4
Le correctif de @ grapple a fonctionné pour moi avec la dernière version 1.7.10-preview20120409 sauf que c'était le cas libiconv-2.dll.
Soliah
1
TLDR: Atlassian Sourcetree: Copier libiconv2.dlldans libexec/git-corecomme décrit. Renommez libiconv2.dllen libiconv-2.dll. J'ai eu la même erreur en essayant d'utiliser la dernière version d'Atlassian Sourcetree. Sourcetree a été configuré pour utiliser External Git (au lieu d'être intégré). Apparemment libiconv2.dllet libiconv-2.dllsont le même fichier, mais SourceTree recherche le fichier nommé libiconv-2.dll, non libiconv2.dll. Donc, si vous utilisez l'arborescence des sources, vous devez renommer libiconv2 après l'avoir déplacée vers git-core.
Brandon S.
42
  • copy / Program Files / Git / bin / libiconv-2.dll
  • vers / Program Files / Git / libexec / git-core /
sqzaman
la source
1
Merci, cela a résolu le problème pour moi sur ma machine Win7 exécutant la version git 1.7.7.1.msysgit.0
jesal
1
Je voulais juste noter - mon message d'erreur spécifiait libiconv2.dll ET j'avais à la fois libiconv2.dll et libiconv-2.dll dans / bin.
Roger_S
1
Cela a été utile, merci. Si, comme moi, vous n'avez pas ces dossiers, recherchez-les dans% USERPROFILE% \ Local Settings \ Application Data \ GitHub (voir ma réponse)
wytten
15

J'ai résolu ceci ... il y a quelques choses à noter ici.

1) Le problème était une faute de frappe dans mon origine configurée dans mon fichier local .git / config ... Je suis donc un idiot.

2) Git Bash n'échoue pas correctement dans cette situation, puis lève cette erreur très trompeuse en tant qu'alerte, plutôt que de signaler qu'il n'y a pas d'origine configurée du nom spécifié dans le fichier .git / config.

La seule façon dont j'ai pu comprendre cela a été d'ajouter le répertoire $ GitPath / cmd à mon chemin et d'exécuter git à partir de la ligne de commande. Là, j'ai pu obtenir un message d'erreur détaillé indiquant que le référentiel distant n'existait pas encore. Ensuite, j'ai sorti le fidèle éditeur vi et j'ai vu qu'il y avait en fait une faute de frappe.

La leçon ici. Si vous obtenez une erreur .dll étrange avec msysgit, cela pourrait très probablement être le résultat d'une mauvaise configuration ... plutôt que d'une anomalie du système ou d'un problème d'installation.

Merci à tous ceux qui ont essayé de vous aider!

user413945
la source
1
+1. En cas d'erreur, utilisez toujours une session CMD native minimale. C'est généralement instructif.
VonC
Merci, cela a résolu mon problème, je change msysGit \ bin pour msysGit \ cmd dans le chemin Windows.
Renaud
copy C:\msysgit\mingw\bin\libiconv-2.dll C:\msysgit\binJ'ai installé en utilisant "msysGit-netinstall-1.9.4-preview20140611"
Jeflopo
14

J'ai vu cette erreur avec msysGit-fullinstall-1.7.3.1-preview20101002.exe sur Win 7.

Added <msysgit_dir>\mingw\bin to PATH 

répare le. libiconv2.dll a été trouvé dans ce répertoire.

so_mv
la source
2
Cela n'a pas fonctionné pour moi, j'ai dû copier la DLL dans% WINDIR% (C: \ windows)
jamiebarrow
J'ai ajouté c:\MinGW\binau chemin, et cela l'a corrigé.
JellicleCat
10

Eu ce problème dans SmartGit sur mac. Correction de cela en changeant dans Préférences -> Commandes -> Exécutable

Exécutable Git:

de

/usr/bin/git

à:

/usr/local/git/bin/git
Glacière
la source
2
Merci! Dans mon cas, j'ai dû utiliser / usr / local / bin / git.
ezequielc
3

Variation de la réponse de sqzaman, car je n'avais pas les dossiers au même endroit qu'eux:

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

Notez que j'ai commencé par copier libiconv-2.dll, mais ensuite il s'est plaint de libcurl.dll alors je suis allé de l'avant et j'ai copié * .dll

wytten
la source
1
Après quelques essais et erreurs, j'ai trouvé que la copie de libcrypto.dll, libcurl.dll, libiconv-2.dll et libssl.dll dans le répertoire git-core et cela fonctionnait pour un référentiel (solution minimale). Je ne serais pas surpris si je finis par copier tous les autres aussi pour les autres.
alle_meije
3

Comme SmartGit fait référence à cette page de stackoverflow en résultat d'erreur, je pense que cette connaissance pourrait être utile pour quelqu'un ici ...

Parfois, bien qu'il n'y ait aucun problème avec l'installation de git. Même si vous pouvez utiliser git bash et obtenir des informations sur la version en tapant

git -- version 

SmartGit n'ajoute pas de référentiel et renvoie git est obsolète ou les informations de version ne peuvent pas être récupérées (ou similaires à ce message) ...

Si tel est le cas, vous feriez mieux de vérifier d'abord les paramètres de vos utilitaires de sécurité et de vos applications de suppression de virus. Dans ma situation, la désactivation du pare-feu comodo permet à smartgit de voir les informations d'installation et de version de git.

Erdinç Çorbacı
la source
2

Le moyen le plus rapide de résoudre ce problème consiste à localiser le fichier * .dll sur l'autre PC et à le copier =)

KristofMols
la source
2

J'ai juste essayé d'installer SmartGIT sur Windows et je suis confronté au même problème. Je viens de comprendre que cela ne fonctionne pas en le pointant vers git.exe, mais je l'ai pointé vers C: \ msysgit \ cmd \ git.cmd. Jusqu'à présent, cela fonctionne très bien. Je peux accéder au référentiel git sous msysgit.

Pour info, j'utilise le programme d'installation Net pour Windows.

En espérant que ce soit la bonne approche.


la source
1
J'utilise GIT pour Windows et pour moi, cela a fonctionné en pointant vers git.exe.
Mandeep Janjua
2

Ma réponse résout la même erreur pour msysgit, mais peut aider avec git pur.

Sur Windows 7, j'ai ajouté <msysgit_dir>\mingw\binà PATH comme so_mv l'a recommandé ci-dessus (via l'interface graphique des variables système), mais j'ai dû me déconnecter et me connecter au système d'exploitation après cela , sinon la PATHvaleur ne sera pas mise à jour.

sompylasar
la source
2

Pour résoudre ce problème, j'ai dû copier toutes les DLL de mingw/bin/vers bin/(sans écraser une seule fois). J'utilise des référentiels HTTP distants et je continue de me plaindre.

Kingen
la source
1

J'ai eu la même erreur sur Windows 7 lors de l'exécution de \ msysgit \ bin \ git.exe. Je l'ai corrigé en copiant le \ msysgit \ mingw \ bin \ libiconv-2.dll à la racine du répertoire d'installation de Win 7.

Boris Jockov
la source
1

J'ai installé Git pour Windows, puis Git afin de copier le .dll

Cela n'a pas fonctionné pour moi. Pour résoudre le problème, j'ai dû ajouter le chemin:

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

à la PATHvariable d'environnement.

Cela a résolu le problème et je peux maintenant accéder à git à partir de l'invite de commande.

Sébastien V.
la source
J'utilise le plugin Git pour l' Sublime Text 2endroit où je suis tombé sur ce problème et je l'ai résolu en ajoutant un chemin similaire dans les paramètres du plugin mais avec tous les backslashes échappés comme suit:C:\\Users\\*username*\\AppData\\Local\\GitHub\\PortableGit_054f2e797ebafd44a30203088cd3d58663c627ef\\bin\\git.exe
Jasdeep Khalsa
1

Personnellement, je l'ai résolu en lisant l'erreur que j'ai obtenue de getopt.exe, qui m'a dit qu'il manquait "libiconv2.dll" .. J'avais libiconv-2.dll (remarquez le tiret "-") dans C: \ Program Files ( x86) \ Git \ bin. Faire une copie et le nommer libiconv2.dll a fait l'affaire pour moi ...

J'ai utilisé des packages chocolatés ... peut-être que le fichier réel a été renommé pendant sa durée de développement ... et les dépendances dans les packages ne l'ont pas fait ...

J'espère que cela aide quelqu'un là-bas :)

Maurice CGP Peters
la source
1

Si l'erreur "manquant libiconv-2.dll" se produit lors du démarrage de SourceTree sous Windows, la suite a fonctionné pour moi (Win 8.1):

aller à

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

copie

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

à

C:\Users\$USERNAME$\AppData\Local\Atlassian\SourceTree\git_local\libexec\git-core
Félix
la source
1

Une solution possible pour SourceTree:

   1.Open the "Option" window.
   2.Select "Git".
   3.Than "Use System Git".
   4.And press OK button.
Flayn
la source
A travaillé pour moi. Pour une raison quelconque, SourceTree est passé à git intégré après la mise à jour, ce qui a causé le problème.
starteleport
0

J'ai msysgit sur Windows7 sans aucun problème avec aucune DLL.

J'ai libiconv2.dll dans le répertoire bin: C:\Path\To\Git\1.7.1\bin

Le problème 419 concernait quelqu'un qui avait installé «l'environnement de développement pour compiler Git pour Windows», pas seulement Git.
Voir cette réponse SO pour la différence entre les deux .

Alors, lequel avez-vous installé?

  • Git-1.x.x.x...? (comme ' Git-1.7.0.2-preview20100309.exe'),
  • ou msysGit-netinstall-1.x.x...? (comme ' msysGit-netinstall-1.7.1-preview20100612.exe').
VonC
la source
J'ai installé .. Git-1.7.0.2-preview20100309.exe Je me rends bien compte que le numéro 419 était une installation de développeur, mais c'est l'un des seuls résultats de recherche que j'ai pu trouver sur ce sujet, donc j'espérais qu'il pourrait fournir un aperçu. Mon libconv2.dll se trouve dans C: \ Path \ To \ Git \ bin, qui n'est que l'emplacement d'installation par défaut.
user413945
@thankyoud: Je comprends (et votre question semble bien documentée). Je pensais juste que cela soit plus clair dans ma réponse, pour que les autres voient la différence. Le seul autre problème que j'ai vu avec Git ayant du mal à fonctionner est lié à l'ACL (comme une sorte de problème d'enregistrement de dll ou d' %TEMP%écriture). Un indice sur ce front?
VonC
Je ne sais pas, le répertoire% temp% semble avoir un accès complet pour mon compte actuel. Est-ce que git fonctionne sous un compte autre que l'administrateur lorsque vous bash? De plus, comme je l'ai déjà mentionné, cela ne s'est jamais produit sur aucune autre installation de Windows 7 que j'ai faite ... c'est pourquoi je suis si perplexe. C'est-à-dire que je n'ai jamais eu besoin de jouer avec les autorisations de fichiers dans le passé.
user413945
@thankyoud: étrange. Qu'en est-il de l'installation "portable"? (il suffit de le décompresser et d'ajouter le cmdrépertoire à votre chemin): présentera-t-il le même comportement défectueux?
VonC
@thankyoud: y a-t-il un conflit dans le PATHsur ce Windows7 particulier? Voyez-vous la même erreur avec un «minimal PATH»? Ie"C:\Path\To\Got\cmd;C:\Windows\system32;C:\Windows;C:\Windows\Syste m32\Wbem"
VonC
0

J'ai essayé à l'origine de résoudre ce problème en copiant la dll comme mentionné ici, mais j'ai rapidement rencontré d'autres problèmes. Pour moi, la vraie solution était de définir le chemin dans mon fichier .bashrc pour que msys priorise les binaires msys.

Ouvrez le shell msys et la ligne suivante dans ~ / .bashrc:

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

Judah Menter
la source
0

J'ai été en proie à ce problème, pour corriger ce problème, j'ai désinstallé tortoisegit et msysgit, puis j'ai réinstallé "Git-1.8.1.2-preview20130201".

en faisant cela, cela a corrigé mon problème et je ne suis pas en mesure d'utiliser poshgit.

AdamBlanc
la source
0

Dans mon cas, j'ai utilisé chocolatey (chocolatey.org) pour installer git.

J'ai dû copier libconv-2.dllpour C:\ProgramData\chocolatey\binle faire fonctionner. Je ne sais pas si la copie du fichier l' C:\Program Files (x86)\Git\libexec\git-coreest également nécessairement, comme je l'ai fait en premier.

Luke Chavers
la source
0

J'utilisais la version de bureau de GitHub et j'avais le même problème, j'ai changé le shell par défaut en définissant -> Options ---> Shell par défaut et j'ai vérifié Git bash. J'ai lancé "Open Git shell" et exécuté la commande "git pull", cela a résolu le problème. Cela a fonctionné dans mon cas.

Mundroid
la source
0

Copiez tous les .dll depuis:

C: \ Users \ YOURUSERNAME \ AppData \ Local \ GitHub \ PortableGit_25d850739bc178b2eb13c3e2a9faafea2f9143c0 \ mingw32 \ bin

à:

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

Chris Halcrow
la source
0

J'ai eu le même problème, j'utilise Windows 10 et il est super facile de résoudre ce problème.

Téléchargez le fichier dll depuis:

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

extrayez-le ou collez-le directement dans le dossier mingw, il est généralement dans le lecteur C si vous l'avez installé en utilisant les options par défaut. J'espère que ça aide.

Samriddhi Verma
la source
0

Essayez la commande suivante:

sudo rm -rf /Library/Developer/CommandLineTools 

et installer des outils de développement

Romain Samolazov
la source
-1

J'ai dû gérer ce même message d'erreur en essayant de configurer meanio, dont git est un prérequis (mon erreur particulière était: prérequis non trouvé: git).
Le correctif que j'ai compris consistait à copier libiconv2.dll à partir de

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

à

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

Ensuite, j'ai dû faire quelques ajustements aux variables d'environnement du système Windows (cliquez avec le bouton droit sur l'ordinateur, allez dans les propriétés, cliquez sur "Paramètres système avancés" dans la barre verticale de gauche, sélectionnez les variables d'environnement) Une fois dans Variables d'environnement, regardez dans la case Variables système. Trouvez le

PATH

Variable et ajoutez trois nouvelles références:

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

De cette façon, tous les fichiers git requis sont accessibles via le chemin du système.

J'espère que cela t'aides!

deusofnull
la source