Apt nasıl-6

Ubuntu Türkiye Wiki sitesinden
Gezinti kısmına atla Arama kısmına atla
Korumalı sayfa.png

Bu sayfa değişiklik koruması altındadır.

Nedeni: :Bu sayfa önemli bilgiler içermektedir. Değişikliklerin uzaman kişilerce yapılması daha uygundur. Eğer bir değişiklik yapılması gerektiğini düşünüyorsanız lütfen bir yönetici ile iletişime geçin
Bu koruma işlemi Sayfa koruma politikası uyarınca işleme konulmuştur.


Bölüm 6 - Kaynak paketlerle çalışma

6.1 Kaynak paketleri indirme

Özgür yazılım dünyasında kaynak kodlar üzerinde çalışma, hata bulma ve düzeltme oldukça yaygındır. Bunu yapabilmek için programın kaynak kodlarını indirmeniz gereklidir. APT sistemi, dağıtım içerisinde yer alan paketlerin kaynak kodlarını, .deb paketi oluşturulabilmesi için yapılan değişiklikleri de içerecek şekilde indirmenizi sağlayacak fonksiyonlara sahiptir.

Debian kaynak paketlerinin kullanılmasının gerektiği diğer bir durum ise, belirli bir paketin unstable dağıtımdaki versiyonunu stable dağıtım için yeniden hazırlamak istediğiniz durumdur. Bir paketi stable dağıtım için oluşturduğunuzda bağımlılıklar da stable dağıtıma göre düzenlenir.

Bunun için /etc/apt/sources.list dosyanızda ilgili deb-src satırlarının bulunması gereklidir. Ayrıntı için bkz. /etc/apt/sources.list dosyası, Kısım 2.1.

Bir kaynak paketi indirmek için aşağıdaki komutu kullanınız:


$ apt-get source paket_adı

Bu komut üç dosyanın indirilmesini sağlayacaktır: bir .orig.tar.gz, bir .dsc ve bir de .diff.gz. Eğer paket Debian'a özgü ise, son iki dosya indirilmez ve dosya adı büyük olasılıkla orig ön-ekini içermez.

.dsc dosyası dpkg-source tarafından kaynak paketi paket_adı-versiyon dizini altına açmak için kullanılır. İndirilen her bir debian kaynak paketi açıldıktan sonra, debian adında bir dizin içerir. Bu dizinde .deb paketini oluşturmak için yapılan tüm değişiklikler bulunmaktadır.

Kaynak paket indirildikten hemen sonra .deb paketinin oluşturulmasını istiyorsanız auto-build seçeneği işinize yarayacaktır. Bunun için komutu -b anahtarı ile aşağıdaki gibi kullanmalısınız:


$ apt-get -b source paket_adı

Eğer indirdikten hemen sonra yerine daha ileriki zamanlarda .deb paketini oluşturmak isterseniz aşağıdaki komutla bunu yapabilirsiniz:


$ dpkg-buildpackage -rfakeroot -uc -b

Bu komutu kaynak paketin açıldığı dizin içerisindeyken çalıştırmalısınız. İşlem sonunda üretilen paketi aşağıdaki gibi sisteminize kurabilirsiniz:


# dpkg -i paket.deb

apt-get'in source fonksiyonu ile diğerleri arasında birtakım farklar bulunmaktadır. Burada paketin indirilebilmesi için root kullanıcısı olunmasına gerek yoktur, indirilen paketler o an bulunulan dizin içerisine açılırlar.

6.2 Kaynak paketleri derlemek için gerekli paketler

Doğal olarak derleyeceğiniz programın ihtiyaç duyduğu kütüphanelerin sisteminizde bulunması zorunludur. Tüm kaynak paketler debian/control dosyalarında 'Build-Depends:' adlı bir alana sahiptir, bu alanda paketin kaynak koddan derlenebilmesi için ihtiyaç duyduğu paketler belirtilir.

APT bu paketleri kolayca indirmek ve kurmak için gerekli fonksiyona sahiptir. apt-get build-dep paket_adı komutu ile derlemek istediğiniz paketin Build-Depends alanında belirtilen paketlerin sisteminize kurulması sağlanır.

# apt-get build-dep gmc

Reading Package Lists... Done
     
Building Dependency Tree... Done
     
The following NEW packages will be installed:
       
comerr-dev e2fslibs-dev gdk-imlib-dev imlib-progs libgnome-dev libgnorba-dev
      
libgpmg1-dev 
     
0 packages upgraded, 7 newly installed, 0 to remove and 1  not upgraded.
     
Need to get 1069kB of archives. After unpacking 3514kB will be used.
     
Do you want to continue? [Y/n]

Burada gmc paketinin kaynak halinden derlenebilmesi için gerekli paketler sisteme kurulmaktadır. Bu komutun kaynak paketi indirmediğini unutmayın, kaynak paketi apt-get source ile ayrıca indirmelisiniz.

Eğer amacınız belirli bir kaynak paketi derleyebilmek için gereken paketlerin listesini almak ise bunun için apt-cache show türevi bir komut kullanılır, bkz. Paketler hakkında bilgi toplama, Bölüm 5.


# apt-cache showsrc paket_adı


içindekiler önceki 1 2 3 4 5 6 7 8 9 10 sonraki