(→=Priority (Öncelik) Değerleri :) |
(→Çeşitli Senaryolar :) |
||
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/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 | ||
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 | |
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/apt.conf' da cache değerini yeterli miktarda ayarlayalım. | |
− | + | * /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 | ||
Ş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) | |
Referanslar : | Referanslar : |
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
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 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.
/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 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.
pico /etc/apt/sources.list
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
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
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
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
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 :)
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.
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 :)
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 :)
1. Testing sistemimizi Stable'a Downgrade Edelim ( Kullanım riski size ait : ) ).
Package: * Pin: release o=Debian,a=stable Pin-Priority: 1001
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 :
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