[Howto] Arch Linux yazılım paketleri ve türevleri oluşturun

Arch Linux ve türevleri hakkında en sevdiğim şeylerden biri de muazzam kolaylık Bilinenlerin aksine, daha sonra sisteme yüklenecek paketler oluşturmak . Deb Debian / Ubuntu / Linux Mint / vb. bir kaos (ve eğer bunlar kitaplıklarsa size söylemem)

Temel bir şablon şu olacaktır:

# Maintainer:
pkgname=
pkgver=
pkgrel=
pkgdesc=
arch=()
url=
license=()
groups=()
depends=()
makedepends=()
source=()
md5sums=()

build() {
...
}
package() {
...
}

Şimdi her bir parametreyi açıklayacağım:

  • # Bakımcı: İçinde paketin koruyucusunun adı konur
  • paket adı: Paketin adı. Yalnızca harf, rakam, -, _ ve + içerebilir
  • paket: paket sürümü. pe 1.0.0
  • paket: programın veya paketin gözden geçirilmesi. pe 1
  • pkgdesc: paket açıklaması.
  • kemer: programın mimarisi: bash veya python programları gibi derleme gerektirmeyen paketler için herhangi biri (herkes için), i686 ve x86_64 olabilir. İhtiyaç duyan bir programsa (örneğin, C veya C ++ programları), 686 bit için i32 veya 86 bit için x64_64 belirtmelisiniz. Genelde ikisiyle de uyumlu ise set edilir (i686, x86_64)
  • url: programın resmi sayfasının url'si. Koymanız tavsiye edilir.
  • lisans: program lisansı. örneğin GPL3
  • grupları: paketin ait olduğu gruplar. gruplar = ['sistem')
  • bağlı olmak: içinde programın yürütülmesi için gereken paketleri belirtiyoruz. pependens = ['python2' 'pygtk')
  • bağımlı: yalnızca paketi derlemek için gerekli olan bağımlılıklar. Kod bir sürüm yöneticisinden indirilecekse, yerleştirilmesi tavsiye edilir. pe: makedepends = ['git')
  • Kaynak: içinde paketin oluşturulması için gerekli dosyaları belirtiyoruz. Genel bir kural olarak, kodu, yamayı, .desktopt dosyasını, simgeleri vb. İçeren paketin url'sidir. pe: kaynak = (pacsyu.desktop)
  • md5 toplamları: İşte kaynakta belirtilen dosyaların md5 toplamları. PKGBUILD'nin bulunduğu klasördeki bir terminalden hangilerini çalıştırdığımızı bilmek (dosya yollarını kaynağa yazarak) makepkg -g ve meblağlar ekranda görünecektir.
    Sh1 gibi diğer meblağları kullanmak da mümkündür.
  • inşa etmek: bu fonksiyona koyacağız yazılımı derlemeye devam etmek için gerekli komutlar. Derlemek gerekli değilse, sadece aşağıdaki işlevi gereklidir)
  • paket: bu diğer işlevde program yükleme komutları gidecektir. Örneğin, burada C kodunu derliyorsak, make install devam eder.

Ve bitirmek için sadece yürütmeliyiz makyajkg paketin oluşturulduğunu doğrulamak için.
Gördüğünüz gibi bizim için zor. Sonra size bazı ekstra parametreler bırakıyorum makyaj:

  • -ben: Makepkg'a paketi oluşturulduktan sonra yüklemesini söyler.
  • -S: Depolardaysa paket bağımlılıklarını yükleyin.
  • -F: Bu isimde, versiyonda ve revizyonda bu parametreye sahip bir paket zaten varsa, üzerine yazmanızı söyleriz.
  • -C: Bitirdiğinizde çalışma klasörlerini (pkg ve kaynak) temizleyin.
  • -A: Yeniden derlemeye gerek kalmadan paketi yeniden paketleyin.

Daha fazla örnek görmek için daha fazla PKGBUILD dosyası görmenizi tavsiye ederim, komutu yürütün makepkg -h program parametrelerinin geri kalanını görmenin yanı sıra Makepkg Arch Linux Wiki ile ilgili resmi belgeler ne bulabilirsin burada


14 yorum, sizinkini bırakın

Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   jamin samuel dijo

    Çok iyi …

    Bir .exe paketi bir Arch paketine yönetilebilir (derlenebilir) mi?

    Örneğin ünlü indirme yöneticisi gibi Mipony ??

    1.    uygun dijo

      Mümkün olmadığını bildiğim kadarıyla, .exe'nin kaynak kodu değil ikili dosyalar olduğunu unutmayın. Ama JDownloader var.

    2.    v3on dijo

      birisi linux kullanıyor ve Myponi'yi özlüyor… jijijijiji

      jDownloader java'da ve java'nın akciğer kanserine neden olduğu herkes tarafından iyi biliniyor ...

  2.   sütlü28 dijo

    ilginç, paketleri test etmemiz gerekecekti sanırım qbittorrent'ten bir tane yapmaya meyilli olacağım hahaha zaten yaourt'ta var ama kendi sürümünüzün test edilmesi fena olmayacak, bilgi için teşekkürler, selamlar.

  3.   msx dijo

    İyi girdi, +1
    Ayrıca bunların oluşturulması ve sürdürülmesinin Gentoo ebuild'lerinden daha kolay olduğunu eklemek istiyorum!

    Debian ile ilgili olarak, bu dağıtımın sadece modernize ederek veya daha modern bir paket ve paket yönetim sistemine geçerek dezavantajını muazzam şekilde artıracağını düşünüyorum, dpkg / apt setinin son güncellemesinin ne zaman olacağını bilmiyorum ama konsept zaten kolayca sahip olmalıydı 15 yıl ve gerçek şu ki, bugün anakronistik.

  4.   çürük87 dijo

    Çok teşekkür ederim, wikide onu ararken biraz yaptım ve yapısını anlamadım (PlayonLinux olanı güncellemek istedim) ama yine de pes ettim ... bir asistanım olmasını istediğim şeyler var veya buna benzer şeyler var (beni vurmayın) ama yine de ... zamanla araçların yokluğunda herhangi bir araç oluşturup oluşturmadığımı göreceğim

    1.    msx dijo

      Rehberiniz sayesinde Zeya'nın PKGBUILD'sini oluşturmaya başladım (http://web.psung.name/zeya/), bitirir bitirmez AUR'a yüklerim 🙂

  5.   hypersayan_x dijo

    Debian / Ubuntu / Linux Mint / etc'nin iyi bilinen .deb'in aksine

    Tamamen katılıyorum, bir süre önce Ubuntu için bir paket oluşturmaya çalıştım ve nasıl yapacağıma dair anlaşılır bir bilgi bulamadım, sonunda programı bırakıp kabaca kurdum.
    Arch için aynı program, paketi bir araya getirmem 5 dakikadan az sürdü.
    Ve emin değilim ama RPM'nin DEB'den biraz daha kolay, ama Arch'dan daha zor olduğunu düşünüyorum.

  6.   bilgisayar korsanı775 dijo

    Çok iyi ve kolay ve .deb'e gelince, iOS için o kadar da zor değil

    selamlar

  7.   Carlos dijo

    Sanırım bu, bir süre önce ilk PKGBUILD'imi AUR'a yüklediğimde bana hizmet ederdi

  8.   klerafel dijo

    Birisi benim için ne olduğunu açıklayabilir mi, ben yeniyim ve bunun bir .deb paketi yüklememe yardımcı olup olmadığını bilmiyorum ama yerel olarak manjaro'da, tam olarak bir oyun. Evet çalışıyor?