- Konum
- BERTUNA
-
- Üyelik Tarihi
- 2 Haz 2020
-
- Mesajlar
- 5,358
-
- MFC Puanı
- 16,420

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 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 :
60 | greeting_msg = _("Hello, world"); |
Sonrasında :
60 | greeting_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
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: