Paket Kurma

Hazırlanan dağıtımda paketlerin kurulması için sırasıyla aşağıdaki işlem adımları yapılmalıdır.

  1. Paketin indirilmesi

  2. İndirilen paketin /tmp/bps/kur/ konumunda açılması

  3. Açılan paket dosyalarının / konumuna yüklenmesi(kopyalanması)

    • Paketin bağımlı olduğu paketler varmı kontrol edilir

    • Yüklü olmayan bağımlılıklar yüklenir

  4. Yüklenen paket bilgileri(name, version ve bağımlılık) yüklü paketlerin index bilgilerini tutan paket sistemi dizininindeki index dosyasına eklenir.

  5. Açılan paket içindeki yüklenen dosyaların nereye yüklendiğini tutan file.index dosyası paket sistemi dizinine yüklenir

Bu işlemler daha detaylandırılabilir. Bu işlemlerin detaylı olması paket sisteminin kullanılabilirliğini ve yetenekleri olarak ifade edebiliriz. İşlem adımlarını kolaylıkla sıralarken bunları yapacak script yazmak ciddi planlamalar yapılarak tasarlanması gerekmektedir.

Örneğin bir paketimiz zip dosyası olsun ve içinde dosya listesini tutan file.index adında bir dosyamız olsun. Paketi aşağıdaki gibi kurabiliriz.

cd /tmp/kur/
unzip /dosya/yolu/paket.zip
cp -rfp ./* /
cp file.index /paket/veri/yolu/paket.index
  • Bu örnekte ilk satırda geçici dizine gittik

  • Paketi oraya açtık.

  • Paket içeriğini kök dizine kopyaladık.

  • Paket dosya listesini verilerin tutulduğu yere kopyaladık.

Bu işlemden sonra paket kurulmuş oldu.

bps Paket Kurma Scripti Tasarlama

Burada basit seviyede kurulum yapan script kullanılmıştır. Detaylandırıldıkça doküman güncellenecektir. Kurulum scripti aşağıda görülmektedir.

Paket kurulurken paket içerisinde bulunan dosyalar sisteme kopyalanır. Daha sonra istenirse silinebilmesi için paket içeriğinde dosyaların listesi tutulur. Bu dosya ayrıca paketin bütünlüğünü kontrol etmek için de kullanılır.

bpskur Scripti

#!/bin/sh
#set -e
paket=$1
paketname="name=\"${paket}\""
ROOTFS=$2
#echo "$paket"
indexpaket=$(cat /etc/bps/index.lst|grep $paketname)
name=""
version=""
depends=""
if [ -n "${indexpaket}" ]
        then
                namex=$(echo $indexpaket|cut -d"|" -f1)
                versionx=$(echo $indexpaket|cut -d"|" -f2)
                dependsx=$(echo $indexpaket|cut -d"\|" -f3)
                name=${namex:6:-1}
                version=${versionx:9:-1}
                depends=${dependsx:9:-1}
        else
        echo "***********Paket Bulunamadı**********"; exit
fi

# 1. adım paketi indirme
mkdir -p /tmp/bps
mkdir -p /tmp/bps/kur
rm -rf /tmp/bps/kur/*
curl -Lo /tmp/bps/kur/${name}-${version}.tar.gz https://github.com/basitdagitim/kly-binary-packages/raw/master/${name}/${name}-${version}.bps

mkdir -p /var/lib/bps
cd /tmp/bps/kur/

#2. adım paketi açma
tar -xf ${name}-${version}.tar.gz
mkdir -p rootfs
tar -xf rootfs.tar.xz -C rootfs

#3. adım  paketi kurma
cp -prfv rootfs/* $ROOTFS/

#4. adım name version depends /var/lib/bps/index.lst eklenmesi
echo "name=\"${name}\":"version=\"${version}\":"depends=\"${depends}\"">>var/bps/index.lst
# 5. adım paket içinde gelen paket dosyalarının dosya ve dizin yapısını tutan file index dosyanının /var/lib/bps/ konumuna kopyalanması
cp file.index /var/lib/bps/${name}-${version}.lst

bpskur Scriptini Kullanma

Script iki parametre almaktadır. İlk parametre paket adı. İkinci parametremiz ise nereye kuracağını belirten hedef olmalıdır. Bu scripti kullanarak readline paketi aşağıdaki gibi kurulabilir.

./bpskur readline /