Jigdo (Jigsaw Download)

Debian Türkiye sitesinden

Jigdo (Jigsaw Download), özellikle büyük boyuttaki iso dosyalarındaki değişiklikleri minimum dosya transferi ile elde etmeyi amaçlar. Şöyleki; sahip olduğumuz iso dosyasının yeni bir versiyonu anons edildiğinde, yeni versiyonun tümünü indirmek yerine, sadece değişen dosyalarını indirip, bu dosyaları daha önce zaten elimizde bulunan eski versiyon iso dosyası ile birleştirip, ortaya yeni versiyon iso dosyasının çıkmasını sağlar. Yazan : Serdar Aytekin - serdar~aytekin.web.tr Versiyon : 1.0.0 Son Güncellenme Tarihi : 31-10-2004

Giriş :

Belgede yazılanların uygulanıp uygulanmaması tamamen uygulayan kişinin sorumluluğundadır. Belgede bahsedilenlerin uygulanması sonucu ortaya çıkabilecek hertürlü zarardan yazar sorumlu tutulamaz. Belge GNU Özgür Belgeleme Lisansının http://www.gnu.org/copyleft/fdl.html adresinde yer alan -son sürümdeki- lisans içeriğine bağlı kalmak koşulu ile aynen yada kısmen dağıtılabilir, yayınlanabilir.

Bu belgenin son sürümüne;

http://www.debian-tr.org/?q=debian-jigdo veya

http://www.serdaraytekin.com/docs/os/debian/debian-jigdo.html adresinden ulaşabilirsiniz.

Jigdo Nedir ?

Jigdo (Jigsaw Download), özellikle büyük boyuttaki iso dosyalarındaki değişiklikleri minimum dosya transferi ile elde etmeyi amaçlar. Şöyleki; sahip olduğumuz iso dosyasının yeni bir versiyonu anons edildiğinde, yeni versiyonun tümünü indirmek yerine, sadece değişen dosyalarını indirip, bu dosyaları daha önce zaten elimizde bulunan eski versiyon iso dosyası ile birleştirip, ortaya yeni versiyon iso dosyasının çıkmasını sağlar.

Daha net ifade edebilmek için örneklemek gerekirse; diyelimki elimizde 600 Mb'lık bir iso versiyon 1.0 diye anons edilmiş bir iso dosyası var ve bu iso dosyasının 6 ay sonra 1.1 versiyonu anons edildi. Bu iso dosyasının içerisindeki sadece bir kaç paket değiştirilmiş ve yeni versiyon olarak anons edilmiş olabilir. Bu durumda belki bize gerekli olan 1.1 ile değişikliğe uğramış olan bir kaç paket iken, biz 1.1 versiyona sahip olabilmek için çoğu durumda tüm iso dosyasını tekrar indiriyoruz. İşte burada Jigdo'nun bize sağladığı avantajı kullanarak tüm iso dosyasını indirmek yerine, 1.1 versiyonu ile değişikliğe uğramış olan paketleri indirip, elimizdeki eski 1.0 versiyonu ile birleştirerek söz konusu dosyanın 1.1 versiyonuna sahip olmuş oluyoruz.

Tabi bütün bunları yapabilmek için, bize yeni versiyonla birlikte gelen değişiklikleri içeren dosyaların verilmesi gerekir. Debian belli aralıklarla her stable ve testing sürüm için en son değişikliklerin bilgilerini içeren jigdo dosyalarını yayınlar ve mümkün olduğunca tüm cd'yi indirmek yerine jigdo ile kendi iso dosyamızı oluşturmamız konusunda bizi uyarır ve bu konudaki yeterli desteği vermeye çalışır.

Jigdo ile Debian cd'lerini oluşturabilmek için http://www.debian.org/CD/jigdo-cd/ adresinden ulaşabileceğimiz .jigdo ve .template dosyalarını kullanmamız gerekecek.

Hangi Durumlarda İşimize Yarar ?

