Temmuz 23, 2024

Özgürlük İçin

dh_make ile Debian Paketi Oluşturma

3 min read
netutils adında bir dizin oluşturalım.  
$ mkdir netutils
Dizinimize girelim.  
$ cd netutils
  dh-make işlemlerini yapmak için ilgili paketi kuralım.  
$ sudo apt-get install dh-make
  Örnek dosyalar ile debian adında bir dizin oluşturmak için aşağıdaki komutu girelim.  
$ dh_make \

--native \

--single \

--packagename netutils_1.0.0 \

--email ramazanaltintop@protonmail.com
  debian dizininde oluşan dosyaları listeleyelim  
$ find debian/ | sort
  Boş bir paket oluşturalım.  
$ dpkg-buildpackage
  gpg: “Ramazan Altıntop <ramazanaltintop@protonmail.com>” atlandı: No secret key gpg: dpkg-sign.OiLqrMxm/netutils_1.0.0.dsc: clear-sign failed: No secret key dpkg-buildpackage: error: failed to sign .dsc file Anahtar ile ilgili problem yaşadığım için aşağıdaki şekilde komutumu tekrar giriyorum.  
$ dpkg-buildpackage -kramazanaltintop@protonmail.com
  Bir önceki dizinimizde oluşturduğumuz dosyaları listeleyelim.  
$ ls -l ../
  .tar.xz: kaynak paketidir. netutils/ dizininde yer alan dizin veya dosyalar bu kaynak paketinde arşivlidir. .deb: Yüklenebilen bir debian paketidir. .dsc, .changes: İmza dosyaları, tüm dosyaların şifreli imzaları bulunur. Debian paketinin içeriğini inceleyelim.  
$ dpkg-deb -c ../netutils_1.0.0_amd64.deb
  Debian arşivini netutils_extracted adlı yeni bir dizine çıkartmak için aşağıdaki komutu kullanalım ve çıkarılan dizini inceleyelim.  
$ dpkg-deb -x ../netutils_1.0.0_amd64.deb ../netutils_extracted
   
$ find ../netutils_extracted
  Şimdi bu boş paketi sistemimize yükleyelim.  
$ sudo dpkg -i ../netutils_1.0.0_amd64.deb
  Sistemimizde kurulu olan bu paket hakkındaki bilgileri aşağıdaki komut ile elde edebiliriz.  
$ dpkg -l | grep netutils
  ii netutils 1.0.0 amd64 <insert up to 60 chars description> İstenilen paketin durumu(i=install, r=remove, p=purge): i Güncel paket durumu:(n=not installed, i=installed): i Paket adı: netutils Versiyon: 1.0.0 Mimari: amd64 Açıklama: <insert up to 60 chars description> Paketi yüklediğimiz için artık aşağıdaki komutla sistemimizde bu debian paket içeriğini listeleyebiliriz. Gerekli dizinlerimizi oluşturup örnek scriptimizi oluşturalım. Scriptimize çalışma iznini ayarlayalım.  
$ mkdir -p /files/usr/bin
   
$ touch /files/usr/bin/ipaddr
   
$ chmod +x /files/usr/bin/ipaddr
   
$ nano /files/usr/bin/ipaddr
   
#!/bin/bash
   
curl --silent 'https://api.ipify.org?format=json' | jq .ip –raw-output
  dpkg-buildpackage komutunu kullandığımız zaman files dizininde pakete dahil edilmesi için debian/install dosyasını şu şekilde düzenlemeliyiz.  
$ nano debian/install
   
files/usr/* usr
  Şimdi changelog dosyasını düzenleyerek bu pakette yapmış olduğumuz değişiklikleri ifade edelim. Bu değişiklikle paketi 1.1.0’a yükselteceğiz.  
$ dch -im
  Bu komutu çalıştırabilmemiz için devscripts paketinin kurulu olması gerekiyor. İlgili paketimizi kuralım.  
$ sudo apt-get install devscripts
   
$ dch -im
  vi editörünü kullanalım. (2) Güncel versiyon için yeni bir paket oluşturalım.  
$ dpkg-buildpackage -kramazanaltintop@protonmail.com
  Güncel sürümü sistemimize kuralım.  
$ sudo dpkg -i ../netutils_1.1.0_amd64.deb
  Sistemimizde kurulu olan paketimiz hakkında bilgileri elde edelim.  
$ dpkg -l | grep netutils
  ipaddr scriptini çalıştırmak istediğimde bağımlılık hatası alıyorum. O zaman yeni bir güncelleme ile paketime bu bağımlılıkları eklemeliyim. Kontrol dosyamızı düzenleyelim ve gerekli bağımlılıkları (jq, curl), açıklamaları ekleyelim.  
$ nano debian/control
  changelog dosyamızı düzenleyelim.  
$ dch -im
  Yeni versiyonumuz için yeni paket oluşturalım.  
$ dpkg-buildpackage -kramazanaltintop@protonmail.com
  Paketimizi yükleyelim.  
$ sudo dpkg -i ../netutils_1.2.0_amd64.deb
  Öncelikle paketimizin durumunu gözden geçirelim.  
$ dpkg -l | grep netutils
  iU netutils 1.2.0 amd64 Network Management Tools Yüklü faket paketlenmemiş olduğunu fark ediyoruz. i = installed U = UNPACKED Bu iki paketin başarıyla kurulması için aşağıdaki komutlardan herhangi birini kullanabilirsiniz.  
$ sudo apt-get -f install
   
$ sudo apt-get install --fix-broken
  Paketimizin durumunu tekrar gözden geçirelim.  
$ dpkg -l | grep netutils
  Güncelleme işleminide başarıyla gerçekleştirdik. Şimdi test edelim.  
$ ipaddr
  Yararlandığım kaynak; https://blog.heckel.io/2015/10/18/how-to-create-debian-package-and-debian-repository/

About The Author


sitesinden daha fazla şey keşfedin

Subscribe to get the latest posts sent to your email.

Kaçırdıklarınız

sitesinden daha fazla şey keşfedin

Okumaya devam etmek ve tüm arşive erişim kazanmak için hemen abone olun.

Okumaya Devam Edin