Manjaro paket oluşturma

Bu konu bir süredir merak ettiğim bir konuydu.

Allah’û Teâlâ Hazretlerinin izni ile oldu. Konuyu temel düzeyde de olsa öğrenmiş olduk.

Paket oluşturmak için selam isimli bir dizin oluşturalım.

Şimdi Manjaro Linux’un kullandığı paket olan ismi PKGBUILD olan bir kütük oluşturalım.

pkgname="selam"
pkgver="1.0.0"
pkgrel="1"
arch=("x86_64")

package()
{
    echo "Kaynak dizini = $srcdir"
    echo "Paket ismi = $pkgname"
    echo "Paket sürümü = $pkgver"
    echo "Kurulum dizini = $pkgdir"
}

Paketin içine bu bilgileri girdikten sonra, paketi oluşturmak için uç birimde :

makepkg -sf

komutunu verelim.

İşlem başarılı olduysa tebrikler! İlk Manjaro Linux paketinizi üretmiş oldunuz. :slight_smile:

Paket çıktısına bakalım :

Kaynak dizini = /home/erdem/Belgeler/çalışmalar/arch/selam/src
Paket ismi = selam
Paket sürümü = 1.0.0
Kurulum dizini = /home/erdem/Belgeler/çalışmalar/arch/selam/pkg/selam

Kaynak dizin, varsayılan olarak bulunduğunuz dizinin içinde bulunan src isimli bir alt dizin olarak kabul ediliyor.

Kurulum dizini ise gene bulunduğunuz dizinde /pkg/paketismi şeklinde oluşturuluyor.

Diyelim ki, kaynak dizininden merhaba.sh isimli bir kütüğü, hedef sistemde /usr/bin/merhaba olarak kurmak istiyoruz.

Bu durumda yerel kurulum dizininde /pkg/paketismi/usr/bin isimli bir dizin oluşturup, kaynak dizinindeki merhaba.sh’ı buraya merhaba ismiyle kopyalamak gerekiyor.

Dilerseniz package() {} bölümünü tamamen kaldırabilrsiniz.

Paketin oluşturulabilmesi için ilk dört değişken gerekiyor.

Bunlardan arch 64 bitlik mimariyi belirtiyor. Diğer değişkenler paket ismi ve sürüm bilgisini tutuyor.

Bir paket oluşturduk, ancak paketimiz henüz bir şey yapmıyor.

Önceki bölümden devam edersek selam isimli bir dizinin içinde olmalıyız.

Eğer önceki bölümü okumadı iseniz veya yoksa selam isimli bir dizin oluşturalım. Eğer dizin varsa selam dizinin içine girmeniz yeterli olacaktır.

mkdir selam
cd selam

Paketin varsayılan kaynak dizini olarak src kullanılıyor. Eğer ana dizinde bir kütük oluşturup bunu source anahtar kelimesini kullanarak pakete eklerseniz, bu kütük de src dizinine kopyalıyor.

Ancak biz paket oluşturmanın püf noktalarını öğrenmek maksadı ile kaynak dizinini kaynak ismiyle oluşturmak istiyoruz. Yeni bir dizin oluşturup kaynak adını verelim.

mkdir kaynak

Hâlâ selam dizinin içinde iken kaynak dizininde selam.sh isimli bir betik oluşturmak için şu komutu verelim :

echo "Selamün Aleyküm" >> kaynak/selam.sh

selam dizininde bulunan PKGBUILD kütüğüne de bazı eklemeler yapalım.

pkgname="selam"
pkgver="1.0.0"
pkgrel="1"
arch=("x86_64")

package()
{
    echo "Kaynak dizini = $srcdir"
    echo "Paket ismi = $pkgname"
    echo "Paket sürümü = $pkgver"
    echo "Kurulum dizini = $pkgdir"

    mkdir -p "${pkgdir}/usr/bin"

    cd ../kaynak
    cp selam.sh "${pkgdir}/usr/bin/selam"
    chmod +x "${pkgdir}/usr/bin/selam"
}

Burada ne yaptığımıza kısaca bakacak olursak, önce yerel paket dizininde pkg bir alt dizin oluşturuyoruz.

kaynak dizinin içine girip buradan betiği, yerel kurulum (‘paket’) dizinine selam ismi ile kopyalıyoruz. Son olarak betiğe çalıştırma izni veriyoruz.

Bu sefer paketi kurmak için

makepkg -si

komutunu veriyoruz. Buradaki i paketi kur manasına geliyor.

Dikkat ederseniz biz kütükleri sadece yerel kurulum dizinine kopyalıyoruz.

Kalanını Manjaro Linux’un paket sistemi hallediyor.

Uygulamayı istediğiniz yerden çalıştırmak için uç birimde selam yazabilirsiniz.

Pencereli bir uygulama için nasıl paket hazırlayabiliriz ?

build()
{
    cd ${srcdir}
    cd ../kaynak
    valac merhabalar.vala --pkg gtk+-3.0 -o merhabalar
}

Burada önceden hazırladığımız paketlere ek olarak build bölümü ekledik. Bu bölümde derleme yapıyoruz.

Derleme yaptığımız uygulama Vala programlama dili ile yazılmış bir uygulamadır. Eğer Vala programlama dili kurulu değil ise :

pacman -S vala

komutunu vererek kurabilirsiniz.

Kullandığımız paketin diğer bölümleri daha önce öğrendiğimiz kaynak dizininden yerel kurulum dizinine kopyalama işlerini içeriyor.

Linux’ta simge klasörleri 48x48@2 gibi karışık isimler aldığı için size ufak bir depo oluşturdum.

git clone https://bitbucket.org/zayifakimkolu/merhabalar/

komutu ile depoyu çekin.

cd merhabalar

komutu le dizinin içine girin.

makepkg -si

ile paketi kurabilirsiniz.

Uygulamayı kurduktan sonra uygulama için bir simge oluşturulduğunu görebilirsiniz.

1 Like

paket dosyasına sağtık yükle menü sekmesi eklenebiliyormu acaba

İkinci örneği

makepkg -sf

komutuyla sadece paket haline getiriniz.

Sonra sağ tıklayıp paketin üzerinde Yazılım Kur ile Aç demeniz yeterli oluyor.