Git para Windows: el programa no puede iniciarse porque falta libiconv2.dll

93

Cuando intento ejecutar ciertos comandos (como git push, por ejemplo) desde un git Bash en Windows 7 (64 bits), aparece el error:

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

He buscado exhaustivamente una solución a esto.
Lo máximo que puedo encontrar es un hilo de problemas en el sitio de código de Google ( Número 419 ) y algunos otros blogs aquí y allá. Por lo que puedo decir, ninguna de las sugerencias ofrecidas en las publicaciones resolverá mi problema.

He intentado volver a instalar. He intentado agregar $GIT/binal PATH.
Puedo verificar que el dll está en el $GIT/bindirectorio ... pero aún no puedo presionar al control remoto.

Tengo una instalación funcional de msysgit en otra caja de Windows 7, y la instalé de la misma manera en ambas situaciones ... así que no hace falta decir que estoy bastante confundido.

Cualquier ayuda en esto será muy apreciada.

Gracias,

user413945
fuente
1
¿No debería la DLL estar en $ GIT / lib en lugar de $ GIT / bin? Al menos, esa es la forma en que funciona en Linux / UNIX, las bibliotecas van en el libdirectorio. No sé si msysgit usa el mismo esquema de diseño, pero sería rápido de verificar.
David Z
Esta pregunta debe enviarse como un error al desarrollo de Git. Pero por mi vida no puedo encontrar ningún enlace de "enviar error" en el sitio de Git ...
Andriy Drozdyuk
1
la primera respuesta funciona, ¡debes marcarla como resuelta!
erikbwork
@DavidZ - Resolviste mi problema. Su respuesta debe ser la respuesta aceptada aquí.
Mekey Salaria
@Groundshaker no, primero publiqué un comentario , no una respuesta; y no resolvió el problema del póster original, por lo que incluso si fuera una respuesta, no debería ser aceptado. De todos modos, parece que varias de las respuestas existentes ya cubren esta solución (debería ser en libexeclugar de lib, evidentemente), por lo que no voy a publicar algo que las duplique. (Pero me alegro de que mi comentario haya sido útil.)
David Z

Respuestas:

104

Solución a este hilo: http://groups.google.com/forum/#!topic/msysgit/twrVn_EbNI4

  • cd en su directorio de instalación de git
  • copy mingw\bin\libiconv-2.dll libexec\git-core
    (o copy bin\libiconv-2.dll libexec\git-coresi su instalación no tiene mingwcarpeta)

En el hilo vinculado, Drew pide ayuda, por lo que si cree que puede ayudar a solucionarlo, es posible que desee responder en ese hilo de Grupos de Google.

El error ocurre con estas compilaciones:

  • msysgit-fullinstall-1.7.4 O 1.7.6 (y 1.7.7)
  • msysgit-netinstall-1.7.4 O 1.7.6 (y 1.7.7)
  • Git para Windows 1.7.6 (pero no 1.7.4)
paulecoyote
fuente
5
Esta fue la solución a mi problema. Creo que vale la pena señalar que esta solución funciona particularmente para errores durante submodule update, pero también puede corregir otras instancias.
gapple
9
Con git-1.7.8 necesitaba copiar archivos en la otra dirección; libiconv2.dll existe en libexec/git-core, pero es necesario copiarlo bin(o vincularlo :) mklink /H libexec\git-core\libiconv2.dll bin\libiconv2.dll.
gapple
Esta solución solucionó msysGit 1.7.7.1 en Windows 2003 x64 para mí. Estaba fallando cuando intenté correr git submodule inity, lamentablemente, el único síntoma que pude ver inicialmente fue un trabajo de Jenkins que se colgaría indefinidamente. (Ejecutar git submodule initdesde una ventana de Git Bash me mostró el error real). ¡Gracias!
Paul Karlin
4
La solución de @ grapple funcionó para mí con la última compilación 1.7.10-preview20120409, excepto que lo fue libiconv-2.dll.
Soliah
1
TLDR: Atlassian SourceTree: Copiar libiconv2.dllen libexec/git-corela forma descrita. Cambiar nombre libiconv2.dlla libiconv-2.dll. Tuve este mismo error al intentar usar la última versión de Atlassian Sourcetree. Sourcetree se configuró para usar Git externo (en lugar de incrustado). Aparentemente libiconv2.dlly libiconv-2.dllson el mismo archivo, pero SourceTree busca el archivo nombrado libiconv-2.dll, no libiconv2.dll. Entonces, si está utilizando el árbol de fuentes, debe cambiar el nombre de libiconv2 después de moverlo a git-core.
Brandon S.
42
  • copiar / Archivos de programa / Git / bin / libiconv-2.dll
  • a / Archivos de programa / Git / libexec / git-core /
