.DEB Paket Yöneticisi v1.0 [Debian Tasksel Tarzı]

Programlama ve Script dilleri konusunda bilgi paylaşım alanıdır.
Cevapla
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15597
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2708 kez
Teşekkür edildi: 5621 kez

.DEB Paket Yöneticisi v1.0 [Debian Tasksel Tarzı]

Mesaj gönderen TRWE_2012 »

KOD İÇERİĞİ :

Kod: Tümünü seç

#!/bin/bash

#############################
# SIMPLE DEB MANAGER
#############################

# --- AUTO ROOT ELEVATION ---
if [[ $EUID -ne 0 ]]; then
    echo "Root yetkisi gerekiyor. sudo ile yeniden başlatılıyor..."
    exec sudo "$0" "$@"
fi

# --- FUNCTIONS ---

get_deb_path() {
    whiptail --inputbox "Tam .deb dosya yolunu giriniz:" 10 70 2>/tmp/debpath
    FILE=$(cat /tmp/debpath)
    if [[ ! -f "$FILE" ]]; then
        whiptail --msgbox "Dosya bulunamadı!" 8 40
        return 1
    fi
}

get_multiple_deb_paths() {
    whiptail --inputbox "Birden fazla .deb yolu girin (boşluk ile ayırın):" 12 70 2>/tmp/debpaths
    FILES=$(cat /tmp/debpaths)
}

install_single() {
    get_deb_path || return
    apt install -y "$FILE"
    whiptail --msgbox "Kurulum tamamlandı." 8 40
}

install_multiple() {
    get_multiple_deb_paths
    apt install -y $FILES
    whiptail --msgbox "Toplu kurulum tamamlandı." 8 40
}

remove_single() {
    PKG=$(whiptail --inputbox "Kaldırılacak paket adını giriniz:" 10 60 3>&1 1>&2 2>&3)
    apt purge -y "$PKG"
    whiptail --msgbox "Paket kaldırıldı (purge)." 8 40
}

remove_multiple() {
    PKGS=$(whiptail --inputbox "Paket adlarını boşluk ile giriniz:" 12 70 3>&1 1>&2 2>&3)
    apt purge -y $PKGS
    whiptail --msgbox "Toplu purge tamamlandı." 8 40
}

simulate_install() {
    get_deb_path || return
    apt install --dry-run "$FILE"
    read -p "Devam etmek için Enter..."
}

inspect_package() {
    get_deb_path || return
    clear
    echo "====== PAKET BİLGİSİ ======"
    dpkg-deb -I "$FILE"

    echo ""
    echo "====== BAĞIMLILIKLAR ======"
    dpkg-deb -f "$FILE" Depends

    echo ""
    echo "====== BOYUT BİLGİSİ ======"
    FILE_SIZE=$(du -h "$FILE" | awk '{print $1}')
    INSTALLED_SIZE=$(dpkg-deb -f "$FILE" Installed-Size)

    echo "Paket dosya boyutu: $FILE_SIZE"
    echo "Kurulum sonrası boyut (KB): $INSTALLED_SIZE"
    read -p "Devam etmek için Enter..."
}

while true; do
CHOICE=$(whiptail --title "Simple DEB Manager" --menu "Bir işlem seçin:" 20 70 10 \
"1" "Tekli Kurulum (.deb)" \
"2" "Çoklu Kurulum (.deb)" \
"3" "Tekli Kaldırma (purge)" \
"4" "Çoklu Kaldırma (purge)" \
"5" "Kurulum Simülasyonu (--dry-run)" \
"6" "Paket İçeriği ve Bağımlılık İncele" \
"7" "Çıkış" 3>&1 1>&2 2>&3)

case $CHOICE in
    1) install_single ;;
    2) install_multiple ;;
    3) remove_single ;;
    4) remove_multiple ;;
    5) simulate_install ;;
    6) inspect_package ;;
    7) exit 0 ;;
esac
done
AÇIKLAMA :

Genel Yapı

Root Kontrolü

Betik root yetkisi olmadan çalıştırılırsa kendini sudo ile yeniden başlatıyor.
Bu, apt ve dpkg komutlarının sorunsuz çalışması için gerekli.

Kullanıcı Arayüzü (whiptail)

Tüm girişler ve seçimler whiptail ile yapılır; kullanıcıya menü, input kutusu ve mesaj kutuları gösterir.

Ana İşlevler

Tekli Kurulum (install_single): Kullanıcıdan bir .deb dosya yolu alır, apt install ile kurar.
Çoklu Kurulum (install_multiple): Birden fazla .deb dosyasını kurar.
Tekli Kaldırma (remove_single): Paket adını alıp apt purge ile kaldırır.
Çoklu Kaldırma (remove_multiple): Birden fazla paketi topluca purge eder.
Kurulum Simülasyonu (simulate_install): Gerçek kurulumu yapmadan, bağımlılık ve paket durumunu --dry-run ile test eder.
Paket İncele (inspect_package): .deb dosyasının içeriğini ve bağımlılıklarını dpkg-deb -I ile gösterir, boyut bilgilerini hesaplar.

Ana Döngü (Menu)

Kullanıcı sürekli bir menü üzerinden işlem seçer.

Seçime göre ilgili fonksiyon çağrılır; “Çıkış” seçeneği ile döngü sonlanır.

Bu tasarladığım betik, terminal üzerinden .deb paketlerini kurma, kaldırma, simüle etme ve inceleme işlemlerini basitleştiren bir interaktif araçtır. Kod, menü tabanlı ve kullanıcı dostu olacak şekilde whiptail kullanılmakta...Debian Tasksel yapısının aynısı....

Uyarı .... ! :

Betik apt install veya purge komutlarını doğrudan çağırıyor; eksik veya yanlış yol girilirse sistem paketleri zarar görebilir.

EKRAN GÖRÜNTÜLERİ ( Sistem : GNU/Linux Mint 22.2 LXDE v13.0 x64)
Resim
Resim
Kullanıcı avatarı
burak35
Zettabyte4
Zettabyte4
Mesajlar: 18103
Kayıt: 07 Eki 2016, 13:06
cinsiyet: Erkek
Teşekkür etti: 10513 kez
Teşekkür edildi: 12293 kez

Re: .DEB Paket Yöneticisi v1.0 [Debian Tasksel Tarzı]

Mesaj gönderen burak35 »

Toolbox gibi birşey sanırım. Hmmm enteresan. :?:
Kullanıcı avatarı
TRWE_2012
Zettabyte1
Zettabyte1
Mesajlar: 15597
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 2708 kez
Teşekkür edildi: 5621 kez

Re: .DEB Paket Yöneticisi v1.0 [Debian Tasksel Tarzı]

Mesaj gönderen TRWE_2012 »

burak35 yazdı: 23 Şub 2026, 01:12 Toolbox gibi birşey sanırım. Hmmm enteresan. :?:
Hepsi bir arada diyelim Windows dilince....
Kullanıcı avatarı
burak35
Zettabyte4
Zettabyte4
Mesajlar: 18103
Kayıt: 07 Eki 2016, 13:06
cinsiyet: Erkek
Teşekkür etti: 10513 kez
Teşekkür edildi: 12293 kez

Re: .DEB Paket Yöneticisi v1.0 [Debian Tasksel Tarzı]

Mesaj gönderen burak35 »

Aynen. Bazı windows düzenleyenler buna benzer bi araç yapıyordu. Direk toolboxlar geldi aklıma.
Cevapla

“Programlama ve Script dilleri” sayfasına dön