• Web sitemizin içeriğine ve tüm hizmetlerimize erişim sağlamak için Web sitemize kayıt olmalı ya da giriş yapmalısınız. Web sitemize üye olmak tamamen ücretsizdir.
  • Sohbetokey.com ile canlı okey oynamaya ne dersin? Hem sohbet et, hem mobil okey oyna!
  • Soru mu? Sorun mu? ''Bir Sorum Var?'' sistemimiz aktiftir. Paylaşın beraber çözüm üretelim.

TRWE_2012

Süper Moderatör
Üyelik Tarihi
2 Haz 2020
Konular
3,091
Mesajlar
5,890
MFC Puanı
20,830
Build-Packages-From-Source-In-Debian-1024x512.png.webp


Paketleri kaynaktan oluşturma fikri, Debian bağlamında konuşurken sıkça duyduğumuz bir şey olmayabilir. Bu daha çok bir Arch türev olayı ama bu yazıda, aynısını Debian tabanlı dağıtımlardan herhangi birinde nasıl yapabileceğimizi öğreneceğiz.

Debian'da Kaynaktan Paket Oluşturma Adımları​

Hemen Debian'da kaynaktan paket oluşturma adımlarına geçelim.

Adım 1: Ön Koşulları Ayarlama​

Öncelikle, inşa sürecinde bize yardımcı olacak bazı paketlere ihtiyacımız olacak. Hepsi aşağıdaki apt komutuyla kurulabilir :

$ sudo apt install dpkg-dev devscripts

2. Adım: Paketleri Kaynaktan Alın​

Kaynak paketlerimizi getirmek için, önce /etc/apt/sources.list'imizde gerekli değişiklikleri yaparak onları etkinleştirmemiz gerekiyor. Bu nedenle, söz konusu dosyayı favori metin düzenleyicinize açın ve deb-src ile başlayan tüm satırları şu şekilde düzenleyin :

Önceki

# Generated by distrobuilder
deb http://deb.debian.org/debian bullseye main

# Additional line for source packages

# deb-src http://deb.debian.org/debian bullseye main

Sonrasında

# Generated by distrobuilder
deb http://deb.debian.org/debian bullseye main

# Additional line for source packages

deb-src http://deb.debian.org/debian bullseye main

Bu, kaynak paketleri uygun depolardan doğrudan CLI aracılığıyla getirmemize olanak tanır . Değişiklikleri sonlandırın ve depoları şu şekilde güncelleyin:

$ sudo apt update

Neden bu değişikliği yaptık....!!!?​


“ deb ” ile başlayan satırlar ikili paketlerdir ve doğrudan apt paket yöneticisi ile kurulabilir. Öte yandan, “ deb-src ” ile başlayan satırlar, bir dakika içinde işimize yarayacak olan kaynak paketleri getirmemize yardımcı olacaktır.

3. Adım: Kaynak Paketleri Getirin​

Cephaneliğimiz hazır olduğuna göre artık asıl kısma geçebiliriz. Depodan aşağıdakilerle bir kaynak paketi alarak başlayın:

$ sudo apt source <package-name>

Örneğimiz için, aşağıdakileri içeren basit bir “ Merhaba Dünya ” programı getireceğiz :

$ sudo apt source hello

Bu bize şu anki çalışma dizininde aşağıdaki 3 dosyayı ve bir klasörü getirmelidir:
  • merhaba-2.10 (klasör)
  • merhaba_2.10-2.dsc
  • merhaba_2.10-2.debian.tar.xz
  • merhaba_2.10.orig.tar.gz
ls komutunu kullanarak klasörün içindeki kaynak koduna bir göz atılır :

$ ls
ABOUT-NLS config.in doc maint.mk README TODO
aclocal.m4 configure GNUmakefile Makefile.am README-dev
AUTHORS configure.ac hello.1 Makefile.in README-release
build-aux contrib INSTALL man src
ChangeLog COPYING lib NEWS tests

ChangeLog.O debian m4 po THANKS

Bunlar, uygulamamızı çalıştırmamıza ve çalıştırmamıza yardımcı olacak ana kaynak kodu içerikleridir.

Adım 4: Derleme Bağımlılıklarını Kurun​

Oluşturmaya çalıştığımız uygulamanın düzgün çalışması için bazı ek paketlere ihtiyacı olabilir. Uygulamaların çoğu sistemde yerel olarak mevcut olmayan bazı paylaşılan kitaplıklara ihtiyacı vardır.

