DEV Community

Ali Orhun Akkirman for Açıklab

Posted on • Edited on

3

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode
echo """#!/bin/bash
echo "kurdum" >> /opt/ornek.txt
""" >  ornekpaket-1.4.0-b2/DEBIAN/postinst
Enter fullscreen mode Exit fullscreen mode
echo """#!/bin/bash
echo "sileceğim" >> /opt/ornek.txt
""" >  ornekpaket-1.4.0-b2/DEBIAN/prerm
Enter fullscreen mode Exit fullscreen mode
echo """#!/bin/bash
echo "sildim" >> /opt/ornek.txt
""" >  ornekpaket-1.4.0-b2/DEBIAN/postrm
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode
ornekpaket-1.4.0-b2/
└── DEBIAN/
└── usr/bin/uygulama      # Uygulama için gerekli herhangi bir dosya
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode
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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

veya

dpkg-deb --build ornekpaket-1.4.0-b2.deb
Enter fullscreen mode Exit fullscreen mode

Ex nihilo nihil fit

Image of Datadog

How to Diagram Your Cloud Architecture

Cloud architecture diagrams provide critical visibility into the resources in your environment and how they’re connected. In our latest eBook, AWS Solution Architects Jason Mimick and James Wenzel walk through best practices on how to build effective and professional diagrams.

Download the Free eBook

Top comments (0)

Image of Datadog

The Essential Toolkit for Front-end Developers

Take a user-centric approach to front-end monitoring that evolves alongside increasingly complex frameworks and single-page applications.

Get The Kit

👋 Kindness is contagious

Discover a treasure trove of wisdom within this insightful piece, highly respected in the nurturing DEV Community enviroment. Developers, whether novice or expert, are encouraged to participate and add to our shared knowledge basin.

A simple "thank you" can illuminate someone's day. Express your appreciation in the comments section!

On DEV, sharing ideas smoothens our journey and strengthens our community ties. Learn something useful? Offering a quick thanks to the author is deeply appreciated.

Okay