"Debian Apt-Pinning" sayfasının sürümleri arasındaki fark

Debian Türkiye sitesinden

(Karışık (Melez) Sistem Kurulumu :)
(Apt-Pinning Nedir ?)
 
(Aynı kullanıcıdan 4 ara revizyon gösterilmiyor)
16. satır: 16. satır:
 
==Apt-Pinning Nedir ?==
 
==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.
+
Apt-pinning sisteminizde aynı anda kararlı(stable)/testing/kararsız(unstable)/deneysel(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 özelliktir.
  
 
Şimdi bu ifadeleri örneklerle pekiştirelim;
 
Şimdi bu ifadeleri örneklerle pekiştirelim;
70. satır: 70. satır:
 
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.
 
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 (Öncelik) Değerleri :===
  
 
Priority değeri belirtilmediği zaman ön tanımlı değeri olan 989 olarak ayarlanır.
 
Priority değeri belirtilmediği zaman ön tanımlı değeri olan 989 olarak ayarlanır.
  
*  priority < 0 : Siz paketi özellikle bu depodan kur demedikçe, bu depodan "apt-get upgrade" veya "apt-get dist-upgrade" ile bir paket kurulmaz (Örn: Pin-Priority: -1)
+
'''priority < 0 :''' Siz paketi özellikle bu depodan kur demedikçe, bu depodan "apt-get upgrade" veya "apt-get dist-upgrade" ile bir paket kurulmaz (Örn: Pin-Priority: -1)
  
* 100 > priority > 0 : Yine aynı şekilde, paketi özellikle bu depodan kur demedikçe, bu depodan "apt-get upgrade" veya "apt-get dist-upgrade" ile paket kurulmaz.
+
* '''100 > priority > 0 :''' Yine aynı şekilde, paketi özellikle bu depodan kur demedikçe, bu depodan "apt-get upgrade" veya "apt-get dist-upgrade" ile paket kurulmaz.
  
* 1001 > priority > 99 : Bir depodan "apt-get upgrade" veya "apt-get dist-upgrade" ile paket kurulabilmesi için öncelik değerinin ez az 100 olarak belirtilmesi gerekir.
+
*''' 1001 > priority > 99 :''' Bir depodan "apt-get upgrade" veya "apt-get dist-upgrade" ile paket kurulabilmesi için öncelik değerinin ez az 100 olarak belirtilmesi gerekir.
  
* priority > 1000 : Bu kısımdaki değerler özellikle downgrade veya upgrade işlemleri için kullanılır. Öncelik değeri 1001 olarak ayarlanmış bir depo, paketlerin o depodan kurulmaya zorlanmasına işaret eder.
+
* '''priority > 1000 :''' Bu kısımdaki değerler özellikle downgrade veya upgrade işlemleri için kullanılır. Öncelik değeri 1001 olarak ayarlanmış bir depo, paketlerin o depodan kurulmaya zorlanmasına işaret eder.
  
 
'''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.
 
'''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.
86. satır: 86. satır:
 
Şimdi '''/etc/apt/sources.list''' dosyamıza kullanacağımız depolarımızın adreslerini belirtelim.
 
Şimdi '''/etc/apt/sources.list''' dosyamıza kullanacağımız depolarımızın adreslerini belirtelim.
  
* pico /etc/apt/sources.list
+
pico /etc/apt/sources.list
  
 
* '''Stable Depolar'''
 
* '''Stable Depolar'''
  
deb http://ftp.tr.debian.org/debian stable main contrib non-free
+
deb http://ftp.tr.debian.org/debian stable main contrib non-free
deb http://ftp.tr.debian.org/debian-non-US stable/non-US main contrib non-free
+
deb http://ftp.tr.debian.org/debian-non-US stable/non-US main contrib non-free
  
deb-src 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-src http://ftp.tr.debian.org/debian-non-US stable/non-US main contrib non-free
+
deb-src http://ftp.tr.debian.org/debian-non-US stable/non-US 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-security stable/updates main contrib non-free
  
  
 
*'''Testing Depoları'''
 
*'''Testing Depoları'''
  
deb http://ftp.tr.debian.org/debian testing main contrib non-free
+
deb http://ftp.tr.debian.org/debian testing main contrib non-free
deb http://ftp.tr.debian.org/debian-non-US testing/non-US main contrib non-free
+
deb http://ftp.tr.debian.org/debian-non-US testing/non-US main contrib non-free
  
deb-src 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-src http://ftp.tr.debian.org/debian-non-US testing/non-US main contrib non-free
+
deb-src http://ftp.tr.debian.org/debian-non-US testing/non-US main contrib non-free
  
deb http://ftp.tr.debian.org/debian-security testing/updates main contrib non-free
+
deb http://ftp.tr.debian.org/debian-security testing/updates main contrib non-free
  
 
* '''Unstable Depoları'''
 
* '''Unstable Depoları'''
  
deb http://ftp.tr.debian.org/debian unstable main contrib non-free
+
deb http://ftp.tr.debian.org/debian unstable main contrib non-free
deb http://ftp.tr.debian.org/debian-non-US unstable/non-US main contrib non-free
+
deb http://ftp.tr.debian.org/debian-non-US unstable/non-US main contrib non-free
  
deb-src http://ftp.tr.debian.org/debian unstable main contrib non-free
+
deb-src http://ftp.tr.debian.org/debian unstable main contrib non-free
deb-src http://ftp.tr.debian.org/debian-non-US unstable/non-US main contrib non-free
+
deb-src http://ftp.tr.debian.org/debian-non-US unstable/non-US main contrib non-free
  
 
* '''Experimental Depoları'''
 
* '''Experimental Depoları'''
  
deb http://ftp.tr.debian.org/debian experimental main contrib non-free
+
deb http://ftp.tr.debian.org/debian experimental main contrib non-free
deb-src http://ftp.tr.debian.org/debian/ experimental main contrib non-free
+
deb-src http://ftp.tr.debian.org/debian/ experimental main contrib non-free
  
 
* '''apt-get update'''
 
* '''apt-get update'''
130. satır: 130. satır:
 
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,
 
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,
  
    * apt-get install <paket_ismi>/depo_ismi (Örn : apt-get install hdparm/unstable)
+
apt-get install <paket_ismi>/depo_ismi (Örn : apt-get install hdparm/unstable)
  
 
veya
 
veya
  
    * apt-get -t install <depo_ismi> <paket_ismi> (Örn : apt-get -t install unstable hdparm)
+
apt-get -t install <depo_ismi> <paket_ismi> (Örn : apt-get -t install unstable hdparm)
  
 
ifadelerinden herhangi biri ile paketimizi kurmayı deneyebiliriz.
 
ifadelerinden herhangi biri ile paketimizi kurmayı deneyebiliriz.
146. satır: 146. satır:
 
'''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)
 
'''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)
  
    * apt-get install hdparm/testing
