Git untuk Windows - Program tidak dapat dimulai karena libiconv2.dll hilang

93

Ketika saya mencoba menjalankan perintah tertentu (seperti git push, misalnya) dari git Bash di Windows 7 (64bit) saya mendapatkan kesalahan:

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

Saya telah mencari solusi untuk hal ini secara mendalam.
Yang paling bisa saya temukan adalah utas masalah di situs kode google ( Masalah 419 ) dan beberapa blog lain di sana-sini. Sejauh yang saya tahu tidak ada saran yang ditawarkan dalam posting yang benar-benar akan menyelesaikan masalah saya.

Saya telah mencoba menginstal ulang. Saya telah mencoba menambahkan $GIT/binke PATH.
Saya dapat memverifikasi bahwa dll ada di $GIT/bindirektori ... tetapi tetap saya tidak bisa mendorong ke jarak jauh.

Saya memiliki instalasi msysgit yang berfungsi di kotak Windows 7 lain, dan saya menginstal dengan cara yang sama dalam kedua situasi ... jadi tidak perlu dikatakan saya cukup bingung.

Bantuan apa pun dalam hal ini akan sangat dihargai.

Terima kasih,

pengguna413945
sumber
1
Bukankah DLL seharusnya ada di $ GIT / lib daripada $ GIT / bin? Setidaknya, begitulah cara kerjanya di Linux / UNIX, perpustakaan masuk ke libdirektori. Saya tidak tahu apakah msysgit menggunakan skema tata letak yang sama tetapi akan cepat memeriksanya.
David Z
Pertanyaan ini harus diajukan sebagai bug untuk pengembangan Git. Tetapi seumur hidup saya, saya tidak dapat menemukan tautan "kirim bug" di situs Git ...
Andriy Drozdyuk
1
jawaban pertama berfungsi, Anda harus menandainya sebagai terselesaikan!
erikbwork
@DavidZ - Anda memecahkan masalah saya. Jawaban Anda haruslah jawaban yang diterima di sini.
Mekey Salaria
@Groundshaker no, pertama-tama saya memposting komentar , bukan jawaban; dan itu tidak menyelesaikan masalah pembuat poster asli, jadi meskipun itu adalah jawaban, itu tidak boleh diterima. Bagaimanapun tampaknya beberapa jawaban yang ada sudah mencakup perbaikan ini (seharusnya libexecbukan lib, ternyata), jadi saya tidak akan memposting sesuatu yang menduplikasi mereka. (Tapi saya senang komentar saya bermanfaat.)
David Z

Jawaban:

104

Mengatasi utas ini: http://groups.google.com/forum/#!topic/msysgit/twrVn_EbNI4

  • cd ke dalam direktori git install Anda
  • copy mingw\bin\libiconv-2.dll libexec\git-core
    (atau copy bin\libiconv-2.dll libexec\git-corejika instalasi Anda tidak memiliki mingwfolder)

Di utas tertaut, Drew meminta bantuan, jadi jika menurut Anda Anda dapat membantu memperbaikinya, Anda mungkin ingin membalas di utas Google Grup itu.

Terjadi kesalahan dengan build ini:

  • msysgit-fullinstall-1.7.4 ATAU 1.7.6 (dan 1.7.7)
  • msysgit-netinstall-1.7.4 ATAU 1.7.6 (dan 1.7.7)
  • Git Untuk Windows 1.7.6 (tapi bukan 1.7.4)
