Git per Windows - Il programma non può essere avviato perché manca libiconv2.dll


93

Quando tento di eseguire determinati comandi (come git push, ad esempio) da un git Bash su Windows 7 (64 bit) ottengo l'errore:

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

Ho cercato esaurientemente una soluzione a questo.
Il massimo che riesco a trovare è un thread sul problema nel sito del codice di Google ( numero 419 ) e alcuni altri blog qua e là. Per quanto ne so, nessuno dei suggerimenti offerti nei post risolverà effettivamente il mio problema.

Ho provato a reinstallare. Ho provato ad aggiungere $GIT/binal file PATH.
Posso verificare che la dll sia nella $GIT/bindirectory ... ma non riesco ancora a eseguire il push a remoto.

Ho un'installazione funzionante di msysgit su un'altra scatola di Windows 7 e ho installato allo stesso modo in entrambe le situazioni ... quindi inutile dire che sono abbastanza confuso.

Qualsiasi aiuto su questo sarebbe molto apprezzato.

Grazie,


1
La DLL non dovrebbe essere in $ GIT / lib invece di $ GIT / bin? Almeno, è così che funziona su Linux / UNIX, le librerie vanno nella libdirectory. Non so se msysgit utilizza lo stesso schema di layout ma sarebbe veloce da controllare.
David Z

Questa domanda dovrebbe essere presentata come un bug allo sviluppo di Git. Ma per quanto mi riguarda non riesco a trovare alcun link "invia bug" sul sito Git ...
Andriy Drozdyuk

1
la prima risposta funziona, dovresti contrassegnarla come risolta!
erikbwork

@DavidZ - Hai risolto il mio problema. La tua risposta deve essere la risposta accettata qui.
Mekey Salaria

@Groundshaker no, prima di tutto ho postato un commento , non una risposta; e non ha risolto il problema del poster originale, quindi anche se fosse una risposta non dovrebbe essere accettata. Ad ogni modo sembra che molte delle risposte esistenti coprono già questa correzione (dovrebbe essere libexecinvece di lib, evidentemente), quindi non ho intenzione di pubblicare qualcosa che le duplica. (Ma sono contento che il mio commento sia stato utile.)
David Z

Risposte:


104

Aggira da questo thread: http://groups.google.com/forum/#!topic/msysgit/twrVn_EbNI4

  • cd nella directory di installazione di git
  • copy mingw\bin\libiconv-2.dll libexec\git-core
    (o copy bin\libiconv-2.dll libexec\git-corese l'installazione non ha una mingwcartella)

Nel thread collegato Drew chiede assistenza, quindi se pensi di poter aiutare a risolverlo potresti voler rispondere in quel thread di Google Gruppi.

Si verifica un errore con queste build:

  • msysgit-fullinstall-1.7.4 OPPURE 1.7.6 (e 1.7.7)
  • msysgit-netinstall-1.7.4 OPPURE 1.7.6 (e 1.7.7)
  • Git per Windows 1.7.6 (ma non 1.7.4)

5
Questa era la soluzione al mio problema. Penso che valga la pena notare che questa soluzione funziona in particolare per gli errori durante submodule update, ma può risolvere anche altri casi.
Gapple

9
Con git-1.7.8 avevo bisogno di copiare i file nell'altra direzione; libiconv2.dll esiste in libexec/git-core, ma doveva essere copiato in bin(o collegato :) mklink /H libexec\git-core\libiconv2.dll bin\libiconv2.dll.
gapple

Questa soluzione alternativa ha risolto msysGit 1.7.7.1 su Windows 2003 x64 per me. Stava fallendo quando ho provato a correre git submodule inite, purtroppo, l'unico sintomo che ho potuto vedere inizialmente era un lavoro di Jenkins che sarebbe rimasto sospeso indefinitamente. (L'esecuzione git submodule initda una finestra di Git Bash mi ha mostrato il vero errore.) Grazie!
Paul Karlin

4
La correzione di @ grapple ha funzionato per me con l'ultima build 1.7.10-preview20120409 tranne che lo era libiconv-2.dll.
Soliah

