Bir süredir fırsat buldukça uğraştığım iş nihayet mutlu sonla tamamlandı. farklı bir bilgisayarda 32 bit Linux’ta doğrudan çalışan e-imza cihazını; 64 bit Ubuntu (aslında Kubuntu) yüklü olan bilgisayarımda bir türlü çalıştıramamıştım. Bugün itibarıyla çalıştı. Detaylar aşağıda:
Bu yazıda bahsedilen sistemler aşağıda kısaca verilmiştir:
- Kart okuyucu: ACS 38T USB – Beyaz
- Kart: AKİS Akıllı kart
- Kart okuyucu sürücüsü: Ubuntu doğrudan tanıyor.
- Kart sürücüsü: KamuSM sitesinden indirebileceğiniz, sürücü. Ben Ubuntu 12.04 için (başka sürümü yoktu).deb biçiminde sunulan 64-bitlik 1.6 sürümünü kullandım. Yazının yazıldığı tarih itibarıyla indirme adresi şöyle idi: http://www.akiskart.com.tr/dosyalar/akis_1.6_amd64.deb
- İşletim sistemi: Kubuntu 14.10 64 bit
- Java sürümü: openjdk-7
- Firefox java eklentisi: icedtea-plugin
Kurulum
AKİS (Akıllı İşletim Sistemi) sürücüsünü indirip kurmaya kalktığınızda, bağımlılık kontrolü yapıyor ve sistemde eksik paket varsa kurulması gerektiğini belirtiyor. Mevcut akis’in desteklediği java sürümü openjdk-6 ve openjdk-7 sadece. Güncel sürüm olan 8 ile malesef kurulmadı. Bağımlıklıkları ve akis’i öncelikle kurmalısınız. Burada sorun çıkmıyor zaten.
Akis kurulduktan sonra, çalışıp çalışmadığını akia komutu ile test edebilirsiniz. Bir java penceresi açacak ve kart okuyucu cihazını falan gösterecektir. Bu uygulama üzerinden PIN numaranızı girerek, kart içeriğindeki bilgileri görebilir veya PIN numaranızı değiştirebilirsiniz.
Buraya kadar sorun yaşarsanız, önce kart okuyucunun doğru tanınıp tanınmadığını kontrol edebilirsiniz. Bunu yapmak için önce tail -f /var/log/syslog komutunu yazıp sonra USB cihazı bilgisayara bağlarsanız, akan mesajlardan USB donanımın durumu ile ilgili bilgi alabilirsiniz. USB cihazda sorun yoksa, yazılımsal gereksinimleri güzden geçirin. Bağımlılık paketleri sistemde yüklü bile olsa, bozulmuş olabilir. Kaldırıp yeniden kurmak işe yarayabilir.
Tarayıcı Üzerinden E-imza Kullanımı
E-imza cihazımızı EBYS (ya da diğer web tabanlı sistemler) ile kullanabilmek için, tarayıcı üzerinde çalıştıramak zorundayız. Java’nın her bişeyden nem kapması sonucunda Java tabanlı uygulamalardan nefret eder hale geldim. Uygulamanın istediği spesific Java sürümünü sağlamazsanız kıllık yapıyor. Her uygulama da farklı Java sürümlerini isteyebiliyor. Birden fazla Java sürümünü birbirine değdirmeden çalıştırabilmek için biraz cambazlık yapmak gerekiyor.
Neyse efendim, konuya döneyim. Ubuntu depolarında hazır gelen Chromium web tarayıcısı ile Java kullanılamıyor(1). Chromium web tarayıcısı, Google’ın Chrome web tarayıcısı aslında. Açık kaynak kodlu olduğu için, aynı tarayıcı, bir çok farklı isimde piyasada görülebiliyor. Javanın kendisi Mozilla Firefox’a yönlendiriyor. Linux’ta Java destekleyen tarayıcı olarak tek alternatif, Firefox.
Firefox’ta Java kullanabilmek için, Java eklentisinin kurulması lazım. Malesef –Java’nın doğru dürüst destek vermemesi yüzünden– Linux’ta bu da kolay değil. Sağolsun birileri Ubuntu deposuna ilgili eklentiyi koymuş. icedtea-plugin isimli paketin görevi, Firefox içerisinde Java çalıştırılmasını sağlamak. Çok güzel ancak sorun da tam burada çıkıyor. Aşağıda çözümü var.
Ubuntu Deposundaki Hatalı icedtea Paketi ve Çözümü
Malesef bir bug(2) nedeniyle uzun süredir boşuna uğraşmışım. apt-get ile depodan bu paketi kurmaya kalktığımızda, paketin bağımlılığı olan icedtea-netx paketini kurmaya çalışırken hata veriyor. Hangi Java sürümüyle, hangi yapılandırma ile denersem deniyeyim, kuramadım paketi. Sonra 1.5.1 sürümünde bug olduğunu okudum. Çözümü ise ilgili paketleri depodan değil, sağlam sürümü (1.5) indirip elle kurmak.
Bug altında çözümü veren mesaj: https://bugs.launchpad.net/ubuntu/+source/icedtea-web/+bug/1385478/comments/6
Üstte adresini verdiğim çözüm mesajında belirtilen 3 tane dosyayı indirip, dpkg ile kurmak gerekiyor özetle. Tabii önceden depodan kurduklarınız varsa, işe önce bunları temizlemekle başlamak gerekiyor.
İlgili paketler başarılı ile kuruldu ise Firefox’u açıp adres satırına about:plugins yazarak icedtea eklentisi hakkında bilgileri görebiliyor olmanız lazım. Burada da sorun yoksa; denemek için kamusm üzerinde ya daturkiye.gov.tr sitesine e-imza ile giriş yapabilirsiniz.
Paketlerin Depodan Güncellenmesini Engelleme
Eski sürümü kurduğumuz için, her sistem güncellemesinde bu paketleri yükseltmek isteyecektir. Bu da yine java eklentisinin çalışmaz hale gelmesine sebep olacaktır. Ubuntu’da herhangi bir paketin otomatik güncellenmesini engellemek için, apt-mark hold <paket_ismi> komutu kullanabilir.
Bir paketin yeniden otomatik güncellenmesini aktif etmek için apt-mark unhold <paket_ismi> komutu kullanılabilir.
apt-mark showhold komutu ile güncellenmemek üzere işaretlenmiş paketleri görebilirsiniz. Örnek:
Kaynaklar:
(1): https://java.com/tr/download/faq/chrome.xml
Chrome sürümü 35’ten itibaren NPAPI (Netscape Eklentisi API) desteği Linux platformundan kaldırıldı. Daha fazla bilgi için bkz. Chrome ve NPAPI (blog.chromium.org). Linux üzerinde Java için önerilen tarayıcı Firefox’tur.
(2) https://bugs.launchpad.net/ubuntu/+source/icedtea-web/+bug/1385478