paulecoyote.dll
sumber
5
Ini adalah solusi untuk masalah saya. Saya pikir perlu dicatat bahwa solusi ini berfungsi terutama untuk kesalahan selama submodule update, tetapi dapat memperbaiki contoh lain juga.
gapple
9
Dengan git-1.7.8 saya perlu menyalin file ke arah lain; libiconv2.dll ada di libexec/git-core, tetapi perlu disalin ke bin(atau ditautkan :) mklink /H libexec\git-core\libiconv2.dll bin\libiconv2.dll.
gapple
Solusi ini memperbaiki msysGit 1.7.7.1 pada Windows 2003 x64 untuk saya. Itu gagal ketika saya mencoba untuk lari git submodule initdan sayangnya, satu-satunya gejala yang saya lihat pada awalnya adalah pekerjaan Jenkins yang akan menggantung tanpa batas. (Menjalankan git submodule initdari jendela Git Bash menunjukkan kesalahan sebenarnya.) Terima kasih!
Paul Karlin
4
@ grapple's fix bekerja untuk saya dengan build 1.7.10-preview20120409 terbaru kecuali itu libiconv-2.dll.
Soliah
1
TLDR: Atlassian Sourcetree: Salin libiconv2.dllke libexec/git-coreseperti yang dijelaskan. Ganti nama libiconv2.dllmenjadi libiconv-2.dll. Saya mengalami kesalahan yang sama saat mencoba menggunakan versi terbaru Atlassian Sourcetree. Sourcetree diatur untuk menggunakan External Git (bukan tertanam). Tampaknya libiconv2.dlldan libiconv-2.dllmerupakan file yang sama, tetapi SourceTree mencari file bernama libiconv-2.dll, bukan libiconv2.dll. Jadi, jika Anda menggunakan pohon sumber, Anda perlu mengganti nama libiconv2 setelah memindahkannya ke git-core.
Brandon S.
42
  • salin / Program Files / Git / bin / libiconv-2.dll
  • ke / Program Files / Git / libexec / git-core /
sqzaman.dll
sumber
1
Terima kasih, ini memperbaikinya untuk saya di mesin Win7 saya yang menjalankan git versi 1.7.7.1.msysgit.0
jesal
1
Hanya ingin mencatat - pesan kesalahan saya menyebutkan libiconv2.dll DAN saya memiliki libiconv2.dll dan libiconv-2.dll di / bin.
Roger_S
1
Ini sangat membantu, terima kasih. Jika, seperti saya, Anda tidak memiliki folder ini, cari di% USERPROFILE% \ Pengaturan Lokal \ Data Aplikasi \ GitHub (lihat jawaban saya)
wytten
15

Saya telah menyelesaikan ini ... ada beberapa hal yang perlu diperhatikan di sini.

1) Masalahnya adalah kesalahan ketik pada konfigurasi asal saya di file .git / config lokal saya ... Jadi, saya idiot.

2) Git Bash tidak gagal dengan baik dalam situasi ini, dan kemudian menampilkan kesalahan yang sangat menyesatkan ini sebagai peringatan, daripada melaporkan bahwa tidak ada asal yang dikonfigurasi dari nama yang ditentukan dalam file .git / config.

Satu-satunya cara saya bisa mengetahuinya adalah dengan menambahkan direktori $ GitPath / cmd ke jalur saya dan menjalankan git dari baris perintah. Di sana, saya bisa mendapatkan pesan kesalahan panjang yang menunjukkan bahwa repositori jarak jauh belum ada. Kemudian saya menarik editor vi yang terpercaya dan melihat ternyata ada kesalahan ketik.

Pelajarannya di sini. Jika Anda mendapatkan kesalahan .dll yang aneh dengan msysgit, kemungkinan besar itu adalah hasil dari kesalahan konfigurasi ... daripada beberapa anomali sistem atau masalah pemasangan.

Terima kasih kepada semua orang yang mencoba membantu dengan ini!

pengguna413945
sumber
1
+1. Jika terjadi kesalahan, selalu gunakan sesi CMD asli minimal. Ini umumnya instruktif.
VonC
Terima kasih, ini memecahkan masalah saya, saya mengubah msysGit \ bin untuk msysGit \ cmd di jalur windows.
Renaud
copy C:\msysgit\mingw\bin\libiconv-2.dll C:\msysgit\binSaya menginstal menggunakan "msysGit-netinstall-1.9.4-preview20140611"
Jeflopo
14

Saya melihat kesalahan ini dengan msysGit-fullinstall-1.7.3.1-preview20101002.exe di Win 7.