1
TLDR: Atlassian Sourcetree: Copia libiconv2.dllin libexec/git-corecome descritto. Rinomina libiconv2.dllin libiconv-2.dll. Ho riscontrato lo stesso errore durante il tentativo di utilizzare l'ultima versione di Atlassian Sourcetree. Sourcetree è stato impostato per utilizzare Git esterno (invece di incorporato). Apparentemente libiconv2.dlle libiconv-2.dllsono lo stesso file, ma SourceTree cerca il file denominato libiconv-2.dll, no libiconv2.dll. Quindi, se stai usando l'albero dei sorgenti, devi rinominare libiconv2 dopo averlo spostato su git-core.
Brandon S.

42
  • copia / Programmi / Git / bin / libiconv-2.dll
  • in / Programmi / Git / libexec / git-core /

1
Grazie, questo ha risolto il problema per me sulla mia macchina Win7 con versione git 1.7.7.1.msysgit.0
jesal

1
Volevo solo notare: il mio messaggio di errore specificava libiconv2.dll E avevo sia libiconv2.dll che libiconv-2.dll in / bin.
Roger_S

1
Questo è stato utile, grazie. Se, come me, non hai queste cartelle, cercale in% USERPROFILE% \ Impostazioni locali \ Dati applicazioni \ GitHub (vedi la mia risposta)
wytten

15

Ho risolto questo ... ci sono un paio di cose da notare qui.

1) Il problema era un errore di battitura nella mia origine configurata nel mio file .git / config locale ... Quindi sono un idiota.

2) Git Bash non fallisce regolarmente in questa situazione, quindi lancia questo errore molto fuorviante come un avviso, piuttosto che segnalare che non esiste un'origine configurata del nome specificato nel file .git / config.

L'unico modo in cui sono stato in grado di capirlo è stato aggiungere la directory $ GitPath / cmd al mio percorso ed eseguire git dalla riga di comando. Lì, sono stato in grado di ottenere un messaggio di errore dettagliato che indica che il repository remoto non esiste ancora. Poi ho richiamato il fidato editor di vi e ho visto che c'era un errore di battitura.

La lezione qui. Se ricevi uno strano errore .dll con msysgit, molto probabilmente potrebbe essere il risultato di una configurazione errata ... piuttosto che di un'anomalia di sistema o di un problema di installazione.

Grazie a tutti coloro che hanno cercato di aiutare con questo!


1
+1. In caso di errore, ricorrere sempre a una sessione CMD nativa minima. È generalmente istruttivo.
VonC

Grazie, questo ha risolto il mio problema, cambio msysGit \ bin per msysGit \ cmd nel percorso di Windows.
Renaud

copy C:\msysgit\mingw\bin\libiconv-2.dll C:\msysgit\binHo installato utilizzando "msysGit-netinstall-1.9.4-preview20140611"
Jeflopo

14

Ho visto questo errore con msysGit-fullinstall-1.7.3.1-preview20101002.exe su Win 7.

Added <msysgit_dir>\mingw\bin to PATH 

aggiustalo. libiconv2.dll è stato trovato in quella directory.


2
Questo non ha funzionato per me, ho dovuto copiare la DLL in% WINDIR% (C: \ windows)
jamiebarrow

Ho aggiunto c:\MinGW\bina path e questo l'ha risolto.
JellicleCat

10

Hai avuto questo problema in SmartGit su mac. Risolto il problema modificando in Preferenze -> Comandi -> Eseguibile

Eseguibile Git:

a partire dal

/usr/bin/git

per:

/usr/local/git/bin/git

2
Grazie! Nel mio caso, ho dovuto usare / usr / local / bin / git.
ezequielc

3

Variazione della risposta di sqzaman, poiché non avevo le cartelle nello stesso posto in cui avevano:

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

Nota che ho iniziato copiando libiconv-2.dll, ma poi si è lamentato di libcurl.dll quindi sono andato avanti e ho copiato * .dll


1
Dopo alcuni tentativi ed errori ho scoperto che la copia di libcrypto.dll, libcurl.dll, libiconv-2.dll e libssl.dll nella directory git-core e che ha funzionato per un repository (soluzione minima). Non sarei sorpreso se finissi per copiare anche tutti gli altri per gli altri.
alle_meije

3

Poiché SmartGit fa riferimento a questa pagina di stackoverflow nel risultato di errore, penso che questa conoscenza potrebbe essere utile per qualcuno qui ....

A volte anche se non ci sono problemi con l'installazione di git. Anche se puoi usare git bash e ottenere informazioni sulla versione digitando

