Nasıl Debian Paketi Yapılır? (Howto Build Debian Package?)

Benzer belgeler
DBMAIL KURULUMU BELGESI (Howto Install Dbmail) Yazan: Ozgur Karatas

İsmail YENİGÜL. EnderUNIX Çekirdek Takımı Üyesi.

Paketi Açalım Indirmiş olduğunuz paketi tar komutu ile açın: tar xzf nagios version.tar.gz Kullanıcı Gruplarını Oluşturalım Paketi derledikten sonra n

I. Oturum: GNU/LINUX A GİRİŞ

Temel Linux Eğitimi 1., 2. ve 3. Bölümler

Devrim Gündüz. Ali Erdinç Köroğlu

BIND ile DNS Sunucu Kurulumu

Qt ile Bir Ağ Uygulaması

Linux un Temel Bileşenleri. Linux Nedir? Aydın ÜSTÜN (Selçuk Üniversitesi) e-posta:

Debian GNU/Linux'da BootSplash & Grub Temalarının Kurulumu

Linux Dosya Yapısı. Eren BAŞTÜRK.

SquidGuard Kurulumu. Öncelikle gerekli paket temin edilmelidir. adresinden temin edilebilir. Basitçe kurulumu ;

Linux İşletim Sistemi. EnderUnix Çekirdek Takımı Üyesi afsin ~ enderunix.org

Linux ta komutlar hakkında yardım almak için aşağıdaki komutlar kullanılır : - man - info - whatis - apropos

Linux Dosya ve Dizin Yapısı

BİLGİ İŞLEM DERS 1. Yrd Doç Dr. Ferhat ÖZOK MSGSU FİZİK BÖLÜMÜ MSGSU FİZİK BÖLÜMÜ

Özgür Yazılım ve GNU/Linux'a Giriş

Finans Dünyasında Linux ve Özgür Yazılımlar

Linux işletim sistemlerinde dosya hiyerarşisinde en üstte bulunan dizindir. Diğer bütün dizinler kök dizinin altında bulunur.

LyX. İlkay TÜRK ÇAKIR. SANAEM- TAEK HPFBO-Çukurova Üniversitesi

Özgür Yazılım ve Pardus. Erkan Tekman TÜBİTAK UEKAE 7 Aralık 2006

MIRACLE DATA WORKS KURULUM DOKÜMANI

Program Kurulum. Turquaz Muhasebe. İçindekiler

YRD. DOÇ. DR. AGÂH TUĞRUL KORUCU

Açık Kaynak Kodlu Yazılım

Autodesk Revit Architecture 2013 Kurulumu

Paket Yönetimi. chroot ortamını etkinleştirdikten CRUX'ın paket yönetimini kullanabilirsiniz.

08220 Internet Programcılığı II

Autodesk Revit Architecture 2012 Kurulumu

FreeBSD Paket Yönetimi

Linux ve Özgür Yazılım Nedir?

Kaynak Kodlardan Derleme. Turquaz Muhasebe. Versiyon 0.2. Hüseyin Ergün. 26 Mart 2005

LİNUX İŞLETİM SİSTEMİNİN KÖPRÜ MODUNDA ÇALIŞTIRILMASI VE GÜVENLİK DUVARI İŞLEMLERİ

Önyükleyiciler. Ercan Ersoy

Denetim Masası/Programlar/Windows özelliklerini Aç/Kapat

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. 26 Şub Öğr. Gör.

Aşağıda listelenen temel linux komutları bilgisayarınızın komut satırında çalıtırılacaktır.

Mpuantor 2.7 Client Kurulumu

Linux İşletim Sistemleri. Eren BAŞTÜRK.

Squid i Follow X-Forwarded-For headers Yaması İle Patchlemek

EYLÜL 2012 İŞLETİM SİSTEMLERİ. Enformatik Bölümü

OMNET Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü

Turquaz. Açık kodlu muhasebe yazılımı Turquaz Proje Grubu

RPM Hazırlama Sanatı

SUNUCU MİMARİLERİ GİRİŞ LİNUX SİSTEMLERE. Öğr.Gör. Mehmet Can HANAYLI

