Debian Gnu/Linux Üzerinde Apt-Pinning İşlemleri
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.serdaraytekin.com/docs/os/debian/debian-apt-pinning.html adresinden ulaşabilirsiniz. Apt-Pinning Nedir ? Apt-pinning sisteminizde aynı anda stable/testing/unstable/experimental depolarına ulaşarak, karışık (melez) sistem kurulabilmesine, sistemin herhangibir sürümden var olan başka bir üst sürümüne upgrade edilebilmesini (stable'dan testing'e veya testing'den unstable'a geçiş gibi) veya tam tersi olarak sistemin downgrade edilebilmesinden tutunda herhangi bir yazılımın belli bir versiyonunun sürekli olarak sistemde kalabilmesine olanak veren gelişmiş bir özellikdir. Şimdi bu ifadeleri örneklerle pekiştirelim; Apt-pinning için kullanacağımız konfigürasyon dosyaları, /etc/apt/sources.list, /etc/apt/preferences ve /etc/apt/apt.conf dur. Karışık (Melez) Sistem Kurulumu : /etc/apt/preferences dosyasına aşağıdaki tanımları ekliyoruz. (Bu dosya daha önce sistemimizde oluşturulmamışsa oluşturuyoruz)
Package: * Package:
* Package:
* Package:
*
Şimdi /etc/apt/apt.conf dosyamızı düzenleyelim;
APT::Default-Release
"stable";
APT::Cache-Limit "134217728"; Satırı 128 Mb'lık cache bellek limitini işaret eder. Şayet sistemimizde yeterli cache bellek değerini ayarlamaz isek, /etc/apt/sources.list dosyamızda stable/testing/unstable/experimental depolarını belirtip, apt-get update ile index oluşturmaya çalıştığımızda;
şeklinde bir hata mesajı alabiliriz. Bu durumda cache limiti yetersiz demektir. Bunu artırmak gerekir. Biz yukarıda bunun için 128 Mb'lık bir tanım belirttik bu yeterli olacaktır. Yinede yukarıdaki hata mesajını alıyorsanız, bu değeri artırabilirsiniz. Bu ilişkin hesaplama; 128 Mb = 128 * 1024 * 1024 = 134217728 şeklindedir. APT::Default-Release "stable"; Satırı ise, ön tanımlı sürümün stable olarak belirlendiğini ifade eder. Siz testing'i ön tanımlı kullanacaksanız bu kısımda stable yerine testing yazabilirsiniz. Bu durumda dikkat etmeniz gereken bir diğer nokta ise, /etc/apt/preferences dosyasındaki priority (öncelik) değerleri olacaktır. /etc/apt/preferecences dosyasında yine testing ile stable sürümün priority (öncelik) değerlerini yer değiştirebilirsiniz. Biz yukarıdaki örnekte, 1. önceliği stable depoya , 2. önceliği testing deposuna, 3. önceliği unstable deposuna ve 4. önceliği experimental deposuna verdik. Yeri gelmişken priortiy değerleri ile ilgili biraz daha detaya girebiliriz sanırım. Priority (Öncelik) Değerleri : Priority değeri belirtilmediği zaman ön tanımlı değeri olan 989 olarak ayarlanır.
NOT : Bu kısımlarla ilgili olarak, halen muallakta kalan kısımlar varsa, dokümanın sonundaki senoryo örneklerinde belirtilen tanımlamara göz atabilirsiniz. Ayrıca apt-pinning dökümanında ilgili kısma (http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.tr.html#s-pin) bakmanızı öneririm. Şimdi /etc/apt/sources.list dosyamıza kullanacağımız depolarımızın adreslerini belirtelim.
#Stable Depolar deb http://ftp.tr.debian.org/debian
stable main contrib non-free deb-src
http://ftp.tr.debian.org/debian stable main contrib non-free deb http://ftp.tr.debian.org/debian-security stable/updates main contrib non-free
deb http://ftp.tr.debian.org/debian
testing main contrib non-free deb-src
http://ftp.tr.debian.org/debian testing main contrib non-free deb http://ftp.tr.debian.org/debian-security testing/updates main contrib non-free #Unstable Depoları deb http://ftp.tr.debian.org/debian
unstable main contrib non-free deb-src
http://ftp.tr.debian.org/debian unstable main contrib non-free #Experimental Depoları deb http://ftp.tr.debian.org/debian
experimental main contrib non-free
ile index'imizi oluşturalım. Evet artık öncelik değerlerimizi, cache miktarımızı ve depo adreslerimizi belirtip index güncellemimizde yaptığımıza göre karışık sistem kurmaya başlayabiliriz :) Paketlerin Yüklenmesi : Yukarıda ön tanımlı olarak stable bir sistemi işaret ettiğimiz için, apt-get install <paket_ismi> ile herhangi bir paket kurmak istediğimiz zaman paket stable depodan indirip, kurulacaktır. Şayet biz başka bir depodan paket kurmak istiyorsak,
veya
ifadelerinden herhangi biri ile paketimizi kurmayı deneyebiliriz. Peki Paket Her Zaman Sorunsuzca Kurulur mu? Kurmak istediğimiz paket sistemimize hemen kurulmayabilir, aşağıdaki örnekteki gibi, kurmak istediğimizde bağımlılık sorunlarından dolayı kurulmayıp, işlemi kesebilir. Stable bir sistemde aşağıdaki şekilde hdparm dosyasını testing deposundan alıp kurmasını isteyelim, NOT: /etc/apt/preferecences dosyamızın içeriği yukarıdaki şekilde ayarlı. Yani stable:1000, testing:750, unstable:500, experimental:250 öncelik değerlerine haiz)
Şeklinde libc6 bağımlılığı hatası aldık. Bu durumda sistemimizdeki libc6'yıda testing sürümden güncelleyip yeniden hdparm'ı kurmamız icap eder. Fakat kritik öneme haiz makinelerde, libc6 gibi özellikle sistemin kararlılığını etkileyebilecek öneme sahip paketlerin kurulmasında ısrar edilmemesinin gerektiğini düşünüyorum :) Hangi Depoda Hangi Versiyon Var : Diyelimki /etc/apt/sources.list dosyamızda stable/unstable/testing için gerekli depo kaynaklarını belirtip apt-get update ile index güncellememizi yaptık. /etc/apt/apt.conf ve /etc/apt/preferences dosyalarınıda yukarıdaki tanımlara uygun şekilde karışık kurulum için ayarladık. Şimdi A paketini kuracaz ama hangi depoda hangi versiyon var, ona bakmak istiyoruz. Örnek olarak ssh paketinin hangi depoda hangi versiyonu var diye bakalım,
Görüldüğü gibi bizim sistemimizde şu an stable depodaki 3.4p1-1.woody.3 sürümü kurulu durumda. Testing deposunda 3.8.1p1-8 sürümü, unstable depolarında ise yine 3.8.1p1-8 sürümünün mevcut olduğunu görüyoruz. Experimental depoya ait bir bilgi neden yok diye akıllara gelebilir, experimental depo belli amaçlara yönelik kullanımı olan bir depo, bu deponun durumu biraz farklı, o açıdan buradaki listeden bu depoda ssh varmı, varsa sürümü nedir şeklinde bir bilgiye ulaşamıyoruz. Belirli Bir Versiyona Sahip Paketlerin Kurulu Kalmasını Sağlama : Bu konu ile ilgili olarak http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.tr.html#s-pin adresindeki Türkçeye çevirisi Sayın Murat Demirten tarafından yapılan, APT NASIL dökümanındaki ilgili bölümü (3.10) okumanızı öneririm. Konu çok net ve güzel bir şekilde ifade edilmiş zaten. Aynı ifadeleri tekrar yenilemenin israf olacağını düşünüyorum :) Çeşitli Senaryolar : 1. Testing sistemimizi Stable'a Downgrade Edelim ( Kullanım riski size ait : ) ).
komutu ile önce nelerin downgrad edileceğini hangi işlemlerin yapılacağını görebilirsiniz. Herşey normal, downgrade yapabilirim artık diyorsanız;
ile işlemi başlatabilirsiniz. 2. Unstable olan sistemimizde Experimental Deposundan Paket Kuralım :
Şimdi kurmak istediğimiz paketi kurabiliriz. NOT : Experimental depoda her paket yer almayabilir. Daha kısıtlı sayıda paketi ihtiva eder (Paket listesi için : http://ftp.tr.debian.org/debian/dists/experimental/main/binary-i386/Packages). Experimental depoyu, bazı kritik paketlerin veya bağımlılık sorunları oluşabilecek paketlerin, unstable depoya girmeden önce denendiği bir alan. Bu depodan paket kurmak ne kadar doğrudur, paketler ne kadar güvenlidir buda sizin takdirinize kalmış bir durum tabiki. Günceller versiyonlarla çeşitli denemeler yapmak istiyor, test etmek istiyorsanız tercih edebilirsiniz.
Referanslar : |