langturk adlı kişiyi Twitter'da takip et langturk adlı kişiyi Twitter'da takip et

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

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

One Response to “Ruby ile GTK uyumsuzluğu (zlib1.dll, iconv.dll )”

  1. Ruby ve GTK+ sorunu - Teknoloji ve Webmaster Platformu Says:

    [...] [...]

Yorumlarınız ve ilgili sorularınız için öncelikle FORUMUNUZU kullanmayı tercih edin, böylece sorularınıza daha hızlı cevap alabilir, katılımınızla nezih bir topluluk oluşturmada yardımcı olabilirsiniz.