sqzaman
fuente
1
Gracias, esto me lo arregló en mi máquina Win7 con git versión 1.7.7.1.msysgit.0
jesal
1
Solo quería señalar: mi mensaje de error especificaba libiconv2.dll Y tenía tanto libiconv2.dll como libiconv-2.dll en / bin.
Roger_S
1
Esto fue útil, gracias. Si, como yo, no tiene estas carpetas, búsquelas en% USERPROFILE% \ Local Settings \ Application Data \ GitHub (vea mi respuesta)
wytten
15

He resuelto esto ... hay un par de cosas a tener en cuenta aquí.

1) El problema fue un error tipográfico en mi origen configurado en mi archivo .git / config local ... Así que soy un idiota.

2) Git Bash no falla correctamente en esta situación, y luego lanza este error muy engañoso como una alerta, en lugar de informar que no hay un origen configurado del nombre especificado en el archivo .git / config.

La única forma en que pude resolver esto fue agregando el directorio $ GitPath / cmd a mi ruta y ejecutando git desde la línea de comando. Allí, pude obtener un mensaje de error detallado que indica que el repositorio remoto aún no existe. Luego abrí el confiable editor vi y vi que, de hecho, había un error tipográfico.

La lección aquí. Si recibe un error .dll extraño con msysgit, es muy probable que sea el resultado de una mala configuración ... en lugar de una anomalía del sistema o un problema de instalación.

¡Gracias a todos los que intentaron ayudar con esto!

user413945
fuente
1
+1. En caso de error, recurra siempre a una sesión mínima de CMD nativa. Generalmente es instructivo.
VonC
Gracias, esto resolvió mi problema.Cambio msysGit \ bin por msysGit \ cmd en la ruta de Windows.
Renaud
copy C:\msysgit\mingw\bin\libiconv-2.dll C:\msysgit\binLo instalé usando "msysGit-netinstall-1.9.4-preview20140611"
Jeflopo
14

Vi este error con msysGit-fullinstall-1.7.3.1-preview20101002.exe en Win 7.

Added <msysgit_dir>\mingw\bin to PATH 

arreglalo. libiconv2.dll se encontró en ese directorio.

so_mv
fuente
2
Esto no funcionó para mí, tuve que copiar la DLL a% WINDIR% (C: \ windows)
jamiebarrow
Agregué c:\MinGW\bina la ruta y eso lo solucionó.
JellicleCat
10

Tuve este problema en SmartGit en mac. Se corrigió cambiando en Preferencias -> Comandos -> Ejecutable

Ejecutable de Git:

de

/usr/bin/git

a:

/usr/local/git/bin/git
Enfriador
fuente
2
¡Gracias! En mi caso, tuve que usar / usr / local / bin / git.
ezequielc
3

Variación de la respuesta de sqzaman, ya que no tenía las carpetas en el mismo lugar que ellas:

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

Tenga en cuenta que comencé copiando libiconv-2.dll, pero luego se quejó de libcurl.dll, así que seguí adelante y copié * .dll

wytten
fuente
1
Después de algunas pruebas y errores, encontré que copiar libcrypto.dll, libcurl.dll, libiconv-2.dll y libssl.dll al directorio git-core y eso funcionó para un repositorio (solución mínima). No me sorprendería si termino copiando todos los demás también para los demás.
alle_meije
3

Como SmartGit hace referencia a esta página de stackoverflow como resultado de error, creo que este conocimiento podría ser útil para alguien aquí ...

A veces, aunque no hay ningún problema con la instalación de git. Incluso si puede usar git bash y obtener información de la versión escribiendo

git -- version 

SmartGit no agrega repositorio y devuelve git is obsolote o la información de la versión no se puede recuperar (o similar a este mensaje) ...

Si es así, es mejor que primero verifique sus utilidades de seguridad y la configuración de las aplicaciones de eliminación de virus. En mi situación, la desactivación del cortafuegos comodo hace que smartgit pueda ver la instalación de git saludable y la información de la versión.

