Yeni öğrenmeye başladığım Ruby programlama dili ile basit bir UDP sunucu/istemci çifti yazmaya çalışıyorum.
İstemciden sunucuya büyük bir dosyayı ardışık düzende paketler halinde (pipelining) göndereceğim. Paketlerde bozulma olup olmadığını anlayabilmek için ayrıca ilgili paketin sağlamasını da (MD5) göndermem gerekiyor. Bunu Ruby’nin ‘bindata’ paketini (gem) kullanarak yapmayı düşünüyorum (pack/unpack ile uğraşmaktan daha basit görünüyor).
sudo gem install bindata
komutuyla kurulum yapmak istediğimde şuna benzer bir hata aldım:
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
İnternette biraz arama yaptıktan sonra bunun rubygems.org altyapısındaki bir değişiklikten kaynaklandığını söyleyen ve bununla ilgili uzunca bir açıklama da içeren bir sayfa buldum.
Lafı daha fazla uzatmadan, sorunu nasıl çözdüğümü anlatayım:
- Şu komutla rubygem sürümümüzü öğreniyoruz:
gem --version
-
RubyGems’in Github sayfasındaki Releases kısmından kendi RubyGems sürümümüze uygun en güncel rubygems-update-X.Y.Z.gem paketini indiriyoruz. (X.Y.Z kısmı makinenizde kurulu RubyGems sürümüyle uyumlu olacak. Ben burada 2.2.3 sürümüne göre anlatacağım.)
-
Komut satırında (ya da Uçbirimde) dosyayı indirdiğimiz konuma gittikten sonra şu komutla güncelleme paketini kuruyoruz:
gem install --local rubygems-update-2.2.3.gem
- Ve şu komutla da güncelleme işlemini gerçekleştiriyoruz:
update_rubygems --no-ri --no-rdoc
Artık
gem --version
komutu, yeni kurduğunuz sürümü vermeli. Eğer her şey yolunda gittiyse,
gem uninstall rubygems-update -x
komutuyla rubygems-update paketini kaldırabiliriz.