+
apt-get install hdparm/testing
  
  
195. satır: 195. satır:
 
==Çeşitli Senaryolar :==
 
==Çeşitli Senaryolar :==
  
1. Testing sistemimizi Stable'a Downgrade Edelim ( Kullanım riski size ait : ) ).
+
'''1.''' Testing sistemimizi Stable'a Downgrade Edelim ( Kullanım riski size ait : ) ).
  
    * /etc/apt/sources.list dosyamızda sadece stable sürüm için gerekli depo adreslerini bırakalım.
+
* '''/etc/apt/sources.list''' dosyamızda sadece stable sürüm için gerekli depo adreslerini bırakalım.
    * /etc/apt/preferences dosyamızda sadece aşağıdaki tanımın olması yeterlidir.
+
* '''/etc/apt/preferences''' dosyamızda sadece aşağıdaki tanımın olması yeterlidir.
  
 
       Package: *
 
       Package: *
 
       Pin: release o=Debian,a=stable
 
       Pin: release o=Debian,a=stable
 
       Pin-Priority: 1001
 
       Pin-Priority: 1001
     * /etc/apt/apt.conf içerisinde sadece aşağıdaki tanım yer alsın.
+
      
 +
* /etc/apt/apt.conf içerisinde sadece aşağıdaki tanım yer alsın.
  
 
       DPkg
 
       DPkg
209. satır: 210. satır:
 
       Options {"--force-overwrite";"--force-downgrade";}
 
       Options {"--force-overwrite";"--force-downgrade";}
 
       }
 
       }
     * apt-get update && apt-get -s dist-upgrade
+
      
 +
 
 +
