Paketler hakkında bilgi toplamak için APT sisteminin üzerinde çalışan programlar bulunmaktadır.
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.
Ö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 versiyonu mevcut ise, her iki versiyon hakkındaki bilgiler listelenecektir. Örnek:
# 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 versiyona ait bilgiler, ikinci sırada ise zaten sisteminizde kurulu olan versiyona 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 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
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.
Auto-apt programı efektif olarak ç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 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.
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, Kısım 5.3.
Sisteminize kurulan her paket kendi dokümantasyon dizini altına (/usr/share/doc/paket_adı) changelog.Debian.gz adlı bir dosya atar. Bu dosyada ilk versiyondan son versiyona 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.
"Should apt-listchanges be automatically run by apt?" seçeneği oldukça yararlıdır, bu seçenek ile paket kurulum ve güncellemelerinde, paketteki değişiklikleri görebilirsiniz. "Should apt-listchanges prompt for confirmation after displaying changes?" seçeneği ile değişiklikleri okuduktan sonra programın kurulumu işlemine onay istenmesini sağlayabilirsiniz. Eğer devam etmek istemediğinizi söylerseniz apt-listchanges bir hata kodu döndürür ve apt-get işlemi sonlandırır.
APT NASIL
1.8.3 - Aralık 2002kov@debian.org
murat@debian.org