Paketler hakkında bilgi toplama

Paketler hakkında bilgi toplamak için APT sisteminin üzerinde çalışan programlar bulunmaktadır. Bu bilgiler sisteme kurulabilen paket listesi, yüklenmiş paketlerin listesi, paketin hangi bölüme ait olduğu, önceliği ve açıklaması vb. olabilir.

Fakat burada amacımız APT ile aynı bilgilere nasıl erişebileceğinizi sizlere anlatmaktır. Mesela, kurmak istediğiniz programın paket adını nasıl öğrenebiliriz?

Bu amaç için birkaç yardımcı araca sahibiz. Önce apt-cache ile başlayalım. Bu program APT sistemi tarafından kendi özel veritabanını yönetmede kullanılır. Şimdi pratik kullanımda uygulanmasına geçelim.

Paket isimlerini keşfetme

Örneğin, eski iyi günleri hatırladınız, Atari 2600 günlerinizi... Ve bir Atari emülator programı kurmak için APT'yi kullanmak istiyorsunuz ancak kurmanız gereken paketin ismini bilmiyorsunuz. Yapmanız gereken:

# apt-cache search atari
atari-fdisk-cross - Partition editor for Atari (running on non-Atari)
circuslinux - The clowns are trying to pop balloons to score points!
madbomber - A Kaboom! clone
tcs - Character set translator.
atari800 - Atari emulator for svgalib/X/curses
stella - Atari 2600 Emulator for X windows
xmess-x - X binaries for Multi-Emulator Super System

Gördüğünüz gibi arama sonucumuzda birkaç paket kısa açıklamalarıyla birlikte listelendi. Herhangi biri hakkında daha ayrıntılı bilgi almak istersek kullanacağımız komut:

# apt-cache show stella
Package: stella
Priority: extra
Section: non-free/otherosfs
Installed-Size: 830
Maintainer: Tom Lear <tom@trap.mtview.ca.us>
Architecture: i386
Version: 1.1-2
Depends: libc6 (>= 2.1), libstdc++2.10, xlib6g (>= 3.3.5-1)
Filename: dists/potato/non-free/binary-i386/otherosfs/stella_1.1-2.deb
Size: 483430
MD5sum: 11b3e86a41a60fa1c4b334dd96c1d4b5
Description: Atari 2600 Emulator for X windows
 Stella is a portable emulator of the old Atari 2600 video-game console
 written in C++.  You can play most Atari 2600 games with it.  The latest
 news, code and binaries for Stella can be found at:
 http://www4.ncsu.edu/~bwmott/2600

Bu defaki ekran çıktısında paket hakkında daha ayrıntılı bilgi var ve bu bilgiler doğrultusunda paketi kurmak isteyip istemediğimize karar verebiliriz. Eğer paket sisteminizde kurulu fakat yeni bir sürümü mevcut ise, her iki sürüm hakkındaki bilgiler listelenecektir.

# apt-cache show lilo
Package: lilo
Priority: important
Section: base
Installed-Size: 271
Maintainer: Russell Coker <russell@coker.com.au>
Architecture: i386
Version: 1:21.7-3
Depends: libc6 (>= 2.2.1-2), debconf (>=0.2.26), logrotate
Suggests: lilo-doc
Conflicts: manpages (<<1.29-3)
Filename: pool/main/l/lilo/lilo_21.7-3_i386.deb
Size: 143052
MD5sum: 63fe29b5317fe34ed8ec3ae955f8270e
Description: LInux LOader - The Classic OS loader can load Linux and others
 This Package contains lilo (the installer) and boot-record-images to
 install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
 .
 You can use Lilo to manage your Master Boot Record (with a simple text screen)
 or call Lilo from other Boot-Loaders to jump-start the Linux kernel.

Package: lilo
Status: install ok installed
Priority: important
Section: base
Installed-Size: 190
Maintainer: Vincent Renardias <vincent@debian.org>
Version: 1:21.4.3-2
Depends: libc6 (>= 2.1.2)
Recommends: mbr
Suggests: lilo-doc
Description: LInux LOader - The Classic OS loader can load Linux and others
 This Package contains lilo (the installer) and boot-record-images to
 install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
 .
 You can use Lilo to manage your Master Boot Record (with a simple text screen)
 or call Lilo from other Boot-Loaders to jump-start the Linux kernel.

Burada ilk sırada yeni sürüme ait bilgiler, ikinci sırada ise zaten sisteminizde kurulu olan sürüme ait bilgiler listelenir. Bir paket hakkında daha genel bilgi edinmek için aşağıdaki komutu kullanabilirsiniz:

# apt-cache showpkg penguin-command
Package: penguin-command
Versions:
1.4.5-1(/var/lib/apt/lists/download.sourceforge.net_debian_dists_unstable_main_binary-i386_Packages)(/var/lib/dpkg/status)

Reverse Depends:
Dependencies:
1.4.5-1 - libc6 (2 2.2.1-2) libpng2 (0 (null)) libsdl-mixer1.1 (2 1.1.0) libsdl1.1 (0 (null)) zlib1g (2 1:1.1.3)
Provides:
1.4.5-1 -
Reverse Provides:

Bir paketin bağımlı olduğu paketlerin listesini almak için:

# apt-cache depends penguin-command
penguin-command
  Depends: libc6
  Depends: libpng2
  Depends: libsdl-mixer1.1
  Depends: libsdl1.1
  Depends: zlib1g

Özetle, aradığımız paket adını bulmak için bir kaç silaha sahibiz.

Paket adlarını bulmak için dpkg kullanma