apt-get update && apt-get -s dist-upgrade
  
 
komutu ile önce nelerin downgrad edileceğini hangi işlemlerin yapılacağını görebilirsiniz. Herşey normal, downgrade yapabilirim artık diyorsanız;
 
komutu ile önce nelerin downgrad edileceğini hangi işlemlerin yapılacağını görebilirsiniz. Herşey normal, downgrade yapabilirim artık diyorsanız;
  
    * apt-get dist-upgrade
+
apt-get dist-upgrade
  
 
ile işlemi başlatabilirsiniz.
 
ile işlemi başlatabilirsiniz.
  
2. Unstable olan sistemimizde Experimental Deposundan Paket Kuralım :
+
'''2.''' Unstable olan sistemimizde Experimental Deposundan Paket Kuralım :
  
    * /etc/apt/sources.list dosyamızda experimental deposuna ait kaynakların yer aldığına emin olalım
+
* /etc/apt/sources.list dosyamızda experimental deposuna ait kaynakların yer aldığına emin olalım
  
    * /etc/apt/apt.conf' da cache değerini yeterli miktarda ayarlayalım.
+
* /etc/apt/apt.conf' da cache değerini yeterli miktarda ayarlayalım.
  
    * /etc/apt/preferences dosyamız aşağıdaki gibi olabilir.
+
* /etc/apt/preferences dosyamız aşağıdaki gibi olabilir.
  
 
       Package: *
 
       Package: *
232. satır: 235. satır:
 
       Pin: release o=Debian,a=experimental
 
       Pin: release o=Debian,a=experimental
 
       Pin-Priority: 500
 
       Pin-Priority: 500
     * apt-get update
+
      
 +
 
 +
apt-get update
  
 
Şimdi kurmak istediğimiz paketi kurabiliriz.
 
Şimdi kurmak istediğimiz paketi kurabiliriz.
238. satır: 243. satır:
 
'''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.
 
'''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.
  
    * apt-get install ssh/experimental (ssh paketini experimental depodan kurabilmek için)
+
apt-get install ssh/experimental (ssh paketini experimental depodan kurabilmek için)
  
 
Referanslar :
 
Referanslar :

19:54, 29 Mayıs 2008 itibarı ile sayfanın şu anki hâli

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. Yazan : Serdar Aytekin - serdar~aytekin.web.tr Versiyon : 1.0.0 Son Güncellenme Tarihi : 06-09-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-apt-pinning veya

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

Apt-Pinning Nedir ?

Apt-pinning sisteminizde aynı anda kararlı(stable)/testing/kararsız(unstable)/deneysel(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 özelliktir.

Ş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)

   pico /etc/apt/preferences

Package: * Pin: release o=Debian,a=stable Pin-Priority: 1000

Package: * Pin: release o=Debian,a=testing Pin-Priority: 750

Package: * Pin: release o=Debian,a=unstable Pin-Priority: 500

Package: * Pin: release o=Debian,a=experimental Pin-Priority: 250

chmod 644 /etc/apt/preferences

Şimdi /etc/apt/apt.conf dosyamızı düzenleyelim;

   pico /etc/apt/apt.conf

APT::Default-Release "stable"; APT::Cache-Limit "134217728";

   chmod 644 /etc/apt/apt.conf

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;

   Reading Package Lists... Error!
   E: Dynamic MMap ran out of room

ş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.

  • priority < 0 : Siz paketi özellikle bu depodan kur demedikçe, bu depodan "apt-get upgrade" veya "apt-get dist-upgrade" ile bir paket kurulmaz (Örn: Pin-Priority: -1)
  • 100 > priority > 0 : Yine aynı şekilde, paketi özellikle bu depodan kur demedikçe, bu depodan "apt-get upgrade" veya "apt-get dist-upgrade" ile paket kurulmaz.
  • 1001 > priority > 99 : Bir depodan "apt-get upgrade" veya "apt-get dist-upgrade" ile paket kurulabilmesi için öncelik değerinin ez az 100 olarak belirtilmesi gerekir.
  • priority > 1000 : Bu kısımdaki değerler özellikle downgrade veya upgrade işlemleri için kullanılır. Öncelik değeri 1001 olarak ayarlanmış bir depo, paketlerin o depodan kurulmaya zorlanmasına işaret eder.

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.

pico /etc/apt/sources.list
  • Stable Depolar