git -- version 

SmartGit non aggiunge repository e restituisce che git è obsoleto o le informazioni sulla versione non possono essere recuperate (o simili a questo messaggio) ...

In tal caso, è meglio controllare prima le utilità di sicurezza e le impostazioni delle applicazioni di rimozione dei virus. Nella mia situazione la disabilitazione di comodo firewall rende smartgit in grado di vedere l'installazione di git sana e le informazioni sulla versione.


2

Il modo più veloce per risolvere questo problema è individuare il file * .dll sull'altro PC e copiarlo =)


2

Ho appena provato a installare SmartGIT su Windows e ho riscontrato lo stesso problema. Ho appena scoperto che non funziona puntandolo su git.exe, invece l'ho puntato su C: \ msysgit \ cmd \ git.cmd. Finora funziona bene. Posso accedere al repository git sotto msysgit.

Cordiali saluti, sto usando il programma di installazione di rete per Windows.

Sperando che questo sia l'approccio giusto.


1
Sto usando GIT per Windows e per me ha funzionato puntando a git.exe.
Mandeep Janjua

2

La mia risposta risolve lo stesso errore per msysgit, ma può aiutare con git puro.

In Windows 7, ho aggiunto <msysgit_dir>\mingw\bina PATH come so_mv ha raccomandato al di sopra (tramite le variabili interfaccia grafica del sistema), ma ho dovuto il logout e il login al sistema operativo dopo che , in caso contrario il PATHvalore non viene aggiornata.


2

Per risolvere questo problema, ho effettivamente dovuto copiare tutte le DLL da mingw/bin/a bin/(senza sovrascrivere nessuna esistente una volta). Uso repository HTTPs remoti e continuava a lamentarsi.


1

Ho avuto lo stesso errore su Windows 7 durante l'esecuzione di \ msysgit \ bin \ git.exe. L'ho risolto copiando \ msysgit \ mingw \ bin \ libiconv-2.dll nella radice della directory di installazione di Win 7.


1

Ho installato Git per Windows, poi Git per copiare il file .dll

Questo non ha funzionato per me. Per risolvere il problema ho dovuto aggiungere il percorso:

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

alla PATHvariabile d'ambiente.

Questo ha risolto il problema e ora posso accedere a git dal prompt dei comandi.


Sto usando il plug-in Git per Sublime Text 2dove mi sono imbattuto in questo problema e l'ho risolto aggiungendo un percorso simile nelle impostazioni del plug-in ma con tutti i backslash sfuggiti come segue:C:\\Users\\*username*\\AppData\\Local\\GitHub\\PortableGit_054f2e797ebafd44a30203088cd3d58663c627ef\\bin\\git.exe
Jasdeep Khalsa

1

Personalmente l'ho risolto leggendo l'errore che ho ricevuto da getopt.exe, che mi diceva che mancava "libiconv2.dll" .. Avevo libiconv-2.dll (notare il trattino "-") in C: \ Programmi ( x86) \ Git \ bin. Fare una copia e nominarla libiconv2.dll ha fatto il trucco per me ...

Ho usato alcuni pacchetti cioccolatosi ... forse il file effettivo è stato rinominato durante la sua vita di sviluppo ... e le dipendenze nei pacchetti no ....

Spero che aiuti qualcuno là fuori :)


1

Se l'errore "manca libiconv-2.dll" si verifica durante l'avvio di SourceTree su Windows, per me ha funzionato quanto segue (Win 8.1):

vai a

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

copia

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

per

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

1

Una possibile soluzione per SourceTree:

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

Ha funzionato per me. Per qualche motivo, SourceTree è passato a git incorporato dopo l'aggiornamento, che ha causato il problema.
starteleport

0

Ho msysgit su Windows7 senza alcun problema con alcuna DLL.

Ho libiconv2.dll nella directory bin: C:\Path\To\Git\1.7.1\bin

Il problema 419 riguardava qualcuno che installava "l'ambiente di sviluppo per compilare Git per Windows", non solo Git.
Vedi questa risposta SO per la differenza tra i due .

Quindi quale hai installato?

  • Git-1.x.x.x...? (come " Git-1.7.0.2-preview20100309.exe"),
  • o msysGit-netinstall-1.x.x...? (come " msysGit-netinstall-1.7.1-preview20100612.exe").