Özellikle yeterli hızda ve sürekli bir internet erişimine sahip olmayan ev kullanıcıları için önemli işleve sahip bir yöntem. Hem evde hem işyerinde Debian Gnu/Linux kullanıyor olalım. Ayrıca, evimizde yeterli hızda bir internet erişiminin hatta hiçbir şekilde internet erişiminin olmadığını, fakat işyerimizdeki makinemizde yeterli ve sürekli internet erişimimizin olduğu durumu düşünelim.

İşte, böyle bir durumda evdeki makinemizi nasıl güncel tutacağız ? sorusuna verilebilecek cevaplardan birisi Jigdo ile işyerinde son değişiklikleri içeren yeni cd/cdleri oluşturup evdeki makinemizi bu cd/cdler ile güncellemek olabilir. Diğer bir cevap'da evdeki makinemizin güncel olabilmesi için gerekli olan dosyaları bulup, işyerindeki makinemiz vasıtasıyla indirip, daha sonra indirdiğimiz bu paketleri eve herhangibir medya (cd, usb disk vs.) ile getirip yüklemek olabilir ki bu konuyu ele alan "Internet Erişimi Olmayan Debian Makinemizi Güncel Tutabilmek (Offline Apt)" başlıklı belgeye buradan ulaşıp okuyabilirsiniz. Peki paragrafın ilk başında sorduğumuz soruya verilebilecek başka bir cevap yokmu? Elbette var, şayet mevcut ise en son değişiklikleri içeren iso dosyalarının tamamını yine işyerimizdeki veya yeterli hıza sahip herhangi bir yerdeki internet bağlantısını kullanarak indirip bunları cd'ye aktarıp eve götürmek süretiyle güncelleme yapabiliriz ki, bu en pahalı ve zahmetli bir yöntem olsa gerek.

Sonuç olarak, esas çıkış noktası ve amacı, herhangibir şekilde ihtiyaç duyduğumuz Debian Cd imagelerinden birini tamamen indirmek yerine, sadece değişiklik ihtiva eden paketleri indirerek, arzu ettiğimiz cd image'ine çok daha kısa sürede sahip olabilmek olan Jigdo'nun Hız ve Bandwidth gibi önemli kazanımları olabilir.

Şimdi elle tutulur örneklerle olayı pekiştirmeye çalışalım.

Nasıl Kullanılır ?

Nasıl kullanabileceğimizi örnek senaryo ile izah etmeye çalışalım. Diyelimki biz Testing kullanıcıyız, ve http://www.debian.org/CD/jigdo-cd/ adresindeki jigdo dosyalarını kullanarak en son değişiklikleri içeren cd veya cd'leri elde etmek istiyelim. "Jigdo-lite" kullarak bu işlemin konsolda nasıl yapılabileceğine bakalım. İşlemleri X-Window üzerinde "jigdo download tool" 'unu kullanarak daha rahat yapabilirsiniz elbette.

Öncelikle jigdo-file paketinin sistemimizde kurulu olması gerekiyor.

   * apt-get install jigdo-file

Sonra bu paketden çıkan jigdo-lite programını çalıştıralım

   * jigdo-lite

Jigsaw Download "lite" Copyright (C) 2001-2004 | jigdo@ Richard Atterer | atterer.net Getting mirror information from /etc/apt/sources.list


To resume a half-finished download, enter name of .jigdo file. To start a new download, enter URL of .jigdo file. You can also enter several URLs/filenames, separated with spaces, or enumerate in {}, e.g. `http://server/cd-{1_NONUS,2,3}.jigdo' jigdo:

Bize Cd image'i oluşturmak için kullanmak istediğimiz .jigdo dosyasının yerini soracak, Resmi Jigdo dosyalarının yer aldığı http://www.debian.org/CD/jigdo-cd/ adresindeki linklerden bizim için uygun olan .jigdo dosyalarının olduğu bölümü bulup 1. CD'yi oluşturabilmek için gerekli olan linki jigdo-lite programına belirtiyoruz.

Mesela belirttiğimiz link http://cdimage.debian.org/pub/cdimage-testing/cd/jigdo-area/i386/sarge-i386-1.jigdo olsun.

UYARI : İşlemi Testing Sürüm için yaptığımıza dikkat ediniz. Şayet siz Stable sürümü kullanıyorsanız, onunla ilgili dosyaların farklı adresde olacağına dikkat ediniz. Mesela, http://ftp.tr.debian.org/debian-cd/ adresini kontrol edebilirsiniz. http://www.debian.org/CD/jigdo-cd/ adresi sizi doğru şekilde yönlendirecektir.

sarge-i386-1.jigdo dosyasını indirdikten sonra, "Files to scan:" şeklinde bir soru soracak. Burada bizden ilgili cd'yi oluşturabilmek için hangi dosyaları baz alarak karşılaştırma yapmasını istediğimizi belirtmemizi bekliyor. If you already have a previous version of the CD you are downloading, jigdo can re-use files on the old CD that are also present in the new image, and you do not need to download them again. Mount the old CD ROM and enter the path it is mounted under (e.g. `/mnt/cdrom'). Alternatively, just press enter if you want to start downloading the remaining files. Files to scan:

Elimizde eski versiyona ait bir CD varsa ve biz bu cd'deki paketlerin üzerine yeni versiyondaki sadece değişen veya olmayan paketlerin ilave edilip yeni versiyonun oluşmasını istiyorsak, elimizdeki CD'yi kaynak olarak gösterebiliriz.

Mevcut sistemimizdeki dosyaları kullanarak, en son cd'de olması gereken dosyalardan belirttiğimiz kaynakda bulunmayan veya değişikliğe uğramışlarını indirip cd image'ini olşturmasını istiyorsak, kaynak olarak /var/cache/apt/archives/ 'yi belirtebiliriz.

Yukarıdaki açıklamalar ışığında kaynak adresinide belirttikten sonra işleme devam ediyoruz. Şimdi .template dosyasını indirip bu dosyada bulunan fakat bizim belirttiğimiz kaynakta bulunmayan veya değişikliğe uğramış olan dosyaları kontrol edip gerekli olanlarını indirecek. Mevcut dosyaların, olması gereken versiyonunun bulunup bulunmadığını da dosyaların MD5'lerini kontrol ederek karşılaştırma yapıyor.

İşlem sonunda, jigdo template'i tarafından işaret edilen dosyalardan bizim belirttiğimiz kaynakda hali hazırda var olanlarından oluşturulmuş olan "sarge-i386-1.iso.tmp" dosyasını görebiliriz.

Şimdi bizden bu kısım için taramamızı istediğimiz başka bir kaynak varsa onu girmemizi bekler, taramasını istemediğimiz başka bir kaynak yoksa "Enter" ile geçebiliriz.

Bu bölümde de, jigdo template'i tarafından gerekli olan fakat belirttiğimiz kaynakdan temin edilemeyen paketleri indirebilmek için adres istiyor. The jigdo file refers to files stored on Debian mirrors. Please choose a Debian mirror as follows: Either enter a complete URL pointing to a mirror (in the form `ftp://ftp.debian.org/debian/'), or enter any regular expression for searching through the list of mirrors: Try a two-letter country code such as `de', or a country name like `United States', or a server name like `sunsite'. Debian mirror [1]:

Bu kısımda, http://ftp.tr.debian.org/debian/ uygun bir adres olabilir. /etc/apt/sources.list dosyanızda belirttiğiniz apt kaynağına göre size varsayılan bir öneri sunacak zaten. Non-Us-Debian kaynağı içinde yine /etc/apt/sources.list dosyasında belirtilen adresi kullanacaktır.

Dilerseniz, işlemler sonunda "~/.jigdo-lite" dosyasını kontrol edip, daha sonraki işlemlerde varsayılan olarak ayarlanmasını istediğiniz kısımları düzenleyebilirsiniz. Örnek .jigdo-lite dosyası, jigdo='http://cdimage.debian.org/pub/cdimage-testing/cd/jigdo-area/i386/sarge-i386-1.jigdo' debianMirror='http://ftp.tr.debian.org/debian/' nonusMirror='http://ftp.tr.debian.org/debian-non-US/' tmpDir='.' jigdoOpts='--cache jigdo-file-cache.db' wgetOpts='--passive-ftp --dot-style=mega --continue --timeout=30' scanMenu='/var/cache/apt/archives/ '