deb http://ftp.tr.debian.org/debian stable main contrib non-free
deb http://ftp.tr.debian.org/debian-non-US stable/non-US main contrib non-free
deb-src http://ftp.tr.debian.org/debian stable main contrib non-free
deb-src http://ftp.tr.debian.org/debian-non-US stable/non-US main contrib non-free
deb http://ftp.tr.debian.org/debian-security stable/updates main contrib non-free


  • Testing Depoları
deb http://ftp.tr.debian.org/debian testing main contrib non-free
deb http://ftp.tr.debian.org/debian-non-US testing/non-US main contrib non-free
deb-src http://ftp.tr.debian.org/debian testing main contrib non-free
deb-src http://ftp.tr.debian.org/debian-non-US testing/non-US 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 http://ftp.tr.debian.org/debian-non-US unstable/non-US main contrib non-free
deb-src http://ftp.tr.debian.org/debian unstable main contrib non-free
deb-src http://ftp.tr.debian.org/debian-non-US unstable/non-US main contrib non-free
  • Experimental Depoları
deb http://ftp.tr.debian.org/debian experimental main contrib non-free
deb-src http://ftp.tr.debian.org/debian/ experimental main contrib non-free
  • apt-get update

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,

apt-get install <paket_ismi>/depo_ismi (Örn : apt-get install hdparm/unstable)

veya

apt-get -t install <depo_ismi> <paket_ismi> (Örn : apt-get -t install unstable hdparm)

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)

apt-get install hdparm/testing


   Reading Package Lists... Done
   Building Dependency Tree... Done
   Selected version 5.6-0.1 (Debian:testing) for hdparm
   Some packages could not be installed. This may mean that you have
   requested an impossible situation or if you are using the unstable
   distribution that some required packages have not yet been created
   or been moved out of Incoming.
   Since you only requested a single operation it is extremely likely that
   the package is simply not installable and a bug report against
   that package should be filed.
   The following information may help to resolve the situation:
   Sorry, but the following packages have unmet dependencies:
   hdparm: Depends: libc6 (>= 2.3.2.ds1-4) but 2.2.5-11.5 is to be installed
   E: Sorry, broken packages

Ş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,

   * apt-show-versions -a | grep ssh


   ssh 1:3.4p1-1.woody.3 install ok installed
   ssh 1:3.4p1-1.woody.3 stable
   ssh 1:3.8.1p1-8 testing
   ssh 1:3.8.1p1-8 unstable
   ssh/stable uptodate 1:3.4p1-1.woody.3

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 : ) ).

  • /etc/apt/sources.list dosyamızda sadece stable sürüm için gerekli depo adreslerini bırakalım.
  • /etc/apt/preferences dosyamızda sadece aşağıdaki tanımın olması yeterlidir.
     Package: *
     Pin: release o=Debian,a=stable
     Pin-Priority: 1001
   
  • /etc/apt/apt.conf içerisinde sadece aşağıdaki tanım yer alsın.
     DPkg
     {
     Options {"--force-overwrite";"--force-downgrade";}
     }
   
apt-get update && apt-get -s dist-upgrade

komutu ile önce nelerin downgrad edileceğini hangi işlemlerin yapılacağını görebilirsiniz. Herşey normal, downgrade yapabilirim artık diyorsanız;

apt-get dist-upgrade

ile işlemi başlatabilirsiniz.

2. Unstable olan sistemimizde Experimental Deposundan Paket Kuralım :

  • /etc/apt/sources.list dosyamızda experimental deposuna ait kaynakların yer aldığına emin olalım
  • /etc/apt/apt.conf' da cache değerini yeterli miktarda ayarlayalım.
  • /etc/apt/preferences dosyamız aşağıdaki gibi olabilir.
     Package: *
     Pin: release o=Debian,a=unstable
     Pin-Priority: 1000
     Package: *
     Pin: release o=Debian,a=experimental
     Pin-Priority: 500
   
apt-get update

Ş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.

apt-get install ssh/experimental (ssh paketini experimental depodan kurabilmek için)

Referanslar :

   * http://www.debian.org/doc/manuals/apt-howto/index.tr.html
   * http://jaqque.sbih.org/kplug/apt-pinning.html
   * http://www.argon.org/~roderick/apt-pinning.html

Kaynak