LangTurk | Ruby ile GTK uyumsuzluğu (zlib1.dll, iconv.dll )

Ruby ile GTK uyumsuzluÄŸu (zlib1.dll, iconv.dll )

21 Mart 2007, Çarşamba 5 pm | Yazan : admin | 68 okunma |

| 68 okunma

Bu yazıyı daha önce beğendiğim başka bir blogda yazmıştım, kounuyu kısaca özetlemem gerekirse Ruby yüklenmiş bir bilgisayara, GTK gerektiren her hangi bir uygulama yüklemek isterseniz (GIMP, Dia gibi..) bu yükleme işlemleri esnasında size iki dosyayı tekrar adlandırıp adlandırmamayı isteyip istemediğinizi soracaktır. Bu dosyalar zlib1.dll, iconv.dll dosyalarıdır. Bu dosyaların işlevleri ise aşağıdaki şekilde özetlenebilir.

iconv.dll-> localization

zlib1.dll -> sıkıştırma, dosya arşivleme

Bu yeniden adlandırma işlemi iki programdan birinin düzgün çalışmasını etkileyecektir ve programların hata vermesine neden olacaktır. Bu konuyu çözüme ulaştırmak için iki yol izlenebilir.

Bu çözümlere geçmeden önce sizlere çözümde kullancağımız yöntemlerden biri hakkında kısa bilgi vermek istiyorum.

Eğer bu dosyaları yeniden adlandırmamayı seçer ve uygulamaları çalıştırmak isterseniz GIMP hata verecek, Ruby ise hata vermeden çalışacaktır.

Bu ilginç noktayı açıkladığımda sanırım çözümün nerden geldiğini de hemen anlayacaksınız.

Bunun nedeni GTK , GIMP çalışmaya baÅŸladığında ihtiyaç duyduÄŸu .dll dosyalarını arayacak ancak bu .dll dosyalarını kendiside yüklediÄŸi halde Ruby’nin yükleme klasöründekileri (yeniden adlandırmadıklarımız) kullanacaktır. Bunun nedeni windows’un %PATH% Environment Variables ayarlarından kaynaklanır.

GTK kullanacağı bu .dll dosyalarını ararken C:\ dizinini kök dizin sayarak yukardan aşağıya yani c:\ruby\bin; C:\WINDOWS\system32; ve son olarak C:\Program Files\Common Files\GTK\2.0\bin klasörlerini tarar ve ilk bulduğu dosyaları kullanır, bu tarama sırasına kısaca Windowsda %PATH% Environment Variables denir.

Bunun aksine Ruby bu dosyalar için %PATH% Environment Variables sırasına bakmadan doÄŸrudan c:\ruby\bin klasöründe tarama yapar “Rubynin çalıştırılabilir .exe dosyaları ile bu gerekli dosyalar aynı klasörde olduÄŸu için” ve hata vermez. Bu durumda GTK’nın bulacağı ilk dosya kendi klasöründeki deÄŸil Ruby klasöründeki dosyalar olacaktır.

1.Yol
Burda yapmamız gereken tek ÅŸey GTK’nın %PATH% ortam deÄŸiÅŸkeninini Ruby’nin ortam deÄŸiÅŸkeninin önüne almak, böylece GIMP ya da GTK bu .dll dosyalarını ararken önce kendi dizinine bakacak ve doÄŸru .dll dosyalarını bulacaktır. Ruby içinse bu deÄŸiÅŸkilik her hangi bir soruna neden olmayacaktır.

Ortam değşikeni ya da Environment Variables nasıl değiştirilir hakkında Türkçe kaynağa burdan ulaşabilirsiniz.

2.Yol

EÄŸer bu dosyaları yeniden adlandırırsanız Ruby kendi klasörüne bakacağından bunları bulamayacak ve hata verecektir o zaman bizde C:\Program Files\GTK\bin\ dizininde bulunan bu .dll dosyalarını C:\Progs\ruby\bin\ dizinine kopyalayarak bu sorunu aÅŸabiliriz. Bu çözümü uyarlarken programların .dll’ lerden dolayı deÄŸil, .dll’leri bulamadıkları için hata verdiklerinden yola çıktım. Umarım böyle bir sorununuz olursa bu çözüm iÅŸinize yarayacaktır.

Kolay Gelsin

Prit

Etiketler: , , ,

Bu Yazıyı Paylaşın: Bağcık |Webiket |Oyyla |LinkiBol |Favorri |Tusul |del.icio.us |

İlişkili diğer yazılar



Yorumlarınızı bekliyoruz!