Oluşturmaya çalıştığımız uygulamanın ihtiyaç duyduğu tüm çeşitli bağımlılıklara sahip olduğumuzdan emin olmak için şunu yazabiliriz:

$ sudo apt build-dep <package-name>

Örneğimizi takiben, bizim için bu şöyle görünmelidir:

$ sudo apt build-dep hello

Herhangi bir kitaplığımız eksikse, bu bizim için kurmalıdır. Bununla, bir sonraki adıma geçebiliriz.

Adım 5: Kaynak Dosyamızı Ayarlama (Opsiyonel)​

Sırada, kaynaktan paket oluşturmanın en büyük avantajlarından biri olan gereksinimlerimize göre gerekli değişiklikleri yapmak için kodumuzu değiştirebiliriz.

Ana kaynak dizininin src alt klasörünün altında bulunan kaynak kodunu değiştirebiliriz . Örneğimizde olduğu gibi, aşağıdakilere sahip olduğumuzu buluyoruz:

$ cd hello-2.10/src/
$ ls
hello.c system.h

Dosyamıza baktığımızda hello.c, sadece PoC amaçlarımız için 60. satırda küçük bir değişiklik yapıyoruz:

Önceki :

60greeting_msg = _("Hello, world");

Sonrasında :

60greeting_msg = _("Compiled From Source !");

Kaynak kodunu herhangi bir şekilde değiştirirseniz, testlerle de buna göre ilgilenmeniz gerektiğini unutmayın . Bu nedenle “ testler ” dizini altında herhangi bir değişiklik yaptığınızdan emin olun .

Adım 6: Paketi Oluşturun​


Şimdi kaynak kodu kullanarak .deb paketimizi oluşturma zamanı . Bunu iki yoldan biriyle yapabiliriz:

Yöntem 1: yeniden oluşturmayı kullanma


Paketimizi oluşturmak için kaynağın üst dizinine gidin ve şunu yazın:

$ sudo debuild -b -uc -us

Komutumuzu biraz parçalayalım:
  • sudo : Komutu kök ayrıcalıklarıyla çalıştırmak için
  • debuild: Bir paket oluşturmamıza yardımcı olacak Perl Komut Dosyasının adıdır.
  • -b: Yalnızca ikili paketler oluşturun
  • -uc: Chainlog imzalanmasını engelle
  • -us: Kaynak Kodunun imzalanmasını engelle
Bu bize kaynak klasörün bulunduğu klasörde bulunabilecek bir .deb dosyası vermelidir.

Not: Temelde geliştiricilerin işine yarayabilecek bazı hata ayıklama bilgilerini içeren bir “ dbgsym ” paketi de bulabilirsiniz.

Yöntem 2: dpkg-buildpackage kullanma


Paketinizi oluşturmak için kaynak ağacın ana dizinine aşağıdakini yazın:

$ sudo dpkg-buildpackage -b -uc -us

Burada da kullanılan bayraklar bir öncekiyle aynı ve bu da bize .deb paketimizi verecek!

Not- Kaynak pakette yapacak herhangi bir değişikliğiniz yoksa, .deb dosyanızı aşağıdakilerle doğrudan oluşturabilirsiniz:

$ sudo apt-get source --compile <package-name>

7. Adım: Paketi Kurun​


Artık bir .deb dosyamız olduğuna göre, onu aşağıdakilerle kolayca kurabiliriz:

$ sudo dpkg -i <package-name>

Ve bu kadar! Bununla, az önce oluşturduğumuz paketi kurabilmeliyiz! Eksik bağımlılıklar olması durumunda, bunları şu şekilde düzeltebiliriz:

$ sudo apt install -f

Örneğimize dönersek, şunu kullanarak kuruyoruz:

$ sudo dpkg -i hello_2.10-2_amd64.deb

Bununla, paketin başarıyla oluşturulup oluşturulmadığını şu şekilde kontrol edebiliriz:

$ hello
Compiled From Source!

Değiştirilmiş kaynak kodumuzu yansıtır!

Son Sözler....​


Böylece paketlerimizi Debian'daki kaynağından başarıyla oluşturduk! Bu bize uygulamalarımız üzerinde tam kontrol sağlar ve istendiği gibi ince ayarlara izin verir ve kaynaktan inşa etmek gerçekten çok kolaydır!
 
Son düzenleme:
Üst