APT Pinning
From Lapis Wiki
Bu makale NASIL bölümü serisinin bir parçasıdır
|
| MasaÜstü • Donanım • Ağ • 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
- Apt Pinning Wiki Başlığı, Konu Ile Ilgili Fikirlerinizi paylaşmak için
- Lapis Forum Debian Başlığı, Debian Hakkında Soru ve Sorunlarınız İçin
Dış Linkler
- Apt Pinning, (Bu makalenin belli başlıklarının kaynağını sağlayan sayfadır.)