BSD İşletim Sistemi Ailesi. EnderUnix Çekirdek Takımı Üyesi afsin ~ enderunix.org

BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü

REALTIME LINUX. 3. Linux ve Özgür Yazılım Şenliği Murat Demirten, 16 Mayıs 2004, Ankara

1.Debian. 2.Ubuntu. Şekil 1. Güncel logosu

Tarih: 2 Ağustos 2018 Son versiyon: 1.8. EndNote X9 Windows Multi/Site kurulum talimatları

QT Eğitimi - 4 : İkili Saat (Binary Clock)

Open Source Coding: Python

Bağlantı Kılavuzu. Desteklenen işletim sistemleri. Yazıcıyı Yazılım ve Belgeler CD'sini kullanarak kurma. Bağlantı Kılavuzu

C için tümleşik geliştirme ortamı (IDE) kurulumları

Kazanımlar. Linux nedir? Linux dizin yapısı. Linux kabuğu nedir? Temel kabuk komutları. Bash programlama. Dosya işlemleri. Süreç yönetimi.

Bağlantı Kılavuzu. Yerel olarak bağlanmış bir yazıcıya yönelik Windows talimatları. Yerel yazdırma nedir? Yazılımı CD'yi kullanarak kurma

Özgür Yazılım Nedir?GPL, GNU...

Pardus. S.Çağlar Onur, 21 Aralık Pardus Projesi [TÜBİTAK / UEKAE] Linux Kullanıcıları Derneği

C Konsol ve Komut Satırı

İSTANBUL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ SİSTEM PROGRAMLAMA DERSİ. Öğr.Gör. Mehmet DEMİR

Yum ile Paket Yönetimi

Efe Çiftci Çankaya Üniversitesi Bilgisayar Mühendisliği Bölümü Kasım 2012 CENG 191 Computer Engineering Orientation Özel Sunumu

Ders Tanıtım Sunumu. Database Managegement II. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Bağlantı Kılavuzu. Desteklenen işletim sistemleri. Yazıcıyı Yazılım ve Belgeler CD'sini kullanarak kurma. Bağlantı Kılavuzu

man komut man ls (ls komutu hakkında bilgi verir.) man pwd (pwd komutu hakkında bilgi verir.)

FreeBSD Üzerinde VLAN Kullanımı

e-tartı LTR3 Firmware Upgrade Yazılım Güncelleme Moduler Connection LTR3 Firmware Upgrade / LTR3 Yazılım Güncelleme v1.0.

GNU/Linux'un Tarihi ve Önemi

apt-get update apt-get upgrade aptitude install autoconf automake binutils cpp gcc linux-headers-$(uname -r) make psmisc

C için tümleşik geliştirme ortamı (IDE) kurulumları

20 Dakikada Kimlik Doğrulama Sistemi

Gpl Nedir? Açık Kaynak Kod Nedir?

1 STUNNEL NEDİR? 2 STUNNEL KURULUMU

Compiere Açık kodlu ERP + CRM yazılımı. Hüseyin Ergün Önsel Armağan Serkan Demir

AÇIK KAYNAK İŞLETİM SİSTEMİ KURULUMU MODÜLÜ

VIRTUALIZATION SANALLAŞTIRMA

İşletim Sistemleri; İÇERİK. Yazılım BİLGİ TEKNOLOJİLERİ VE UYGULAMALARI Yazılım Türleri

Microsoft Outlook 2003 Kurulumu

Temel Linux Eğitimi. İçindekiler

Bağlantı Kılavuzu. Yazıcıyı yerel olarak yükleme (Windows) Yerel yazdırma nedir? Yazıcıyı Yazılım ve Belgeler CD'sini kullanarak kurma

AutoCAD 2011 Kurulumu

Pardus Temel Seviye Kullanıcı Eğitimi. Sürüm Ağustos 2012 Pardus K Fatih Akıllı Tahta sürümüne göre hazırlanmıştır.

Teknoloji Servisleri; (Technology Services)

