Rehber Arch tabanlı dağıtımlarda paket oluşturma

Bu konuyu okuyanlar

41ph337h4

Doçent
Katılım
12 Mart 2021
Mesajlar
505
Çözümler
2
Reaksiyon puanı
579
Puanları
93
Başlangıç
Arch linux ve tabanlı dağıtımlarda paket inşa etmek için makepkg komutunu kullanırız. Bu rehberimde basitçe "Merhaba Dünya!" yazdıran paket yapacağız. Bu komutları PKGBUILD dosyasının içine
gireceksiniz.


Temel Bilgiler
PKGBUILD dosyaları, tümü paketin kendisini ve nasıl oluşturulacağını tanımlamak için kullanılan değişkenlerden ve işlevlerden oluşur.


PKGBUILD Dosyası Oluşturma
  • pkgname: Bu, kurulum sırasında paketinizin adını tanımlayan ve Arch Linux'un paket yöneticisi pacman'ın paketi nasıl takip ettiğini belirleyen şeydir. pkgname="merhaba-dunya"
  • pkgver: Paketin versiyonunu belirtir. pkgver="1.0.0"
  • pkgdesc: Paketin açıklamasının yazılacağı kısım. pkgdesc="Merhaba Dünya!"
  • arch: Paketin mimarisinin belirleneceği kısım. arch=("x86_64") Eğer birden fazla mimari belirlemek istiyorsanız şöyle yapmalısınız; arch=(“x86_x64” “arm”)
  • depends: Bu, paketimizin çalışması için ihtiyaç duyduğu tüm paketleri listeler. Arch gibi, birden çok değer içerebilir ve bu nedenle parantez sözdizimini kullanmalıdır.

    Paketimizin herhangi bir bağımlılığı olmayacağı için PKGBUILD'de bu alana girmemize gerek yok. Ancak paketimizin bağımlılıkları olsaydı, sadece arch ile aynı sözdizimini kullanırdık.

  • optdepends: Bu, çalışması gerekmeyen ancak ekstra işlevsellik için gerekli olan paketleri listeler.
  • conflicts: Bu, pacman'a hangi paketlerin paketimizin istemediğimiz bir şekilde hareket etmesine veya davranmasına neden olacağını söyler.

    Burada listelenen herhangi bir paket, bizimki kurulmadan kaldırılacaktır.

    Bu, bağlı olarak da aynı sözdizimini izler.
  • license: Lisanslar hakkında bilgi edinmek için.
  • source: Makepkg, paketimizi oluşturmak için hangi dosyaları kullanacağını bu şekilde bilir. Bu, yerel dosyalar ve URL'ler dahil olmak üzere çeşitli farklı türde kaynaklar içerebilir.

    Yerel dosyalar eklerken, dosyanın adını PKGBUILD'e göre girin, yani aşağıdaki dizin düzenini göz önünde bulundurun:
    PKGBUILD
    dosya.txt
    src/dosya.sh
    source=("merhaba-dunya.sh")
  • sha512sums: Bu, kaynaktaki dosyaların değiştirilmediğini veya yanlış indirilmediğini doğrulamak için kullanılır. Bunun için değerlerin alınmasıyla ilgili bilgiler, PKGBUILD'ler hakkındaki Arch Wiki makalesinde bulunabilir.
    Bunu ayarlamamayı tercih ediyorsanız (veya yerel dosyalar için yapmanız gerekmiyorsa), kaynak değişkendeki her dosya için SKIP girebilirsiniz: sha512sums=("SKIP")
  • package():
  • Bu, paketimizi gerçekten yapmanın son ve en önemli kısmıdır. Bununla çalışırken iki değişkeni bilmek önemlidir:

    ${srcdir}: Burası makepkg'nin dosyaları kaynak değişkene koyduğu yerdir. Bu, dosyalarla etkileşime girebileceğiniz ve dosyalarda gerekli diğer değişiklikleri yapabileceğiniz dizindir
    ${pkgdir}: Sistemimize kurulacak dosyaları buraya yerleştiriyoruz.
    ${pkgdir} klasör yapısı sanki gerçek bir sistemdeymiş gibi kurulur (yani ${pkgdir}/usr/bin/merhaba-dunya pacman ile kurulum yaparken /usr/bin/merhaba-dunya dosyasını oluşturur.
    package() { echo 'Merhaba Dünya!' > "${srcdir}/merhaba-dunya.sh" mkdir -p "${pkgdir}/usr/bin" cp "${srcdir}/merhaba-dunya.sh" "${pkgdir}/usr/bin/merhaba-dunya" chmod +x "${pkgdir}/usr/bin/merhaba-dunya" }
    Ve hazırız eğer bittiyse şöyle gözükecek:
    1627383167716.png
Not 1: PKGBUILD ile yazdığınız kod aynı klasörde olmalıdır.
Not 2: Merhaba-dunya.sh oluşturmak için touch merhaba-dunya.sh
Not 3: Bu sadece örnekti, siz istediğiniz her türlü komutu paketin içine yerleştirebilirsiniz.

 
Son düzenleme:
Üst