13 Eylül 2012 Perşembe

Debian İçin Yansı Seçim Araçları

Debian ve türevi Linux dağıtımlarından birisini kullanıyorsanız kurulum sırasında veya sonrasında yazılım yüklemek için ana depo ve yansıları arasından seçim yapmışsınızdır. Seçilen yansı genel de coğrafi olarak konumunuza en yakın yansı olacaktır. Debian kurulum sırasında öncelikle bulunduğunuz coğrafyadaki yansılar arasından seçim yapmanızı ister ama seçimlerinizi bunlarla sınırlamaz.

Yansı seçiminde bir çok kullanıcı için önemli olan nokta asıl debian sunucularına giren paketlerin en kısa zamanda yansılarda yerini alması ve yansılar ile sistem arasındaki trafiğin olabildiğince hızlı olmasıdır. Bazı durumlarda güncel bir yansıyı hızlı bir sunucuya tercih de edebilirsiniz. Özellikle de sunucu gün aşırı güncellenecek şekilde yapılandırılmış ise. Bu durum tüm yansılar için geçerli olmamakla birlikte karşılaşılabilen bir durumdur. Debian sitesinde kendilerine bildirilen yansıların bir listesi bulunmakla birlikte bu yansıların ne sıklıkla güncellendiği ve hangi dalı – stable/testing/experimental – ve hangi bölümleri – main/contrib/non-free – barındırdıkları bilgisi bulunmamaktadır. Bu nedenle bazı sunucularda sadece stable, bazılarında her üçü, bazılarında ise sadece main ve contrib yer alabilmektedir. Debian yansılarının listesini hazırlayan ekibin bütün yansıların içeriğini kontrol etmesi olanaklı olmadığı içinde yansı seçiminde muhafazakar davranıp ftp.<ülke_kodu>.debian.org yansısını kullanmak veya kurulum sırasında listelenen yansılar arasından rastgele birini seçmek ya da sonradan Debian sitesinde belirtilen yansılardan birisini seçip en iyisini ummak tek çıkar yol olmaktadır. Bu durum bildirilen ve kayıt altına alınan Debian yansılarının sayısı ile karşılaştırıldığında olumsuz bir tablo oluşturmaktadır.

Yansı Seçim Araçları: netselect-apt ve apt-spy

Debian depolarında yansılar arasında seçim yapmak için netselect-apt ve apt-spy araçları bulunmaktadır. Her iki uygulama da Debian yansılarının listesini bilgisayara indirip, sırasıyla listedeki yansıları tarayarak en uygun olanı seçip bir sources.list dosyası oluşturmaktdır. Netselect-apt bu işlemi udp üzerinden yansılara ping atarrak yapmakta ve en kısa yanıt süresine sahip olan yansıyı seçmektedir. Yerel ağ üzerindeki bilgisayarların bir transparan proxy sunucusu üzerinden dışarı çıktıkları durumda netselect-apt seçim yapmamakta ve sonuçta içeriği boş bir dosya oluşturmaktadır. Netselect-apt kullanarak sources.list dosyasını oluşturmak isteyenler aşağıdaki örneği kullanarak sources.list dosyasını oluşturabilir. Debian karalı/test veya karasız sürümleri yerine söz konusu sürümün kod adı örneğin stable için squeeze veya unstable için sid gibi de kullanılabilir.

# netselect-apt [seçenekler] stable|testing|unstable]

Seçenekler olarak ise -n non-free kaynaklarını ekler. -f sadece ftp sunucuları arasından seçim yapar -a mimari amd64,i386,sparc vb belirtir. -o oluşrturulacak olan sources.list dosyasının oluşturulacağı dizini tanımlar. Örneğin /var/tmp/apt/sources.list gibi. Belirtimediği durumda çalıştırıldığı dizinde sources.list dosyasını oluşturur.

# netselect-apt -n -a amd64 -o /var/tmp/apt/sources.list squeeze