Added <msysgit_dir>\mingw\bin to PATH 

memperbaikinya. libiconv2.dll ditemukan di direktori itu.

so_mv
sumber
2
Ini tidak berhasil untuk saya, harus menyalin DLL ke% WINDIR% (C: \ windows)
jamiebarrow
Saya menambahkan c:\MinGW\binke jalur, dan itu memperbaikinya.
JellicleCat
10

Punya masalah ini di SmartGit di mac. Perbaiki dengan mengubahnya di Preferensi -> Perintah -> Dapat Dieksekusi

Git Executable:

dari

/usr/bin/git

untuk:

/usr/local/git/bin/git
Lebih dingin
sumber
2
Terima kasih! Dalam kasus saya, saya harus menggunakan / usr / local / bin / git.
ezequielc
3

Variasi jawaban sqzaman, karena saya tidak memiliki folder di tempat yang sama seperti:

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

Perhatikan bahwa saya mulai dengan menyalin libiconv-2.dll, tetapi kemudian mengeluh tentang libcurl.dll jadi saya melanjutkan dan menyalin * .dll

wytten
sumber
1
Setelah beberapa trial & error saya menemukan bahwa menyalin libcrypto.dll, libcurl.dll, libiconv-2.dll dan libssl.dll ke direktori git-core dan itu bekerja untuk satu repositori (solusi minimal). Tidak akan terkejut jika saya akhirnya menyalin semua yang lain juga untuk orang lain.
alle_meije
3

Karena SmartGit mereferensikan halaman stackoverflow ini dalam hasil kesalahan, saya pikir pengetahuan ini mungkin berguna bagi seseorang di sini ....

Terkadang meskipun tidak ada masalah dengan instalasi git. Meskipun Anda dapat menggunakan git bash dan mendapatkan informasi versi dengan mengetik

git -- version 

SmartGit tidak menambahkan repositori dan mengembalikan git sudah usang atau informasi versi tidak dapat diambil (atau mirip dengan pesan ini) ...

Jika demikian, Anda sebaiknya memeriksa utilitas keamanan dan pengaturan aplikasi penghapus virus terlebih dahulu. Dalam situasi saya menonaktifkan firewall comodo membuat smartgit dapat melihat instalasi git yang sehat dan informasi versi.

Erdinç Çorbacı
sumber
2

Cara tercepat untuk memperbaikinya adalah dengan mencari file * .dll di komputer lain dan menyalinnya =)

KristofMols
sumber
2

Saya baru saja mencoba menginstal SmartGIT di Windows dan menghadapi masalah yang sama. Saya baru tahu bahwa itu berfungsi bukan dengan mengarahkannya ke git.exe, melainkan saya mengarahkannya ke C: \ msysgit \ cmd \ git.cmd. Sejauh ini itu berfungsi dengan baik. Saya dapat mengakses repositori git di bawah msysgit.

FYI, saya menggunakan penginstal Net untuk Windows.

Berharap ini adalah pendekatan yang tepat.


sumber
1
Saya menggunakan GIT untuk windows dan untuk saya itu bekerja dengan menunjuk ke git.exe.
Mandeep Janjua
2

Jawaban saya menyelesaikan kesalahan yang sama untuk msysgit, tetapi dapat membantu dengan git murni.

Di Windows 7, saya menambahkan <msysgit_dir>\mingw\bin untuk PATH sebagai so_mv telah direkomendasikan di atas (melalui Variabel GUI System), tapi aku harus logout dan login untuk OS setelah itu , jika PATHnilai tidak akan diperbarui.

sompylasar.dll
sumber
2

Untuk mengatasi masalah ini saya sebenarnya harus menyalin semua DLL dari mingw/bin/ke bin/(tidak menimpa yang sudah ada sekali). Saya menggunakan repositori HTTPs jarak jauh dan terus mengeluh.

Kingen
sumber
1

Saya mengalami kesalahan yang sama pada Windows 7 saat menjalankan \ msysgit \ bin \ git.exe. Saya memperbaikinya dengan menyalin \ msysgit \ mingw \ bin \ libiconv-2.dll ke root direktori instalasi Win 7.

