loading...
Açıklab

Debian tabanlı sistemler için paket oluşturma - 2

aliorhun profile image Ali Orhun Akkirman Updated on ・2 min read

Debian tabanlı sistemler için paket oluşturma (2 Part Series)

1) Debian tabanlı sistemler için paket oluşturma - 1 2) Debian tabanlı sistemler için paket oluşturma - 2

"Debian tabanlı sistemler için paket oluşturma - 1" yazısında temel düzeyde bir paketin nasıl yapılacağını incelemiştik. Fakat ilgili paket herhangi bir iş yapmamakta. Sadece bağımlılığından dolayı "git" ve "python3" paketinin "3.5" sürümünden büyük bir durumunu bağımlılık olarak yüklemekte idi.

Şimdi kurulum öncesinde, kurulum sonrasında, silme öncesinde ve silme sonrasında bir betik çalıştırmak istersek ne yapacağımızı göreceğiz.

Öncelikle yeni ekleyeceğimiz dosyaları görelim. Bu dosyalar aşağıdaki konumlarına eklenmelidir.

ornekpaket-1.4.0-b2/
└── DEBIAN/
    └── control
    └── postinst  # dosya taşıma ve kurulum hemen sonrası
    └── postrm        # silme hemen sonrası
    └── preinst       # dosya taşıma ve kurulum hemen öncesi
    └── prerm     # silme hemen öncesi

Bu dosyaların içerisinde herhangi bir betik çalıştırabilirsiniz. Fakat genelikle bash betikleri yazıldığı için dosyaların en üst satırlarında #!/bin/bash satırı yazılarak bir sonraki satırdan itibaren istenilen betik yazılmaya başlanır. Bu nedenle özetle aşağıdaki şekilde 4 farklı betik hazırlanabilir.

echo """#!/bin/bash
echo "kuracağım" >> /opt/ornek.txt
""" >  ornekpaket-1.4.0-b2/DEBIAN/preinst
echo """#!/bin/bash
echo "kurdum" >> /opt/ornek.txt
""" >  ornekpaket-1.4.0-b2/DEBIAN/postinst
echo """#!/bin/bash
echo "sileceğim" >> /opt/ornek.txt
""" >  ornekpaket-1.4.0-b2/DEBIAN/prerm
echo """#!/bin/bash
echo "sildim" >> /opt/ornek.txt
""" >  ornekpaket-1.4.0-b2/DEBIAN/postrm

Bu temel özellikler sonrasında en önemli ve aslında GNU/Linux dünyasında kurulum anlamına gelen dosyaların taşınması gerekmektedir. Daha doğrusu eğer uygulamanız tek bir dosya ise bunu /usr/bin/'in altına koymak gibi basit bir çözüm yapılabileceği gibi, daha karmaşık yapılar için /usr/share/uygulamaadi/ şeklinde bir klasör altında çeşitli yapılar kurulabilir. Bu konuda başka yazı da yazmayı planlıyorum.

Bu kısımda hangi formatta oluşturmak istediğinize göre çalıştırılabilir dosya /usr/bin/ klasörünüz içerisine atmanız gerekmektedir.

cp binarydosya ornekpaket-1.4.0-b2/usr/bin/uygulama
ornekpaket-1.4.0-b2/
└── DEBIAN/
└── usr/bin/uygulama      # Uygulama için gerekli herhangi bir dosya

veya

mkdir -p /usr/share/uygulamaadi/bin/
mkdir -p /usr/share/uygulamaadi/conf/
cp binarydosya ornekpaket-1.4.0-b2/usr/share/uygulamaadi/bin/uygulama
cp uygulama.conf ornekpaket-1.4.0-b2/usr/share/uygulamaadi/conf/uygulama.conf
ornekpaket-1.4.0-b2/
└── DEBIAN/
└── usr/share/uygulamaadi/bin/        # Uygulama için gerekli herhangi bir klasör
    └── uygulama                  # Uygulama için gerekli dosya
└── usr/share/uygulamaadi/conf/       # Uygulama için gerekli herhangi bir klasör
    └── uygulama.conf             # Uygulama için gerekli dosya

Bu adımlardan sonra, ilk yazıda gördüğümüz şekilde build etmemiz gerekmektedir:

dpkg -b ornekpaket-1.4.0-b2 ./ornekpaket-1.4.0-b2.deb

veya

dpkg-deb --build ornekpaket-1.4.0-b2.deb

Ex nihilo nihil fit

Debian tabanlı sistemler için paket oluşturma (2 Part Series)

1) Debian tabanlı sistemler için paket oluşturma - 1 2) Debian tabanlı sistemler için paket oluşturma - 2

Posted on Mar 22 by:

Discussion

markdown guide