Paket adını bulmada diğer bir yöntem de o paket tarafından kullanıldığını bildiğiniz bir dosyadan hareket etmektir. Örneğin belirli bir ".h" dosyasını içerdiğini bildiğiniz paketin ismini aşağıdaki gibi bulabilirsiniz:

# dpkg -S stdio.h
libc6-dev: /usr/include/stdio.h
libc6-dev: /usr/include/bits/stdio.h
perl: /usr/lib/perl/5.6.0/CORE/nostdio.h

veya:

# dpkg -S /usr/include/stdio.h
libc6-dev: /usr/include/stdio.h

Eğer sisteminize kurulu bir paketin tam ismini öğrenmek isterseniz aşağıdaki komut işinizi görecektir:

# dpkg -l | grep mozilla
ii  mozilla-browse 0.9.6-7        Mozilla Web Browser

Bu komut paket isimlerini belirli bir uzunluktan sonra kesmektedir. Yukarıdaki örnekte paketin tam ismi mozilla-browser'dır. Bu problemi gidermek için COLUMNS çevresel değişkenini aşağıdaki gibi ayarlamalısınız:

[kov]@[couve] $ COLUMNS=132 dpkg -l | grep mozilla
ii  mozilla-browser             0.9.6-7                     Mozilla Web Browser
- core and browser

veya açıklamasından yola çıkarak paket adını elde edebilirsiniz:

# apt-cache search "Mozilla Web Browser"
mozilla-browser - Mozilla Web Browser

Programları anında kurma

Bir program derliyorsunuz ve aniden bir hata oluştu! Çünkü program sisteminizde olmayan bir .h dosyasına ihtiyaç duyuyor. auto-apt programı sizi bu senaryolardan kurtaracaktır. Gerektiğinde ilgili paketi kurmak isteyip istemediğinizi soracak, derleme işlemini durduracak ve programı çekip kurduktan sonra derleme işleminin devam etmesini sağlayacaktır.

Peki nasıl yapacaksınız:

# auto-apt run komut

Burada komut yerine derleme için kullanacağınız komutu yazmalısınız.

# auto-apt run ./configure

Ardından gerekli paketleri kurmak isteyip istemediğinizi soracak, apt-get'i çağırarak kurulumları otomatik olarak gerçekleştirecektir. Eğer bir X sunucusu üzerinde çalışıyorsanız, varsayılan metin arayüzü grafik bir arayüzle otomatik olarak değiştirilecektir.

auto-apt programı verimli çalışabilmek için kendi özel veritabanını tutar. Bu veritabanının güncel tutulması programın beklenilen davranışı gösterebilmesi açısından önemlidir. Veritabanını güncellemek için auto-apt update, auto-apt updatedb ve auto-apt update-local komutlarını çalıştırmalısınız.

Bir dosyanın hangi pakete ait olduğunu bulma

Bir paketi kurdunuz ancak apt-cache ile nasıl çağıracağınızı bilmiyorsunuz. Fakat programın dosya adını biliyorsunuz, veya paketten çıkan başka herhangi bir dosyanın adını bilmektesiniz. Bu durumda apt-file programı ile paket adını bulabilirsiniz:

$ apt-file search dosya_adı

Bu komut aynı dpkg -S gibi çalışır ancak ayrıca verdiğiniz dosyayı içermesine rağmen sisteminizden sonradan kaldırılmış olan paketleri de listeler. Bu komut ayrıca bir derleme sırasında ihtiyaç duyulan dosyaları içeren paketleri bulmak için de kullanılabilir. Fakat bu tür sorunlar için auto-apt kullanmak daha iyi bir yöntemdir. Detaylar için bkz. Programları anında kurma.

Bir paketin içeriğini aşağıdaki komutla listeleyebilirsiniz:

$ apt-file list paket_adı

apt-file tüm paketler hakkında içerdikleri dosyalara ilişkin kayıtları tutar. Aynı auto-apt'de olduğu gibi bu veritabanının da zamanla güncellenmesi gereklidir:

# apt-file update

Öntanımlı olarak apt-file auto-apt ile aynı kaynağı kullanır, bkz. Programları anında kurma.

Paketlerdeki değişikliklerden haberdar olma

Sisteminize kurulan her paket kendi belge dizini altına (/usr/share/doc/paket_adı) changelog.Debian.gz adlı bir dosya atar. Bu dosyada ilk sürümden son sürüme kadar paket üzerinde yapılan değişiklikler belirtilir. Bu dosyayı zless ile okuyabilirsiniz, ancak tüm paketleri bu şekilde takip etmek epey güç bir uğraştır.

Bu işi otomatik hale getirmek için yardımcı bir araç mevcuttur: apt-listchanges. Programı kullanmak için önce apt-listchanges paketini sisteminize kurmalısınız. Kurulum esnasında Debconf tarafından sorulan soruları istediğiniz gibi yanıtlayabilirsiniz.

İlk soru apt-listchanges'in paketlerdeki değişiklikleri nasıl göstereceğine karar vermeniz gereken kısımdır. Değişikliklerin kendinize elektronik posta olarak iletilmesini seçebilirsiniz, otomatik güncellemelerde bu faydalı olabilir veya bir less gibi bir sayfalama aracı ile güncellemelere devam etmeden önce değişikliklere bir göz atmak isteyebilirsiniz Eğer apt-listchanges'in güncellemeler sırasında otomatik olarak çalışmasını istemiyorsanız none seçeneğini seçin.

apt-listchanges yüklendikten sonra paketler apt ile indirildikten sonra (veya bir CD veya bağlanmış aygıttan alındıktan sonra), paketleri yüklemeden önce bu paketlerde yapılmış değişiklikleri listeleyecektir.