firewalker Δημοσ. 27 Σεπτεμβρίου 2009 Share Δημοσ. 27 Σεπτεμβρίου 2009 firewalker για καντο λιγο πιο λιανα,πως το χρησιμοποιω το παραπανω?Γιατι μαλλον απαντας στην επομενη απορια μου,πως θα ενσωματωσω με τον πιο απλο τροπο την λειτουργια αυτη στο sabayon.Με πιο τροπο μπορω να το προσθεσω μονιμα στο packet manager? Ένα πρόχειρο script με όνομα SizeCheck θα μπορούσε να είναι το παρακάτω. Έστω ότι ο δίσκος του / (ή εκεί που κυρίως περνάει o packet manager τα πακέτα) είναι ο /dev/sda1. Η εντολή του packet manager έστω ότι είναι pacman (Arch Linux). > #!/bin/bash Parameter=$@ #Packet manager command Command=pacman MainDisk=/dev/sda1 SizeLeft=`df | grep $MainDisk|awk '{print $4}'` echo $SizeLeft #Check if disk free space is less than 2 Gbytes. if [ $SizeLeft -le 2097152 ]; then echo echo "It seems that you run out of space!" echo "$(df -h| grep $MainDisk|awk '{print $4}') of free space are available." read -p "Are you sure you want to continue installing packets (yes/no)? " UsrResp echo if [ ! $UsrResp = yes ]; then echo "Terminated by user." exit 1 fi fi $Command $Parameter exit 0 Αντιγράφω το script στο /usr/bin/. Δηλώνω ένα alias στο .bashrc του χρήστη μου: alias pacman=SizeCheck. Έτσι κάθε φορά που καλώ pacman -Syu στην ουσία καλώ SizeCheck -Syu που εκτελεί τον έλεγχο και μετά ανάλογα με τις συνθήκες εκτελεί pacman -Syu. Θα ήταν πιό εύκολο να γίνει με διανομές debian based γιατί το aptitude σου λέει πόσος χώρος θα χρειαστεί μετά το extraction των πακέτων. Και πάλι όμως δεν θα είναι και τόσο απλός ο έλεγχος αφού δεν υπολογίζει τα αρχεία που πιθανών αντικαθίστανται (νέες εκδόσεις πακέτων που είναι ήδη εγκατεστημένα) ή την cache του packet manager. Π.χ. μπορεί να έχεις 1 Giga ελεύθερα και τα πακέτα που θέλεις να περάσεις να είναι 2 Giga ασυμπίεστα αλλά να περνάνε άνετα αφού στην ουσία ο packet manager σβήνει και γράφει. Στο τέλος μπορεί να έχει πάλι ~1 Giga ελεύθερο. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.