Pardus. A. Murat Eren, 25 Mart Pardus Geliştiricisi. Pardus Yenilikleri Sık Sorulan Sorular

Linux Çekirdek Geliştirme Süreci

PiSi ile Paket Yapımı. S.Çağlar Onur

AutoCAD 2009 Kurulumu

CYGWIN KURULUMU ve KULLANIMI

Virtualmin'e Yeni Web Sitesi Host Etmek - Domain Eklemek

Kategori:Allplan->Teknik Destek ve Kurulum->SSS_Allplan_2016_Server_Lisans_Kurulumu

UBNT. UniFi mfi Ububntu. Ubuntu İşletim Sistemi ve UniFi/mFi Yazılımlarının Kurulumu

Linux Dosya Yapısı. Eren BAŞTÜRK.

DRAYTEK VIGOR 3300V. Login(Oturum Açma)

Komut Penceresi ile Çalışmaya Başlamak

Linux Terminal Sunucusu. Afşin Taşkıran

Windows 7 - IIS 7.5 üzerine PHP ve MySQL kurulumu

Efe Çiftci Çankaya Üniversitesi Bilgisayar Mühendisliği Bölümü Kasım 2012 CENG 191 Computer Engineering Orientation Özel Sunumu

Linux Kurulumu (Sürüm 1.52) İçindekiler

3CX Phonesystem Türkçe Anonsları Windows ve Linux İşletim Sistemlerinde Aktif Etme

Transkript:

Nasıl Debian Paketi Yapılır? (Howto Build Debian Package?) Gelişim: Sürüm 1.0 Aralık 2006 Ozgur Karatas <ozgur at ozgurkaratas dot com> Özet: Bu belgede evrensel bir işletim sistemi olan Debian GNU\Linux için nasıl.deb paketi hazırlanacağı anlatılmıştır. Belgenin amacı okuyucuları.deb paketinin oluşumu hakkında bilgilendirmek ve debian paket depolarını zenginleştirmeye teşvik etmektir. Telif Hakkı: Bu belgenin; Nasıl Debian Paketi Yapılır? 1.0 sürümünün telif hakkı Ozgur Karatas'a aittir. Bu belgeyi, Free Software Foundation tarafından yayınlanmış bulunan GNU Özgür Belgeleme Lisansının 1.1 ya da daha sonraki sürümünün koşullarına bağlı kalarak kopyalayabilir, dağıtabilir ve/veya değiştirebilirsiniz. Linux, Linus Torvalds adına kayıtlı bir ticarî isimdir. Başlarken: Debian bilgisayarınız için özgür bir işletim sistemidir. Bir işletim sistemi bilgisayarınızın çalışmasını sağlayan bir dizi temel program ve araçtan oluşmuş bir yazılım topluluğudur. Debian Linux çekirdeğini (işletim sisteminin çekirdeği) kullanır, ancak temel işletim sistemi araçlarının çoğu GNU projesinden gelmektedir; bu yüzden GNU/Linux olarak adlandırılmıştır. Debian GNU/Linux salt bir işletim sisteminden daha fazlasını sağlar. Paket depoalarında 15490 paket önceden derlenmiş ve kuruluma hazır olarak gelmektedir. APT Nedir? Debian işletim sistemini diğer linux dağıtımlarından ayıran ve popüler kılan araçlardan birisi APT'dir. Açılımı Advanced Package Tool'dur. APT'nin amacı Debian kullanıcılarının hayatını kolaylaştırmak ve sistemin yönetiminin daha iyi, anlaşılır şekilde yapılabilmesini sağlamaktır. APT; Debian geliştiricileri tarafından, Debian projesi için geliştirilmiştir. Önce.tar.gz vardı. Kullanıcılar GNU/Linux sistemlerinde kullandıkları her programı derlemek zorundaydılar. Debian geliştirimi sırasında, kurulu paketlerin yönetimini sağlayacak bir sistemin zorunluluğu hemen görüldü. Bu amaçla geliştirilen sisteme dpkg adı verildi. Sonuçta GNU/Linux dünyası, RedHat'in kendi paket yönetim sistemini geliştirmesinden biraz önce, dpkg ile tanıştı. Hemen ardından GNU/Linux sisteminin geliştiricilerinin kafasında yeni bir ikilem oluştu. Paketlerin hızlı, pratik ve verimli bir yöntemle kurulabilmesini, paket bağımlılıkları yönetimi ve paket güncellemeleri sırasında konfigürasyon dosyalarının güncellenmesini sağlayacak bir araca ihtiyaç vardı. Yine Debian projesi kapsamında ilk ürün ortaya çıktı, APT (Advanced Packaging Tool). Apt daha sonra Connectiva tarafından rpm paketler ile kullanılmak üzere port edildi ve bazı dağıtımlar tarafından da kullanılmaya başlandı.

