Paket Kaldırma¶
Sistemde kurulu paketleri kaldırmak için işlem adımları şunlardır.
Paketin kullandığı bağımlılıkları başka paketler kullanıyor mu kontrol edilir. Eğer kullanılmıyorsa kaldırılır.
Paketin paket.LIST dosyası içerisindeki dosyalar, dizinler kaldırılır.
Kaldırılan dosyalardan sonra /paket/veri/yolu/paket.LIST dosyasından paket bilgisi kaldırılır.
sistemde kurulu paketler index dosyasından ilgili paket satırı kaldırılmalıdır.
Paketi kaldırmak için ise aşağıdaki örnek kullanılabilir.
cat /paket/veri/yolu/paket.LIST | while read dosya ; do
if [[ -f "$dosya" ]] ; then
rm -f "$dosya"
fi
done
cat /paket/veri/yolu/paket.LIST | while read dizin ; do
if [[ -d "$dizin" ]] ; then
rmdir "$dizin" || true
fi
done
rm -f /paket/veri/yolu/paket.LIST
Bu örnekte paket listesini satır satır okuduk. Önce dosya olanları sildik. Daha sonra tekrar okuyup boş kalan dizinleri sildik. Son olarak palet listesi dosyamızı sildik. Bu işlem sonunda paket silinmiş oldu.
bps Paket Kaldırma Scripti Tasarlama¶
Dokumanda örnek olarak verilen bps paket sistemi için yukarıdaki paket kaldırma bilgilerini kullanarak tasarlanmıştır.
bpskaldir scripti¶
#!/bin/sh
#set -e
paket=$1
paketname="name=\"${paket}\""
indexpaket=$(cat /var/lib/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
# Bağımlılıkları başka paketler kullanıyor mu kontrol edilir
echo "bağımlılık kontrolü yapılacak"
# Paketin file.lst dosyası içerisindeki dosyalar, dizinler kaldırılır.
cat /var/lib/bps/${paket}-${version}.lst | while read dosya ; do if [[ -f "$dosya" ]] ; then rm -f "$dosya"; fi done
cat /var/lib/bps/${paket}-${version}.lst | while read dizin ; do if [[ -d "$dizin" ]] ; then rmdir "$dizin" || true; fi done
#/var/lib/bps/paket-version.lst dosyasından paket bilgisi kaldırılır.
rm -f /var/lib/bps/${paket}-${version}.lst
#/var/lib/bps/index.lst dosyasından ilgili paket satırı kaldırılır.
sed '/^name=\"${paket}\"/d' /var/lib/bps/index.lst
Bağımlılıkları başka paketler kullanıyor mu kontrol edilir. Script içinde bu işlem yapılmamıştır. Daha sonra güncellenecektir. Bu örnekte paket listesini satır satır okuduk. Önce dosya olanları sildik. Daha sonra tekrar okuyup boş kalan dizinleri sildik. Son olarak paket listesi dosyamızı sildik. Bu işlem sonunda paket silinmiş oldu.
bpskaldir Kullanma¶
bpskaldir scripti aşağıdaki gibi kullanılır.
./bpskaldir readline