Paket uygulamların derlenmiş halini ya da kaynak kodlarını, kofigürasyon dosyalarını, resimlerini ve kurulum komutları da dahil olmak üzere tüm dosyalarını içeren arşivlenmiş bir dosyadır. Uygulama paketleri Windows işletim sistemlerinde .exe; Ubuntu, Pardus gibi Debian tabanlı işletimlerinde .deb, Fedora, CentOS gibi RedHat tabanlı işletim sistemlerinde .rpm uzantılıdır.
Bu yazıda debian tabanlı işletim sistemlerinde dpkg-dep paketi ile paket oluşturacağız.
1- Gerekli paketler indirilir.
sudo apt install dkpg-deb
2- Uygulama hazırlanır
Uygulamanız için bir dizin oluşturulur. Uygulama dizininde DEBIAN adında bir dizin daha oluşturulur. Bu dizin içerisinde paket ile ilgili dosyalar ve kurulum betikleri olacak.
mkdir ilk-uygulamam
Bulunduğu kullanıcı ile terminal ekranından aldığı girdiği ekrana yazdıran, diyorki adında bashscirpt betiği yazılır.
echo """
#!/bin/bash
girdi=\$1
echo \$USER' diyor ki: '\$girdi
""" > diyorki
2- Uygulama dosyalarının gerekli dizinlere taşınması
Paket yüklenirken sıkıştırılmış dosya içerisindekileri kök dizininde açar. Yani uygulama dizini içerisine oluşturacağınız hiyerarşi, ğaketinizi yüklediğiniz işletim sisteminin kök dizininde de oluşacaktır. Örneğin uygulamanızı yükledikten sonra betiğinizin /opt
altında olmasını istiyorsanız, betiğinizi ilk-uygulamam/opt/
içerisine taşımanız gerekmektedir.
Linux işletim sistemlerinde çalıştırılabilir uygulamarın bulunduğu dizinler vardır. Uygulamanızı bu dizinlerden birisine taşıyıp çalıştırılabilir bayrağı verirseniz, ls ya da cd komutları gibi kullanabilir hale getirirsiniz. Betiğimizi bunlardan birisine çıkaracak çekilde taşıyalım.
echo $PATH
mkdir -p ilk-uygulamam/usr/local/bin/
cp diyorki ilk-uygulamam/usr/local/bin/
3- Paket için gerekli dizin ve klasörler oluşturulur
mkdir ilk-uygulamam/DEBIAN
touch ilk-uygulamam/DEBIAN/control
touch ilk-uygulamam/DEBIAN/md5sums
4- Control dosyası düzenlenir
DEBIAN içerisine oluşturulacak Control dosyadasında paket ile ilgili geliştiren yayınlanma tarihi gibi temel bilgiler bulunur.
touch ilk-uygulamam/DEBIAN/control
boyut=$(du -s diyorki | cut -f 1)
versiyon=$(date +'%Y%m%d-%H%M%S')
tarih=$(date +'%d/%m/%Y-%H:%M:%S')
echo """Package: diyorki
Version: $versiyon
Installed-Size: $boyut
Maintainer: Duygu Ölmez <xxx@yyy.com>
Date : $tarih
Architecture: amd64
Description: Diyorki uygulaması
Aldığı değeri ekrana yazdıran uygulama
""" > ilk-uygulamam/DEBIAN/control
Package paketinizin adı
Version paketin versiyonunu belirtir. Kurulu paketler güncellenirken bu bilgi önemlidir.
Installed-Size paket yüklendiğinde ne kadar yer kaplayacağını belirtir. du
komutu belirtilen dizin ve altında bulunanların botutunu gösterir. -s parametresi ile yalnızca belirtilen dizinin toplam boyutunu gösterir. cut
komutu ekran çıktısındaki belirtilen sütunu döndürür.
Date paketin oluşturulma tarihidir. date
komutu ile istenilen formatta tarih çıktısı alınır. %d/%m/%Y-%H:%M:%S
Gün/Ay/Yıl-Saat:Dakika:Saniye
formatında çıktı verir. Paket versiyonları belirlenirken de belirlenen bir formatta tarih belirlenerek betiklerinizi otomatize edebilirsiniz.
Architecture hangi mimarilerde çalıştığını belirtir.
Maintainer Geliştirici hakkında bilgi verir.
Description Paket hakkındaki açıklamalar bu alana yazılır.
4- Uygulama dosyalarının hashleri dosyaya yazdırılır
Her bir dosyanın hash bilgileri bir dosyaya yazdırılır. Bu şekilde dosyalarda güncelleme olup olmadığı kontrol edilebilir.
find ./ -type f ! -regex '.*?DEBIAN.*' -exec md5sum {} \; > ilk-uygulamam/DEBIAN/md5sums
4- Kurulum öncesi ve sonrası çalışacak betikler oluşturulur
Paket kurulurken 4 temel betik dosyası çalışır. Bu dosyalar DEBIAN/ klasörü içerisinde oluşturulur.
- preinst paket kurulmadan önce çalışır. Paketiniz için oluşturulması gereken dosyalar ya da yapılması gereken kofigürasyonlar varsa burada yapılır.
- postinst paket kurulduktan sonra çalışır, örneğin uygulamanız kurulduktan sonra servisi enable etmek isteyebilirsiniz.
- prerm paket kurulmadan önce yapılması gereken işlemler. Paket silinirken içinden çıkan dosya ve dizinleri temizlemek ister. Fakat bu dizinlerde bunun dışında oluşturulanları bunları temizleyemez. Örneğin bu dosyalar paketkaldırılmadan silinebilir ya da çalışan ilgili servisler durdurulabilir.
- postrm paket kaldırıldıktan sonra yapılmak istenen işlemler burada tanımlanır
Uygulamamız kurulduktan sonra betiğimize çalışırılabilir flagini koyabilmek için postinst dosyasına bu komutu yazıyoruz.
echo "chmod +x /usr/local/bin/diyorki" > ilk-uygulamam/DEBIAN/postinst
chmod +x ilk-uygulamam/DEBIAN/postinst
5- Paketin oluşturulması
Aşağıdaki komutla paket oluşturulur
dpkg-deb -Zgzip --build ilk-uygulamam
ls -la
-rw-r--r-- 1 pardus pardus 53 Apr 7 16:10 diyorki
drwxr-xr-x 4 pardus pardus 4096 Apr 7 16:01 ilk-uygulamam
-rw-r--r-- 1 pardus pardus 894 Apr 7 16:14 ilk-uygulamam.deb
Bu şekilde uygulamarınızı deb paketleri haline getirebilirsiniz.
Top comments (0)