Aptitude Nedir? Aptitude kabiliyet anlamına gelmektedir. Apt için kullanılan birçok komut aynı şekilde aptitude için de geçerlidir. man aptitude komutu ile hakkında detaylı bilgi alınabilir. 1. Gerekli Paketlerin Kurulumu: Bir debian paketi hazırlamak için bazı programlara ihtiyaç vardır. Öncelikle sisteminizde bu paketlerin kurulu olduğundan emin olun. Kurulu değil ise aşağıdaki komutla gerekli programları debian depolarından çekerek kurabilirsiniz. aptitude install build essential binutils fakeroot lintian debhelper dh make devscripts 2. Paket Seçimi: Bir program için debian paketi (.deb) oluşturmadan önce birkaç noktaya dikkat etmelisiniz. Hazırladığınız paketin debian depolarında olup olmadığını kontrol edin. apt cache search paket adı Paketleyeceğiniz programın ne tür bir lisansa sahip olduğunu kontrol edin. Genel olarak GNU\GPL lisansına sahip olması gerekmektedir. Programın sistem için bir güvenlik problemi oluşturmadığından emin olun. Programın yazarı ile bağlantı kurun ve debian depolarına girmesi için debian geliştiricilerine bilgi verin. Genellikle debian devel@lists.debian.org mail listesinden temas kurabilirsiniz. 3. Paketimizi hazırlamaya başlayalım: Öncelikle kafanızın karışmaması için home dizininiz altında yeni bir dizin oluşturun. root@ozgur:/home/ozgur# cd /home/ozgur/ root@ozgur:/home/ozgur# mkdir package root@ozgur:/home/ozgur# cd package/ Ardından.deb paketini hazırlayacağınız programın kaynak kodunu bu dizin altında açın. root@ozgur:/home/ozgur/package# ls rsyslog 1.12.2.tar.gz root@ozgur:/home/ozgur/package# tar zxvf rsyslog 1.12.2.tar.gz root@ozgur:/home/ozgur/package# cd rsyslog 1.12.2 Genellikle tüm programların kaynak kodu ile birlikte INSTALL ve README dosyaları gelmektedir. Siz programın ne olduğunu, nasıl çalıştığını bilseniz de bu dosyaları okumak için biraz zaman ayırmanız yararınıza olacaktır. Bir program./configure make ve make install komutları ile sisteminize kurulabilir. Fakat./configure seçeneği için çeşitli parametreler vardır. Bilgi edinmek için./configure help komutunu kullanabilirsiniz.

