Debian Ayrıntılı Paket Yapımı

Written by Super User. Posted in Diger

#Yeni bir klasör oluşturduk.
$mkdir deneme

#tar.gz uzantılı arşiv dosyasını indirmek üzere paketimizi belirleyelim.
#Üzerinde çalışmak için wget paketini belirledik, paketimizin tar.gz dosyasını klasörümüz içerisine çekelim.

$cd deneme
$wget http://ftp.gnu.org/gnu/wget/wget-latest.tar.gz

#Açalım
$tar -xvf wget-latest.tar.gz

#Paketimizin çalışabilirlik kontrollerini yapalım
$cd wget-1.12
$./configure
$make

#Sonrasında bu klasörümüzü silip, arşiv dosyamızı tekrar açalım.
$rm -rf wget-1.12/
$tar -xvf wget-latest.tar.gz

#Paketimizde kullanılacak mail adresimizi ve ismimizi girelim.
$export DEBEMAIL=" This email address is being protected from spambots. You need JavaScript enabled to view it. "
$export DEBFULLNAME="Göksel GÜREN"

#Sonrasında tar arşiv dosyamızı açtığımızda oluşan klasörümüze erişiyoruz ve dh-make komutumuzu uyguluyoruz
$cd wget-1.12/
$dh_make -f ../wget-latest.tar.gz

#[s/i/m/l/k/n/b] şeklinde bir menü, bizden paket tipimizi belirtmemizi isteyecek. "s" harfine basıp onaylıyoruz. Aşağıdaki çıktımız gözükecek. Enter'a basıp onaylıyoruz.

Maintainer name : Göksel GÜREN
Email-Address : This email address is being protected from spambots. You need JavaScript enabled to view it.  
Date : Fri, 16 Apr 2010 04:46:33 +0300
Package Name : wget
Version : 1.12
License : blank
Using dpatch : no
Using quilt : no
Type of Package : Single
Hit <enter> to confirm:

#Onayladıktan sonra aynı dizinde debian klasörünün oluşturulduğuna dikkat edelim.
#Ayrıca bir üst dizinde ise wget_1.12.orig.tar.gz dosyamızın oluşturulduğunu gözlemleyelim.
#Sonrasında içerisindeki bazı dosyalarda değişiklik yapmak üzere oluşturulan debian klasörümüze erişelim. İlk üzerinde değişiklik yapmamız gerek dosyamız control dosyası. Açıp inceleyelim.

$cd wget-1.12/debian/
$vim control

#Dosyamızın içeriği

Source: wget
Section: unknown
Priority: extra
Maintainer: Göksel GÜREN < This email address is being protected from spambots. You need JavaScript enabled to view it. >
Build-Depends: debhelper (>= 7), autotools-dev
Standards-Version: 3.8.1
Homepage: <insert the upstream URL, if relevant>

Package: wget
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: <insert up to 60 chars description>
<insert long description, indented with spaces>

#http://docs.comu.edu.tr/howto/maint-guide-tr-s4.1.html linkinden her satırın ne işe yaradığını inceleyelim. Build-Depens satırına kadar değişikliklerimizi yapalım. Değişikliklerimizi yaptıktan sonra control dosyamızı kaydedip çıkalım. Sonrasında Build-Depens satırına yazmamız gereken paketleri bulabilmek için alttaki işlemlerimizi gerçekleştirelim.

$cd ..

$strace -f -o /tmp/log ./configure

# Paket autoconf kullanmıyorsa, ./configure yerine make kullanılsın

> for x in `dpkg -S $(grep open /tmp/log|\
> perl -pe 's!.* open\(\"([^\"]*).*!$1!' |\
> grep "^/"| sort | uniq|\
> grep -v "^\(/tmp\|/dev\|/proc\)" ) 2>/dev/null|\
> cut -f1 -d":"| sort | uniq`; \
> do \
> echo -n "$x (>=" `dpkg -s $x|grep ^Version|cut -f2 -d":"` "), "; \
> done

# Çıktımızdan bağımlılıklarımızı seçelim, control dosyasında belirtilen formatta eklememizi yapalım. 
# Veya, bu uzun çıktıdan seçmek zor gelirse, http://packages.debian.org/lenny/wget adresinden bağımlılıklara göz atıp, control dosyamıza ekleyelim.
# Veya, Google'dan wget dependencies yazıp arattığımızda bu paketin bir çok bağımlılığına ulaşabiliriz. Bunlardan bir tanesini tercih etmek bizim elimizde. 
# Ben http://packages.debian.org/lenny/wget adresinden gördüğüm bağımlılıkları, control dosyası, Build-Depends kısmına ekliyorum.

# Control dosyamızın son görünümüne bakalım, bu satırları değiştirme ile ilgili ayrıntıları lütfen http://docs.comu.edu.tr/howto/maint-guide-tr-s4.1.html kaynağından kontrol edelim.