Retrieving the list of mirrors from www.debian.org...
--2012-09-13 11:21:21--  http://www.debian.org/mirror/mirrors_full
www.debian.org çözümleniyor... 86.59.118.148, 2001:858:2:2:214:22ff:fe0d:7717
www.debian.org[ 86.59.118.148]:80 bağlanılıyor... bağlantı kuruldu.
HTTP isteği gönderildi, yanıt bekleniyor... 200 OK
Uzunluk:349175 (341K) [text/html]
Saving to: `/tmp/netselect-apt.S825i7'


Yansı listesi indirildikten sonra netselect-apt yansıları belirtilen tercihler doğrultusunda incelemeye başlayarak en kısa yanıt süresi olan yansıyı seçip sources.list dosyasını oluşturacaktır.

Running netselect to choose 1 out of 383 addresses.
The fastest server seems to be:
        http://ftp.de.debian.org/debian/

Writing sources.list.
Done.


Oluşturulan sources.list dosyası da aşağıdaki görüldüğü gibidir.

# Debian packages for stable
deb http://ftp.de.debian.org/debian/ stable main contrib non-free
#Uncomment the deb-src line if you want 'apt-get source'
#to work with most packages.
# deb-src http://ftp.de.debian.org/debian/ stable main contrib non-free

# Security updates for stable
deb http://security.debian.org/ stable/updates main contrib


apt-spy ise netselect-apt farklı olarak ping sürelerini değil sunucu ile istemci arasındaki iletişimin bant genişliğini esas alır. Netselect-apt göre daha “çabuk olan” yansıları seçmenizi sağlar. apt-spy, netselect-apt olduğu gibi Debian sitesinden yansıların listesini indirip sunucuları sizin belirttiğiniz tercihlere göre sources.list dosyası oluşturur. apt-spy aşağıda verilen örnekte gibi kullanarak kendinize uygun yansıyı seçebilirsiniz.

apt-spy kurulumun ardından yansıların listesini indirmeniz gereklidir. Yansıların listesinde gerçekleşen güncellemeleri dikkate almak için güncelleme işlemini düzenli olarak yapmanız gereklidir.

#apt-spy update
Updating...
Grabbing file http://http.us.debian.org/debian/README.mirrors.txt...
Update complete. Exiting.


Güncelleme işleminin ardından kullandığınız sürümü, mimariyi ve bulunduğunu bölgeyi tanımlayıp kaynak odyayı nereye yazdıracağınızı tanımlayıp çalıştırmanız gerekecektir. apt-spy varsayılan dizin olarak oluşturduğu kaynak dosyasını /etc/apt/sources.list.d/apt-spy.list kayıt etmektedir.

# apt-spy -d [sürüm] -a [bölge] -o [sonuç_dosyasının_yeri]

-d sürüm stable, testing, unstable veya doğrudan sürüm kod adı kullanılabilir.

-a Bulunduğunuz coğrafi bölge. Değer olarak Asia, Africa, Europe, Nort-America, Ocenia ve South-America kullanılmalıdır.

-o Oluşturulacak olan dosyanın yazılacağı dizin ve dosya adını belirtmek için kullanılır.

Kararlı sürüm için Avrupa'daki yansıları tarayıp en uygun olanını bulmak için aşağıdaki komut kullanılabilir.

 
#apt-spy -d stable -a Europe -o /var/tmp/apt-spy/sources.list
 


apt-spy yansı listesinden ilgili bölgedeki yansıları seçip bunların bant genişliğine göre sıralayıp sonuç döndürecektir. Aşağıdaki örnek Avrupa'daki yansılar içerisinden seçilen yansıyı barındıran sources.list dosyasıdır.

# sources.list generated by apt-spy v3.1
#
# Generated using:
#
# apt-spy \
# 	-d stable \
# 	-a europe \
# 	-o /var/tmp/apt-spy/sources.list
#
deb ftp://ftp.hu.debian.org/debian/ stable main contrib non-free
deb-src ftp://ftp.hu.debian.org/debian/ stable main contrib non-free
deb http://security.debian.org/ stable/updates main


Eğer Debian depoları yanında debian backports deposunu da kullanıyorsanız netselect-apt ve apt-spy debian yansılarına ait listeyi kullanmakta olduğu için bu depoların yansıları arasından seçim yapmamaktadır. Bu depoları sources.list dosyasına ekleyerek kullanıyorsanız oluşturulan sources.list dosyasını kullanmadan önce gerekli satırları eklemeniz gerekecektir.

http.debian.net Yansı Yönlendiricisi

Debian yansıları arasından netleselect-apt veya apt-spy ile seçim yapıyorsanız, her iki aracın düzenli olarak çalıştırılarak dosyanın güncellenmesi gerekecektir. Bu işlemi tekrarlamak yerine Debian yansısı seçimini, ip adresiniz, coğrafi konumunuz ve güncel yansı adresleri ile asıl sunuculardaki güncellemeleri doğrudan alan “push” mekanizması ile güncellenen yansıları seçen bir araç kullanmak daha uygun olacaktır.

Bu işlem Raphael Geissert tarafından geliştirilen ve yukarıda belirtilen koşulları dikkate alarak istemciyi ilgili yansıya yönelten http://http.debian.net yönlendiricisi ile yapılabilir. http.debian.net kullanabilmek için sources.list dosyasında ilgili satırların düzenlenmesi gereklidir. http.debian.net güvenlik güncellemeleri, volatile deposu dışında stable/testing ve unstable ile eski kararlı sürümün deposu olan debian-archive depolarını desteklemektedir. Dolayısıyla da güvenlik güncellemeleri için ayrıca girdiye gereksinim vardır. Aşağıdaki örnek sources.list dosyasında ilgili düzenlemeyi görebilirsiniz.

Asıl sources.list dosyası

# 

# deb cdrom:[Debian GNU/Linux 6.0.5 _Squeeze_ - Official i386 xfce+lxde-CD Binary-1 20120512-13:45]/ squeeze main

deb http://ftp.tr.debian.org/debian/ squeeze main non-free contrib
deb-src http://ftp.tr.debian.org/debian/ squeeze main non-free contrib

deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free

# squeeze-updates, previously known as 'volatile'
deb http://ftp.tr.debian.org/debian/ squeeze-updates main contrib non-free
deb-src http://ftp.tr.debian.org/debian/ squeeze-updates main contrib non-free

# Debian-backports deposu

deb http://backports.debian.org/debian-backports squeeze-backports main


http.debian.net yansı yönlendiricisinin eklenmesinden sonraki sources.list dosyası

# 

# deb cdrom:[Debian GNU/Linux 6.0.5 _Squeeze_ - Official i386 xfce+lxde-CD Binary-1 20120512-13:45]/ squeeze main

# Debian deposu
deb http://http.debian.net/debian/ squeeze main contrib non-free

# Debian backports yansı
deb http://http.debian.net/debian-backports/ squeeze main

deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free

# squeeze-updates, previously known as 'volatile'
deb http://http.debin.org/debian/ squeeze-updates main contrib non-free
deb-src http://http.debian.org/debian/ squeeze-updates main contrib non-free


http.debian.net yansı yönlendiricisinin kullanılması uluslararası yolculuk yapan dizüstü/netbook bilgisayar kullanıcıları için sürekli olarak yansı seçip sources.list dosyasını değiştirmek durumunda olmayacakları için uygun bir çözüm olmaktadır. Halen http.debian.net kullanılırken bazı problemler ile karşı karşıya kalınabilmektedir. Bunların başında internet erişimini sağlayan servis sağlayıcıların ağ trafiğini üzerindeki kontrollerinden kaynaklı yanlış adreslere yönlendirme sorunları ile bazen http.debian.net yönlendiricisi üzerinde paket bilgilerinin bulunmadığını belirten apt hata mesajları gelmektedir. Ancak Debian testing sürümünde bu sorunlar görece olarak daha az durumdadır. Debian Wheezy kararlı sürüm olarak yayınlandığında bu sorunlar da umarım çözülmüş olur.