4. Geliştirici Bilgileri: Programınızın.deb paketini oluşturmadan önce paket ismine ve sürüm numarasına dikkat ediniz. Ayrıca paket oluştururken bazı paketleyici bilgilerine de ihtiyaç duyulmaktadır. Bunun aşağıdaki komutlar ile bilgilerinizi export etmelisiniz. export DEBEMAIL="ozgur@ozgurkaratas.com" export DEBFULLNAME="Ozgur Karatas" Ve bu adımdan sonra sihirli komutumuz olan dh_make komutunu kullanıyoruz. root@ozgur:/home/ozgur/package/rsyslog 1.12.2# dh_make Type of package: single binary, multiple binary, library, kernel module or cdbs? [s/m/l/k/b] dh_make komutundan sonra sizden yukarıdaki gibi bazı bilgiler istenecektir. Burada paketinizin tipini seçip enter tuşuna bastıktan sonra aşağıdaki gibi bir çıktı karşınıza gelecektir. Bilgiler onaylıyorsanız enter tuşuna basınız. Maintainer name : Ozgur Karatas Email Address : ozgur@ozgurkaratas.com Date : Thu, 7 Dec 2006 15:40:48 +0200 Package Name : rsyslog Version : 1.12.2 License : blank Type of Package : Single Hit <enter> to confirm: Bu adımdan sonra bir üst dizinde.orig uzantılı bir dizin oluşacaktır. root@ozgur:/home/ozgur/package# ls rsyslog 1.12.2 rsyslog 1.12.2.orig rsyslog 1.12.2.tar.gz Ayrıca bulunduğunuz dizinde debian isminde yeni bir dizin de oluşacaktır ve program ile ilgili tüm debian paket bilgileri bu dizin altındaki dosyalarda tutulmaktadır. root@ozgur:/home/ozgur/package/rsyslog 1.12.2# cd debian/ root@ozgur:/home/ozgur/package/rsyslog 1.12.2/debian# ls changelog cron.d.ex emacsen remove.ex manpage.sgml.ex postrm.ex rsyslog default.ex compat dirs emacsen startup.ex manpage.xml.ex preinst.ex rsyslog.doc base.ex control docs init.d.ex menu.ex prerm.ex rules copyright emacsen install.ex manpage.1.ex postinst.ex README.Debian watch.ex root@ozgur:/home/ozgur/package/rsyslog 1.12.2/debian#

5. Paket ile ilgili Debian Dosyaları: Dilerseniz yeni oluşan debian/ dizini altındaki dosyaların ne işe yaradığını beraber öğrenelim. control dosyası: Paket ile ilgili çeşitli bilgileri içerir. içeriği aşağıdaki gibidir. root@ozgur:/home/ozgur/package/rsyslog 1.12.2/debian# cat control Source: rsyslog Section: main Priority: optional Maintainer: Ozgur Karatas <ozgur@ozgurkaratas.com> Build Depends: debhelper (>= 5) Standards Version: 3.7.2 Package: rsyslog Architecture: any Depends: ${shlibs:depends}, ${misc:depends} Description: <insert up to 60 chars description> <insert long description, indented with spaces> Source satırı: Programınızın adını belirteceğiniz satırdır. Section satırı: Programınızın lisansına göre hangi bölüme ait olduğunu belirleyen satırdır. Maintainer satırı: Paketi hazırlayan kişi bilgilerini içeren satırdır. Build Depends satırı: Bağımlılıkların belirlendiği satırdır. Depends satırı: Bu satır oldukça önemlidir. Paketinizin bağımlılıklarını bu değerle belirlersiniz. Description satırı: Paket hakkında bilgi girebileceğiniz satırdır. copyright dosyası: Bu dosya ise programın lisansı hakkında bilgi içermektedir ve default içeriği ise aşağıdaki gibidir. root@ozgur:/home/ozgur/package/rsyslog 1.12.2/debian# cat copyright This package was debianized by Ozgur Karatas <ozgur@ozgurkaratas.com> on Thu, 7 Dec 2006 15:40:48 +0200. It was downloaded from <fill in http/ftp site> Upstream Author: <put author(s) name and email here> Copyright: <put the year(s) of the copyright, and the names of the copyright holder(s) here> License: <Put the license of the package here> The Debian packaging is (C) 2006, Ozgur Karatas <ozgur@ozgurkaratas.com> and is licensed under the GPL, see `/usr/share/common licenses/gpl'.