Source: wget
Section: net
Priority: extra
Maintainer: Göksel GÜREN < This email address is being protected from spambots. You need JavaScript enabled to view it. >
Build-Depends: debhelper (>= 7), autotools-dev, libc6 (>= 2.7-1), libc6.1 (>= 2.7-1), libgcc1 (>= 1:4.3), libssl0.9.8 (>= 0.9.8f-5)
Standards-Version: 3.8.1
Homepage: http://www.gnu.org/software/wget/>

Package: wget
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: GNU Wget is a free software package for retrieving files.
GNU Wget has many features to make retrieving large files or mirroring entire web or FTP sites easy, including:
Can resume aborted downloads, using REST and RANGE
Can use filename wild cards and recursively mirror directories
NLS-based message files for many different languages
Optionally converts absolute links in downloaded documents to relative, so that downloaded documents may link to each other locally
Runs on most UNIX-like operating systems as well as Microsoft Windows
Supports HTTP proxies
Supports HTTP cookies
Supports persistent HTTP connections
Unattended / background operation
Uses local file timestamps to determine whether documents need to be re-downloaded when mirroring
GNU Wget is distributed under the GNU General Public License.


#Sonraki değiştirilmesi gereken dosyalarımız copyright ve changelog dosyalarımızdır. vim ile bu dosyalarımızı açalım ve oluşturulmuş şablonlardaki yönergeleri dikkate alarak değişikliklerimizi yapalım.
#Dipnot : Bu dosyadaki debianized kelimesi hoşuma gitti :)
#Dipnot2 :copyright dosyası için : http://docs.comu.edu.tr/howto/maint-guide-tr-s4.2.html linkini inceleyebiliriz.
#Dipnot3 : dosyası için : http://docs.comu.edu.tr/howto/maint-guide-tr-s4.3.html linkini inceleyebiliriz.
#Yaptığım değişiklikler sonucunda dosyamız bu şekle dönüştü.

$vim copyright

This package was debianized by Göksel GÜREN < This email address is being protected from spambots. You need JavaScript enabled to view it. > on
Fri, 16 Apr 2010 04:46:33 +0300.

It was downloaded from http://ftp.gnu.org/gnu/wget/wget-1.12.tar.gz

Upstream Author(s):

Hrvoje Niksic

Copyright:

Copyright (C) 1994 Hrvoje Niksic < This email address is being protected from spambots. You need JavaScript enabled to view it. >

License:

GPLv3

The Debian packaging is:

Copyright (C) 2010 Göksel GÜREN < This email address is being protected from spambots. You need JavaScript enabled to view it. >

and is licensed under the GPL version 3,
see `/usr/share/common-licenses/GPL-3'.

# Please also look if there are files or directories which have a
# different copyright/license attached and list them here.


$vim changelog

#Changelog dosyamızı değiştirdikten sonra görüntüsü:

wget (1.12-1) unstable; urgency=low

* Initial release
* Paket yapım denemesi

-- Göksel GÜREN < This email address is being protected from spambots. You need JavaScript enabled to view it. > Fri, 16 Apr 2010 04:46:33 +0300


#Son olarak bu paketimizde değiştirmemiz gerekmeyen fakat, çok önemli bir dosya olan rules dosyasını inceliyoruz.
#Toplam control, rules, copyright, changelog olmak üzere 4 dosya ile işlemlerimizi yaptık.
#http://docs.comu.edu.tr/howto/maint-guide-tr-s5.html adresinden diğer dosyaların işlevlerini inceleyebiliriz.
#ex uzantılı dosyalar, examples'lardır.
#Sonrasında arşivi açtığımız klasöre(configure dosyalarının bulunduğu dizin) gidiyoruz ve,

$dpkg-buildpackage -rfakeroot

#komutunu veriyoruz. -d flagını kullanmayışımız ile ilgili bir sıkıntı çıkarsa onuda ekleyip komutumuzu öyle girelim. Yani;

$dpkg-buildpackage -d -rfakeroot

#Ve gördüğümüz alttaki cümleyle paketimizin hazır olduğunu anlıyoruz.
#dpkg-buildpackage: full upload (original source is included)

Dipnot: Yolun daha çok başında olduğumdan dolayı mutlaka hatalı belirttiğim yerler olacaktır. Lütfen hatalı olduğunu düşündüğünüz kısım var ise This email address is being protected from spambots. You need JavaScript enabled to view it. adresine mail atınız veya, yorumunuz ile belirtiniz. Bu konu hakkında çok daha ayrıntılı bilgi edinmek istiyorsanız;

http://www.debian.org/doc/manuals/maint-guide/index.en.html

http://docs.comu.edu.tr/howto/maint-guide-tr.html

linklerinin yeterli olacağını düşünüyorum.