Boris Jockov
sumber
1

Saya menginstal Git untuk Windows, lalu Git untuk menyalin .dll

Ini tidak berhasil untuk saya. Untuk mengatasi masalah ini saya harus menambahkan jalur:

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

ke PATHvariabel lingkungan.

Ini menyelesaikan masalah dan saya sekarang dapat mengakses git dari command prompt.

Sebastien V.
sumber
Saya menggunakan plugin Git di Sublime Text 2mana saya menemukan masalah ini dan menyelesaikannya dengan menambahkan jalur yang sama ke dalam pengaturan plugin tetapi dengan semua garis miring terbalik sebagai berikut:C:\\Users\\*username*\\AppData\\Local\\GitHub\\PortableGit_054f2e797ebafd44a30203088cd3d58663c627ef\\bin\\git.exe
Jasdeep Khalsa
1

Secara pribadi saya menyelesaikannya dengan membaca kesalahan yang saya dapatkan dari getopt.exe, yang memberi tahu saya bahwa "libiconv2.dll" tidak ada .. Saya memiliki libiconv-2.dll (perhatikan tanda hubung "-") di C: \ Program Files ( x86) \ Git \ bin. Membuat salinan dan menamainya libiconv2.dll berhasil bagi saya ...

Saya menggunakan beberapa paket coklat ... mungkin file yang sebenarnya diganti namanya selama masa pengembangannya ... dan dependensi dalam paket tidak ....

Semoga ini membantu seseorang di luar sana :)

Maurice CGP Peters
sumber
1

Jika kesalahan "hilang libiconv-2.dll" terjadi saat memulai SourceTree di Windows, berikut ini berhasil untuk saya (Win 8.1):

pergi ke

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

menyalin

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

untuk

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

Satu solusi yang mungkin untuk SourceTree:

   1.Open the "Option" window.
   2.Select "Git".
   3.Than "Use System Git".
   4.And press OK button.
Flayn
sumber
Bekerja untuk saya. Untuk beberapa alasan, SourceTree beralih ke git yang disematkan setelah pembaruan, yang menyebabkan masalah.
starteleport
0

Saya memiliki msysgit di Windows7 tanpa masalah dengan DLL apa pun.

Saya memiliki libiconv2.dll di direktori bin: C:\Path\To\Git\1.7.1\bin

The masalah 419 adalah tentang seseorang yang memasang "lingkungan pengembangan untuk mengkompilasi Git untuk Windows", bukan hanya Git.
Lihat jawaban SO ini untuk perbedaan antara keduanya .

Jadi yang mana yang Anda instal?

  • Git-1.x.x.x...? (seperti ' Git-1.7.0.2-preview20100309.exe'),
  • atau msysGit-netinstall-1.x.x...? (seperti ' msysGit-netinstall-1.7.1-preview20100612.exe').
VonC
sumber
Saya telah menginstal .. Git-1.7.0.2-preview20100309.exe Saya benar-benar menyadari bahwa Issue 419 adalah instal pengembang, tetapi ini adalah satu-satunya hasil pencarian yang dapat saya temukan tentang subjek ini, jadi saya berharap ini dapat memberikan beberapa wawasan. Libconv2.dll saya ada di C: \ Path \ To \ Git \ bin, yang merupakan lokasi penginstalan default.
user413945
@thankyoud: Saya mengerti (dan pertanyaan Anda tampaknya didokumentasikan dengan baik). Hanya berpikir untuk membuat ekstra jelas dalam jawaban saya, agar orang lain dapat melihat perbedaannya. Satu-satunya masalah lain yang saya lihat dengan Git yang mengalami kesulitan untuk dijalankan terkait dengan ACL (seperti masalah pendaftaran dll, atau %TEMP%masalah penulisan). Ada petunjuk di depan itu?
VonC
Entahlah, direktori% temp% sepertinya memiliki akses penuh untuk akun saya saat ini. Apakah git berjalan di bawah akun selain administrator saat Anda melakukan bash? Juga, seperti yang saya sebutkan sebelumnya, ini tidak pernah terjadi pada instalasi Windows 7 lainnya yang telah saya lakukan ... jadi itulah mengapa saya sangat bingung. Artinya, saya tidak pernah perlu mengutak-atik izin file di masa lalu.
user413945
@thankyoud: Aneh. Bagaimana dengan penginstalan "portabel"? (cukup unzip, dan tambahkan cmddirektori ke jalur Anda): apakah itu akan menunjukkan perilaku yang salah?
VonC
@ Thankyoud: apakah ada konflik di PATHWindows7 khusus ini? Apakah Anda melihat kesalahan yang sama dengan 'minimal PATH'? Yaitu"C:\Path\To\Got\cmd;C:\Windows\system32;C:\Windows;C:\Windows\Syste m32\Wbem"
VonC
0