changelog dosyası: Bu dosya ise programınızın seyir defteri yol haritası gibidir. Programın kaynağından bağımsız birşeyler yaptı iseniz veya bazı bug'ları giderdi iseniz bu dosyanın içerisine ekleyebilirsiniz. rules dosyası: Bir linux programı kaynak koddan kurulurken./configure make ve make install komutları işletilir demiştik. Bu komutlar işletilirken program ile beraber gelen Makefile dosyasına göre kurulum tamamlanır. Rules dosyası da debian paketiniz için Makefile dosyasıdır. Hazırladığınız Debian paketi dpkg ile kurulurken bu dosyadaki bilgilere göre kurulur ve benim programıma göre içeriği aşağıdaki gibidir. root@ozgur:/home/ozgur/package/rsyslog 1.12.2/debian# cat rules #!/usr/bin/make f # * makefile * # Sample debian/rules that uses debhelper. # This file was originally written by Joey Hess and Craig Small. # As a special exception, when this file is copied by dh make into a # dh make output file, you may use that output file without restriction. # This special exception was added by Craig Small in version 0.37 of dh make. # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 CFLAGS = Wall g ifneq (,$(findstring noopt,$(deb_build_options)) CFLAGS += O0 else CFLAGS += O2 endif configure: configure stamp configure stamp: # Add here commands to configure the package. touch configure stamp build: build stamp build stamp: configure stamp # Add here commands to compile the package. $(MAKE)

#docbook to man debian/rsyslog.sgml > rsyslog.1 touch $@ clean: dh_testroot rm f build stamp configure stamp # Add here commands to clean up after the build process. $(MAKE) clean dh_clean install: build dh_testroot dh_clean k dh_installdirs # Add here commands to install the package into debian/rsyslog. $(MAKE) install DESTDIR=$(CURDIR)/debian/rsyslog # Build architecture independent files here. binary indep: build install # We have nothing to do by default. # Build architecture dependent files here. binary arch: build install dh_testroot dh_installchangelogs dh_installdocs dh_installexamples # dh_install # dh_installmenu # dh_installdebconf # dh_installlogrotate # dh_installemacsen # dh_installpam # dh_installmime # dh_python # dh_installinit # dh_installcron # dh_installinfo

dh_installman dh_link dh_strip dh_compress dh_fixperms # dh_perl # dh_makeshlibs dh_installdeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb binary: binary indep binary arch.phony: build clean binary indep binary arch binary install configure Bu dosyadaki parametreleri programınızın nasıl kurulacağını belirlemek için değişebilirsiniz. Bizim için gerekli olan önemli dosyalar bunlardır. Diğer dosyaların üzerinde pek fazla durmayacağız. README.Debian: Beni Oku dosyası conffiles.ex: Eğer program kurulurken eski ayar dosyanızı korumak istiyorsanız bu dosyayı kullanın. cron.d.ex: cron işlemlerini bu dosyadan yapabilirsiniz. dirs: Kurulumla beraber oluşmayan, daha sonra oluşması gereken dizinleri belirlemek için kullanılır. docs: Programınız ile beraber belgeler de varsa bu dosya ile belirleyin. emacsen *.ex: Programınız kurulurken Emacs dosyasına ihtiyaç duyuyorsa bu dosya ile belirleyin. init.d.ex: Sistem açılışında programınız da çalışsın istiyorsanız bu dosyayı düzenleyin. NOT: Bir sonraki adıma geçmek için, eğer ihtiyacınızın olmadığını düşündüğünüz bir dosya varsa bunu silmeli ve dosyaların.ex uzantılarını silmelisiniz. Burada ex (example) örnek dosya olduğunu göstermektedir. 6. Paketimizi inşa edelim: Buraya kadar herşeyi anladı iseniz artık programınızın debian paketini hazırlayabilirsiniz. Bunun için aşağıdaki komutu çalıştırın. dpkg buildpackage rfakeroot Burada dikkat edilmesi gereken bir konu da Maintainer olarak export etmiş olduğunuz mail adresi için GPG oluşturmuş olmanızdır. export DEBEMAIL="ozgur@ozgurkaratas.com" dpkg; paket oluştururken gpg bilgilerinizi arayacaktır. gpg list keys komutu ile listeleyebilirsiniz. Herşey yolunda gitti ise programınız için Debian paketi bir üst dizinde kurulmaya hazırdır. dpkg i paket adı komutu ile paketi kurup, test ederek gözden geçirebilirsiniz.