Erdinç Çorbacı
fuente
2

La forma más rápida de solucionar este problema es ubicar el archivo * .dll en la otra PC y copiarlo =)

KristofMols
fuente
2

Intenté instalar SmartGIT en Windows y enfrenté el mismo problema. Me doy cuenta de que no funciona apuntándolo a git.exe, sino que lo apunté a C: \ msysgit \ cmd \ git.cmd. Hasta ahora funciona bien. Puedo acceder al repositorio de git en msysgit.

FYI, estoy usando el instalador de Net para Windows.

Esperando que este sea el enfoque correcto.


fuente
1
Estoy usando GIT para Windows y para mí funcionó apuntando a git.exe.
Mandeep Janjua
2

Mi respuesta resuelve el mismo error para msysgit, pero puede ayudar con git puro.

En Windows 7, agregué lo <msysgit_dir>\mingw\binque PATH so_mv recomendó anteriormente (a través de la GUI de Variables del sistema), pero tuve que cerrar la sesión e iniciar sesión en el sistema operativo después de eso , de lo contrario, el PATHvalor no se actualizará.

sompylasar
fuente
2

Para resolver este problema, tuve que copiar todos los archivos DLL de mingw/bin/a bin/(sin sobrescribir ninguno de los existentes una vez). Utilizo repositorios HTTPs remotos y seguía quejándose.

Kingen
fuente
1

Tuve el mismo error en Windows 7 al ejecutar \ msysgit \ bin \ git.exe. Lo arreglé copiando \ msysgit \ mingw \ bin \ libiconv-2.dll a la raíz del directorio de instalación de Win 7.

Boris Jockov
fuente
1

Instalé Git para Windows, luego Git para copiar el .dll

Esto no funcionó para mí. Para resolver el problema tuve que agregar la ruta:

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

a la PATHvariable de entorno.

Esto resolvió el problema y ahora puedo acceder a git desde el símbolo del sistema.

Sebastien V.
fuente
Estoy usando el complemento de Git Sublime Text 2donde encontré este problema y lo resolví agregando una ruta similar en la configuración del complemento, pero con todas las barras invertidas escapadas de la siguiente manera:C:\\Users\\*username*\\AppData\\Local\\GitHub\\PortableGit_054f2e797ebafd44a30203088cd3d58663c627ef\\bin\\git.exe
Jasdeep Khalsa
1

Personalmente lo resolví leyendo el error que recibí de getopt.exe, que me decía que faltaba "libiconv2.dll" .. Tenía libiconv-2.dll (observe el guión "-") en C: \ Archivos de programa ( x86) \ Git \ bin. Hacer una copia y nombrarla libiconv2.dll funcionó para mí ...

Usé algunos paquetes de chocolate ... tal vez el archivo real fue renombrado durante su vida de desarrollo ... y las dependencias en los paquetes no ...

Bueno, espero que ayude a alguien :)

Maurice CGP Peters
fuente
1

Si aparece el error "falta libiconv-2.dll" al iniciar SourceTree en Windows, lo siguiente funcionó para mí (Win 8.1):

ir

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

Copiar

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

a

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

Una posible solución para SourceTree:

   1.Open the "Option" window.
   2.Select "Git".
   3.Than "Use System Git".
   4.And press OK button.
Flayn
fuente
Trabajó para mi. Por alguna razón, SourceTree cambió a git integrado después de la actualización, lo que causó el problema.
starteleport
0

Tengo msysgit en Windows7 sin ningún problema con ninguna DLL.

Tengo libiconv2.dll en el directorio bin: C:\Path\To\Git\1.7.1\bin

El problema 419 era sobre alguien que instaló el "entorno de desarrollo para compilar Git para Windows", no solo Git.
Vea esta respuesta SO para conocer la diferencia entre los dos .

Entonces, ¿cuál instalaste?

  • Git-1.x.x.x...? (como ' Git-1.7.0.2-preview20100309.exe'),
  • o msysGit-netinstall-1.x.x...? (como ' msysGit-netinstall-1.7.1-preview20100612.exe').