Bu adreside verdikten sonra gerekli olan dosyalarıda indirip iso dosyamızı oluşturmasını bekleyeceğiz. Bu işlem biraz zaman alabilir :) Successfully created `sarge-i386-1.iso'


Finished! The fact that you got this far is a strong indication that `sarge-i386-1.iso' was generated correctly. I will perform an additional, final check, which you can interrupt safely with Ctrl-C if you do not want to wait.

OK: Checksums match, image is good!

Yukarıdaki şekilde işlemin sorunsuz gerçekleştiği mesajını almışşak, işlem tamamdır.

Artık oluşmuş olan sarge-i386-1.iso dosyasını ister CD ye yazarak istersek bir dizinin içerisine içindeki paketleri açarak kullanabiliriz.

Oluşturulan .iso dosyasını bir dizine açarak kullanabilmek için, önce bir dizin oluşturalım. Uygunluk açısında dizin ismine sarge-i386-cd1 diyebiliriz.

   * mkdir sarge-i386-cd1
   * mount -o loop sarge-i386-1.iso ./sarge-i386-cd1

ile sarge-i386-cd1 dizinine sarge-i386-1.iso dosyasını açmış olduk.

Benzer yöntemle ilgili .jigdo dosyasını belirtmek suretiyle diğer cd image'leride kısa sürede rahatlıkla oluşturulabilir.

Not : Yukarıdaki şekilde iso dosyasının "mount -o loop" komutu ile açılabilmesi için çekirdekte "Loopback device support" 'unun olması gereklidir.

Benzer İşlemleri Jigdo-file ile Yapmak :

Dilerseniz, jigdo-lite yerine jigdo-file ilede aynı iso dosyasını oluşurabilirsiniz. Bu yöntem ile ilgili detalara yer vermemekle birlikte fikir vermesi açısından kısaca değinmek istiyorum.

Bu yöntemde .template ve .jigdo dosyalarını bizim kendimizin indirmesi gerekiyor. Gerekli olan .template ve jigdo dosyalarını indirdikten sonra;

   * jigdo-file make-image -t sarge-i386-1.template -i sarge-i386-1.iso --uri Debian=http://ftp.tr.debian.org/debian/

ile yine http://cdimage.debian.org/pub/cdimage-testing/cd/jigdo-area/i386/jigdotemplates/sarge-i386-1.template adresinden indirdiğimiz sarge-i386-1.template dosyasını ve tarama kaynağı olarakda http://ftp.tr.debian.org/debian/ adresini kullanarak "sarge-i386-1.iso" ismiyle birinci cd'ye ait iso dosyasını oluşturmasını istemiş olduk.

DVD Oluşturmak :

DVD image'lerini aynı yöntemlerle oluşturabilmek için gerekli olan tek şey, DVD için kullanacağınız .template ve .jigdo dosyaları. Bu dosyalarada yine http://cdimage.debian.org/pub/cdimage-testing/dvd/ adresinden ulaşabilirsiniz.

MD5 Kontrolü :

Jigdo ile oluşturduğumuz dosyanın, MD5'inin Debian tarafından sunulan aynı isimli ve aynı tarihli iso dosyası ile aynı olduğuna dikkat ediniz.

Mesela biz yukarıda iso dosyasını oluşturmak için, http://cdimage.debian.org/pub/cdimage-testing/cd/jigdo-area/i386/ adresinden indirdiğimiz dosyanın oluşturulma tarihine kadar olan değişiklikleri ihtiva eden dosyayı oluşturmuş olduk. Aynı tarihde Debian tarafından sunulan http://ftp.acc.umu.se/pub/cd-images/debian-weekly/ adresindeki ilgili iso dosyasının bizim oluşturduğumuz dosya ile aynı olacağına dikkatinizi çekmek istiyorum. Diğer bir deyişle, bizim kullandığımız jigdo dosyaları zaten http://ftp.acc.umu.se/pub/cd-images/debian-weekly/ adresindeki iso'lardan oluşturulmuş template'lerdi. Sizde kendi template'lerinizi oluşturabilirsiniz. Detaylar için http://atterer.net/jigdo/.

Referanslar :

  1. http://atterer.net/jigdo/
  2. http://www.tldp.org/HOWTO/Debian-Jigdo/