APT Pinning

From Lapis Wiki

Jump to: navigation, search
Bu makale NASIL bölümü serisinin bir parçasıdır
MasaÜstü Donanım Dağıtımlar
Tarayıcılar Programlama Linux ve Oyunlar

Konu başlıkları

Giriş

Apt-pinning debian sisteminde kullanmakta olduğunuz dağıtım depolarının yanısıra diğer depoları kullanarak paket yüklemesini gerçekleştirmenizi sağlar. Bu sayede hem mevcut dağıtımınız aynı kalacaktır. Hem de aynı anda kararlı,kararsız ve unstable depolara ulaşarak, melez tabir edilen bir sistem kurulabilmenize imkan vermektedir.

Açıklamalar

Apt Pinning /etc/apt/sources.list içerisindeki depoları kullanır. Burada aktifleştirdiğimiz depolar her update komutu verdiğimizde güncellenecektir. Ancak kullandığımız dağıtım sürümü aynı kalmak kaydıyla aktif olan diğer depolara ulaşım ve paket yükleme imkanı verecektir. Bunun için /etc/apt/sources.list dosyası dışında eğer sistemimizde bulunmuyorsa oluşturacağımız ve kullanacağımız iki tane daha dosya bulunmalıdır. Bunlar /etc/apt/preferences ve /etc/apt/apt.conf dosyalarıdır.

Apt.Conf

Kısaca /etc/apt/preferences dosyasında belirtilen depo önceliklerine göre öntanımlı sistemin ne olduğunun belirtildiği dosyadır.

APT::Default-Release "testing" ;

Yukarıdaki gibi bir ifade girdiğimiz zaman, sistemin öntanımlı sürümünün testing olduğunu ifade etmiş oluruz. Buna göre /etc/apt/preferences dosyasında en üstteki öncelik testing deposuna verilmiş olmalıdır. İkili (testing/unstable) bir /etc/apt/preferences dosyasından örnek vermek gerekirse aşağıdaki gibi testing üstte olacaktır.

Package: *
Pin: release o=Debian,a=testing
Pin-Priority: 900
Package: *
Pin: release o=Debian,a=unstable
Pin-Priority: 300


Önce apt.conf dosyasını editlemek için açarız ve kaydederiz. Ardından izinlerini değiştiririz.

nano /etc/apt/apt.conf
chmod 644 /etc/apt/apt.conf

Apt.Preferences

Önce apt/preferences dosyasını editlemek için açarız ve kaydederiz. Ardından izinlerini değiştiririz.

nano /etc/apt/preferences
chmod 644 /etc/apt/preferences

Stable (Kararlı) Preferences Dosyası

Package: *
Pin: release o=Debian,a=stable
Pin-Priority: 900
Package: *
Pin: release o=Debian,a=testing
Pin-Priority: 400
Package: *
Pin: release o=Debian,a=unstable
Pin-Priority: 300
Package: *
Pin: release o=Debian
Pin-Priority: -1

Buna göre apt.conf dosyanızda belirtilmiş sürüm stable (kararlı) olmalıdır.

APT::Default-Release "stable" ;

Testing Preferences Dosyası

Package: *
Pin: release o=Debian,a=testing
Pin-Priority: 900
Package: *
Pin: release o=Debian,a=unstable
Pin-Priority: 300
Package: *
Pin: release o=Debian
Pin-Priority: -1

Buna göre apt.conf dosyanızda belirtilmiş sürüm testing olmalıdır.

APT::Default-Release "testing" ;


Depo adresleri için , Apt/sources.list bölümü içerisinde belirtilen Debian depolarını dağıtımlara göre kullanabilirsiniz.


Paket Yükleme Nasıl?

Bu aşamadan sonra listenizi update edebilirsiniz. Örneğin unstable depodan bir paket kurmak için aşağıdaki apt-get komutlarını verebilirsiniz.Burada iki farklı komutta verilen çıktılar

apt-get install paketadı/unstable

Yukarıdaki şekilde bir komut verdiğinizde, yüklemek istediğiniz paketi unstabledan çağıracaktır. Ancak paket için gerekli olan bir bağımlılık olduğu takdirde apt/preferences içerisinde belirlediğniz en üst değere sahip depo içerisindeki dağıtıma göre çözmeye çalışacaktır. Örneğin öntanımlı olarak kararlı depo kullanıyorsanız. Bağımlılık gerektiren paketler stable depolar kullanılarak yapılacaktır.

# apt-get install zsh/unstable
Reading Package Lists... Done
Building Dependency Tree... Done
Selected version 4.0.6-7 (Debian:unstable) for zsh
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:
 zsh: Depends: libc6 (>= 2.2.5-13) but 2.2.5-11.1 is to be installed
E: Sorry, broken packages

Görüldüğü üzere unstable depodan yüklenmek istenen zsh paketi için bağımlılıklar öntanımlı depodakilerle uyuşmadığı için paket yükleme gerçekleşemedi.

apt-get -t unstable install paketadı

Eğer komutu yukarıdaki gibi verirsek bu sefer unstable depodan yüklenmek istenen paketin bağımlılığı unstable depo kullanılarak çözülmeye çalışılacaktır.Bu daha olumlu ve çözüm yaratan bir uygulamadır.

# apt-get -t unstable install zsh    
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
 libc6 libc6-dev libc6-pic libdb1-compat locales 
The following NEW packages will be installed:
 libdb1-compat 
5 packages upgraded, 1 newly installed, 0 to remove and 394  not upgraded.
Need to get 11.6MB of archives. After unpacking 606kB will be used.
Do you want to continue? [Y/n]

E: Dynamic MMap ran out of room

Update komutu verdiğinizde yukarıdaki gibi bir hata mı aldınız? Bunun nedeni apt uygulamasının cache boyutunun yeterli olmamasından kaynaklanmaktadır. Genelde /etc/apt/preferences dosyasına üç farklı depo girildiğinde karşınıza çıkabilir. Çözümü için /etc/apt/apt.conf dosyanızda öntanımlı dağıtımı belirttiğiniz satırın hemen altına cache boyutunu ifade edecek bir ibare girmemiz yeterli olacaktr.

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

Hepsi bu kadar.


Linkler

İç Linkler

Dış Linkler

  • Apt Pinning, (Bu makalenin belli başlıklarının kaynağını sağlayan sayfadır.)