.deb Debian Kurulum Paketi Oluşturmak ( Create .deb Package )
Adım 1
Paket adınızda bir dizin yaratınız. Örneğin “my_package”
# mkdir my_package
Bu dizin içerisine DEBIAN adında dizin yaratınız.
# mkdir DEBIAN/my_package
Adım 2
DEBIAN dizini içerisine control ve install dosyalarını oluşturunuz. Bu dosyalar birer shell script ‘tir ve permission ayaları mutlaka 755 olmalıdır.
my_package/DEBIAN/control
my_package/DEBIAN/preinst
my_package/DEBIAN/postinst
my_package/DEBIAN/prerm
my_package/DEBIAN/postrm
preinst, bu script yükleme öncesi yapılacak olanları yapmakla sorumludur.
postinst, bu script kurulum sonrası yapılacak işleri yapmakla sorumludur
prerm, bu script paketin kaldırılma işlemi öncesi yapılacak işleri yapmakla sorumludur. örneğin çalışan servisleri durdurmak gibi…
postrm, bu script paketin kaldirma işlemi sonrası yapılacak işleri yapmakla sorumludur. örneğin config dosyalarının silinmesi gibi…
Admım 3
Bu control file ve script ler için örnekler verelim.
Control dosyasının çok sayıda parametresi var.
En basit haliyle şu şekilde olabilir:
Package: batur
Version: 0.0.1
Source: batur
Priority: optional
Architecture: all
Örneğin paketiniz için “depends” ler varsa. Yani önceden yüklenmiş olması gerek paketler varsa onu da control dosyasında belirtmelisiniz. Bu paketlerden yüklü olmayanlar varsa kullanıcının onayı alınarak paketler otomatik yüklenecektir.
Package: Leapvox-Mail-Server
Version: 0.0.1
Source: Leapvox
Section: mail
Priority: optional
Maintainer: info@leapvox.com
Homepage: http://www.leapvox.com
Architecture: all
Depends:postfix,postfix-mysql,postfix-doc,dovecot-common,dovecot-imapd,dovecot-pop3d,libsasl2-2,libsasl2-modules,libsasl2-modules-sql,sasl2-bin,libpam-mysql,openssl
Description: Leapvox Mail Server
Dahada fazla parametre ve gerekli paketlerde sürüm belirtmek de mumkundur:
Package: batur-orkun-1.0.0
Source:
Version: 1.0.0
Architecture: amd64
Maintainer: batur@bilkent.edu.tr
Installed-Size: 1000
Depends: python2.6 (>= 2.6.5), python-numpy (>= 1.3.0), python-scipy (>= 0.7.0)
Conflicts:
Replaces:
Section:
Priority: optional
Homepage: http://www.baturorkun.com
Description: Batur Orkun’un ozel debian paketidir.
Örnek “preinst” script:
#!/bin/bash
set -e
echo Kurulum basliyor….
service postfix stop
service saslauthd stop
service dovecot stop
rm -rf /etc/default/saslauthd
exit 0;
Örnek “postinst” script:
#!/bin/bash
set -e
chmod o= /etc/postfix/mysql-virtual_*.cf
chgrp postfix /etc/postfix/mysql-virtual_*.cf
chmod o= /etc/pam.d/smtp
chmod o= /etc/postfix/sasl/smtpd.conf
chmod o= /etc/postfix/smtpd.key
adduser postfix sasl
groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /var/vmail -m
postconf -e ‘myhostname = leapvox.voxporta.com’
postconf -e ‘mydestination = leapvox.voxporta.com, localhost, localhost.localdomain’
postconf -e ‘mynetworks = 127.0.0.0/8’
echo “dovecot unix – n n – – pipe” >> /etc/postfix/master.cf
echo ” flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}” >> /etc/postfix/master.cf
mv /etc/default/saslauthd__ /etc/default/saslauthd
newaliases
service postfix restart
service saslauthd restart
service dovecot restart
echo Kurulum bitti. Hayirli olsun..
echo Batur Orkun
exit 0;
Adım 4
Kopyalanacak olan config ve veri dosyaları “my_package” dizine içerisine sistemdeki full dizin yapılarına göre yaratılır. Buradaki tum dizin dosyalar
kök dizini “my_package/” sonrası olacak şekilde kopyalanır.
Örneğin;
/usr/bin/my_file , /usb/bin altına “my_file” isimli file ve
/var/www/my_dir , /var/www/my_dir altina “my_dir” isimli dizin yaratmak istiyorsunuz.
O zaman “my_package” altindaki dizin yapınız şu şekilde olmalıdır:
my_package/usr/bin/my_file
my_package/var/www/my_dir
Admım 5
build the package
$ dpkg-deb –build my_package
İşlem sonrası bir script ‘lerde bir hatanız yoksa my_package.deb isimli DEBIAN tabanli sistemlere yuklenebilir bir paketiniz olacaktır.
Recent Comments