Ho installato .. Git-1.7.0.2-preview20100309.exe Mi rendo conto che il problema 419 era un'installazione per sviluppatori, ma è uno dei pochi risultati di ricerca che ho trovato su questo argomento, quindi speravo che potesse fornire alcune informazioni. La mia libconv2.dll si trova in C: \ Path \ To \ Git \ bin, che è solo la posizione di installazione predefinita.
user413945

@thankyoud: ho capito (e la tua domanda sembra ben documentata). Ho solo pensato di renderlo più chiaro nella mia risposta, in modo che altri vedessero la differenza. L'unico altro problema che ho riscontrato con Git che ha problemi di esecuzione è correlato all'ACL (come una sorta di problema di registrazione dll o di %TEMP%scrittura). Qualche indizio su quel fronte?
VonC

Non so, la directory% temp% sembra avere pieno accesso per il mio account corrente. Git funziona con un account diverso dall'amministratore quando si esegue il bash? Inoltre, come ho detto prima, questo non è mai successo su nessun'altra installazione di Windows 7 che ho fatto ... quindi è per questo che sono così perplesso. Vale a dire, non ho mai avuto bisogno di giocherellare con i permessi dei file in passato.
user413945

@thankyoud: Strano. E l'installazione "portatile"? (basta decomprimerlo e aggiungere la cmddirectory al percorso): mostrerà lo stesso comportamento difettoso?
VonC

@thankyoud: c'è qualche conflitto in PATHsu questo particolare Windows7? Vedi lo stesso errore con un "minimo PATH"? "C:\Path\To\Got\cmd;C:\Windows\system32;C:\Windows;C:\Windows\Syste m32\Wbem"
Vale a

0

Inizialmente ho provato a risolvere questo problema copiando la dll come menzionato qui, ma presto ho riscontrato altri problemi. Per me la vera soluzione era impostare il percorso nel mio file .bashrc per msys per dare la priorità ai binari msys.

Apri la shell msys e la seguente riga in ~ / .bashrc:

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


0

Sono stato afflitto da questo problema, per correggere questo problema, ho disinstallato tortoisegit e msysgit, quindi ho reinstallato "Git-1.8.1.2-preview20130201".

in questo modo, questo ha corretto il mio problema e non sono in grado di utilizzare poshgit.


0

Nel mio caso ho usato chocolatey (chocolatey.org) per installare git.

Ho dovuto copiare libconv-2.dllper C:\ProgramData\chocolatey\binper farlo funzionare. Non sono sicuro che anche la copia del file C:\Program Files (x86)\Git\libexec\git-coresia necessariamente, come ho fatto prima.


0

Stavo usando la versione desktop di GitHub e avendo lo stesso problema, ho cambiato la shell predefinita da Impostazioni -> Opzioni ---> Shell predefinita e ho controllato Git bash. Ho avviato "Open Git shell" ed eseguito il comando "git pull", il problema è stato risolto. Ha funzionato nel mio caso.


0

Copia tutti i file .dll da:

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

per:

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


0

Ho avuto lo stesso problema, sto usando Windows 10 ed è semplicissimo risolvere questo problema.

Scarica il file dll da:

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

estraetelo o incollatelo direttamente nella cartella mingw, generalmente si trova nell'unità C se lo avete installato utilizzando le opzioni predefinite. Spero che sia d'aiuto.


0

Prova il seguente comando:

sudo rm -rf /Library/Developer/CommandLineTools 

e installa strumenti per sviluppatori


-1

Ho dovuto gestire lo stesso messaggio di errore durante il tentativo di configurare meanio, di cui git è un prerequisito (il mio errore particolare era: prerequisito non trovato: git).
La correzione che ho capito comportava la copia di libiconv2.dll da

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

per

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

Quindi ho dovuto apportare alcune modifiche alle variabili d'ambiente del sistema Windows (fare clic con il tasto destro del mouse su computer, andare su proprietà, fare clic su "Impostazioni di sistema avanzate" sulla barra verticale sinistra, selezionare le variabili d'ambiente) Una volta in Variabili d'ambiente, guarda nella casella Variabili di sistema. Trovare la

PATH

Variabile e aggiungi tre nuovi riferimenti:

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

In questo modo tutti i file git richiesti sono accessibili attraverso il percorso di sistema.

Spero che questo ti aiuti!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.