VonC
fuente
Instalé .. Git-1.7.0.2-preview20100309.exe Definitivamente me doy cuenta de que el Issue 419 fue una instalación de desarrollador, pero es uno de los únicos resultados de búsqueda que pude encontrar sobre este tema, así que esperaba que pudiera proporcionar alguna información. Mi libconv2.dll está en C: \ Path \ To \ Git \ bin, que es solo la ubicación de instalación predeterminada.
user413945
@gracias: lo entiendo (y su pregunta parece estar bien documentada). Solo pensé en dejar eso más claro en mi respuesta, para que otros vean la diferencia. El único otro problema que he visto con Git que tiene problemas para ejecutarse está relacionado con la ACL (como algún tipo de problema de registro de dll o %TEMP%problema de escritura). ¿Alguna pista en ese frente?
VonC
No sé, el directorio% temp% parece tener acceso completo para mi cuenta actual. ¿Git se ejecuta con una cuenta que no sea de administrador cuando bash? Además, como mencioné antes, esto nunca ha sucedido en ninguna otra instalación de Windows 7 que haya hecho ... así que es por eso que estoy tan perplejo. Es decir, nunca tuve la necesidad de jugar con los permisos de archivos en el pasado.
user413945
@graciasoud: Extraño. ¿Qué pasa con la instalación "portátil"? (simplemente descomprímalo y agregue el cmddirectorio a su ruta): ¿exhibirá el mismo comportamiento defectuoso?
VonC
@thankyoud: ¿hay algún conflicto en PATHeste Windows7 en particular? ¿Ves el mismo error con un 'mínimo PATH'? Es decir"C:\Path\To\Got\cmd;C:\Windows\system32;C:\Windows;C:\Windows\Syste m32\Wbem"
VonC
0

Originalmente intenté resolver este problema copiando el dll como se menciona aquí, pero pronto encontré otros problemas. Para mí, la solución real fue establecer la ruta en mi archivo .bashrc para que msys priorizara los binarios de msys.

Abra el shell msys y la siguiente línea en ~ / .bashrc:

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

Judá Menter
fuente
0

He estado plagado de este problema, para corregir este problema, desinstalé tortoisegit y msysgit, luego reinstalé "Git-1.8.1.2-preview20130201".

al hacer esto, esto corrigió mi problema y no puedo usar poshgit.

AdamWhite
fuente
0

En mi caso, utilicé chocolatey (chocolatey.org) para instalar git.

Tuve que copiar libconv-2.dllpara C:\ProgramData\chocolatey\binque funcionara. No estoy seguro de si copiar el archivo a C:\Program Files (x86)\Git\libexec\git-coretambién es necesario, como lo hice primero.

Luke Chavers
fuente
0

Estaba usando la versión de escritorio de GitHub y tenía el mismo problema, cambié el shell predeterminado mediante Configuración -> Opciones ---> Shell predeterminado y verifiqué Git bash. Inicié "Open Git shell" y ejecuté el comando "git pull", solucionó el problema. Funcionó en mi caso.

Mundroid
fuente
0

Copie todos los .dlls de:

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

a:

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

Chris Halcrow
fuente
0

Tuve el mismo problema, estoy usando Windows 10 y es muy fácil resolver este problema.

Descargue el archivo dll desde:

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

extraerlo o pegarlo en la carpeta mingw directamente, generalmente está en la unidad C- si lo ha instalado usando las opciones predeterminadas. Espero eso ayude.

Samriddhi Verma
fuente
0

Prueba el siguiente comando:

sudo rm -rf /Library/Developer/CommandLineTools 

e instalar herramientas para desarrolladores

Samolazov Roman
fuente
-1

Tuve que lidiar con este mismo mensaje de error al intentar configurar meanio, del cual git es un prerrequisito (mi error particular fue: prerequisite not found: git).
La solución que descubrí implicaba copiar libiconv2.dll de

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

a

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

Luego tuve que hacer algunos ajustes en las Variables de entorno del sistema de Windows (Haga clic con el botón derecho en la computadora, vaya a Propiedades, haga clic en "Configuración avanzada del sistema" en la barra vertical izquierda, seleccione las variables de entorno) Una vez en Variables de entorno, busque en el cuadro Variables del sistema. Encuentra el

PATH

Variable y suma tres nuevas referencias:

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

De esta manera, todos los archivos git necesarios son accesibles a través de la ruta del sistema.

¡Espero que esto ayude!

deusofnull
fuente