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)