Saya awalnya mencoba menyelesaikan masalah ini dengan menyalin dll seperti yang disebutkan di sini tetapi segera mengalami masalah lain. Bagi saya solusi sebenarnya adalah mengatur jalur di file .bashrc saya untuk msys untuk memprioritaskan binari msys.

Buka shell msys dan baris berikut di ~ / .bashrc:

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

Judah Menter
sumber
0

Saya telah diganggu dengan masalah ini, untuk memperbaiki masalah ini, saya menghapus tortoisegit dan msysgit, lalu saya menginstal ulang "Git-1.8.1.2-preview20130201".

dengan melakukan ini, ini memperbaiki masalah saya dan saya tidak dapat menggunakan poshgit.

AdamWhite
sumber
0

Dalam kasus saya, saya menggunakan chocolatey (chocolatey.org) untuk menginstal git.

Saya harus menyalin libconv-2.dlluntuk C:\ProgramData\chocolatey\binmembuatnya berfungsi. Saya tidak yakin apakah menyalin file ke C:\Program Files (x86)\Git\libexec\git-corejuga perlu, seperti yang saya lakukan pertama kali.

Luke Chavers
sumber
0

Saya menggunakan GitHub Desktop Version dan mengalami masalah yang sama, saya mengubah default shell dengan Setting -> Options ---> Default shell dan memeriksa Git bash. Saya memulai "Open Git shell" dan menjalankan perintah "git pull", ini memperbaiki masalah. Ini berhasil dalam kasus saya.

Mundroid
sumber
0

Salin semua .dlls dari:

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

untuk:

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

Chris Halcrow
sumber
0

Saya memiliki masalah yang sama, saya menggunakan Windows 10 dan sangat mudah untuk menyelesaikan masalah ini.

Unduh file dll dari:

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

ekstrak atau tempelkan langsung ke folder mingw, biasanya di drive C jika Anda telah menginstalnya menggunakan opsi default. Semoga membantu.

Samriddhi Verma
sumber
0

Coba perintah berikut:

sudo rm -rf /Library/Developer/CommandLineTools 

dan pasang alat pengembang

Samolazov Roman
sumber
-1

Saya harus berurusan dengan pesan kesalahan yang sama saat mencoba mengkonfigurasi meanio, di mana git merupakan prasyaratnya (kesalahan khusus saya adalah: prasyarat tidak ditemukan: git).
Perbaikan yang saya temukan memerlukan penyalinan libiconv2.dll dari

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

untuk

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

Kemudian saya harus membuat beberapa penyesuaian pada Variabel Lingkungan sistem windows (Klik kanan komputer, pergi ke properti, klik "Pengaturan Sistem Lanjutan" pada bilah vertikal kiri, pilih variabel lingkungan) Setelah di Variabel Lingkungan, lihat di kotak Variabel Sistem. Temukan

PATH

Variabel dan tambahkan tiga referensi baru:

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

Dengan cara ini semua file git yang diperlukan dapat diakses di seluruh jalur sistem.

Semoga ini membantu!

deusofnull.dll
sumber