Αυτός ο σύντομος οδηγός περιγράφει τον τρόπο με το οποίο εμφανίζουμε το ιστορικό εγκατάστασης εφαρμογών, από τη γραμμή εντολών, ταξινομημένων κατά ημερομηνία. Με άλλα λόγια βλέπουμε το πότε έχουμε εγκαταστήσει τις εφαρμογές μας και ποίες είναι αυτές.
Είναι χρήσιμο αρκετές φορές, να δούμε ποιες είναι π.χ. η τελευταίες εφαρμογές που έχουμε εγκαταστήσει όταν κάτι πάει στραβά. Το θετικό είναι ότι εμφανίζονται ακόμα και βιβλιοθήκες και εξαρτίσεις εφαρμογών οπότε μπορούμε να δούμε π.χ. το όνομα μιας εφαρμογής η εξάρτησης που θέλουμε να απεγκαταστήσουμε σε περίπτωση που δεν θυμόμαστε το πότε έχει γίνει εγκατάσταση.
Ιστορικό εγκατάστασης σε APT διανομές
Σε όλες τις APT διανομές (Ubuntu, Debian, Linux Mint κλπ) το αρχείο που διατηρεί το «πότε και ποιες εφαρμογές εγκατέστησα» είναι το grep /var/log/dpkg.log. Για να εξάγουμε τις πληροφορίες που θέλουμε ταξινομημένες κατά ημερομηνία θα χρησιμοποιήσουμε τη εντολή (εφαρμογή) grep
grep "install" /var/log/dpkg.log
Με την παραπάνω παράμετρο που δίνουμε στο grep του ζητάμε να μας εμφανίσει όλες τις γραμμές του αρχείου /var/log/dpkg.log που περιλαμβάνουν την λέξη install
Επειδή όμως, σε συστήματα APT συνήθως το log rotation είναι ενεργό, παλιότερες εγγραφές είναι συμπιεσμένες. Σε αυτή την περίπτωση εξάγουμε τις πληροφορίες απο αυτά με zgrep. Π.χ. για το συμπιεσμένο log dpkg.7 θα δώσουμε
zgrep "install" /var/log/dpkg.log.7.gz
Ιστορικό εγκατάστασης σε RPM διανομές
Σε όλες τις RPM διανομές (openSUSE, Fedora, CentOS κλπ) μπορούμε να χρησιμοποιήσουμε την rpm εφαρμογή φυσικά με τις απαραίτητες παραμέτρους της.
rpm -qa --qf '%{INSTALLTIME} (%{INSTALLTIME:date}): %{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort -n
Ούφ ! μακρινάρι ε…. δεν πειράζει θα δούμε παρακάτω πως θα το έχουμε μόνιμα με μια εντολή – εφαρμογή
Ιστορικό εγκατάστασης σε PAC διανομές
Σε όλες τις PAC διανομές (Arch, Antergos, Manjaro κλπ) μπορούμε να χρησιμοποιήσουμε την expac εφαρμογή:
expac --timefmt='%Y-%m-%d %T' '%l\t%n'|sort -n
Λίστα εγκατεστημένων εφαρμογών
Όλες οι παραπάνω εντολές επειδή θα εμφανίσουν μια τεράστια λίστα, μπορεί να μην χωράει στο μέγεθος της οθόνης του τερματικού. Για να λύσουμε το πρόβλημα υπάρχουν δύο τρόποι :
Περιορισμός της προβολής:
Είναι απλή μέθοδος και το μόνο που μένει είναι να προσθέσετε την παράμετρο less:
makrinari-entolis | less
όπου φυσικά αντικαθιστάτε το makrinari-entolis με την αντίστοιχη εντολή της διανομής που σας έδειξα παραπάνω. Α… και μην ξεχάσετε το σύμβολο «I» (pipe) πριν την less
Εξαγωγή σε αρχείο:
H μέθοδος μοιάζει με την προηγούμενη στο ότι προσθέτουμε πάλι ένα σύμβολο > μετά το makrinari-entolis και προσθέτουμε και ένα όνομα αρχείου στο οποίο θέλουμε να αποθηκευτούν τα αποτελέσματα.
makrinari-entolis > istoriko.txt
Δημιουργία μικρο-εφαρμογής
Είναι πολύ δύσκολο να θυμάται κανείς όλες τις παραμέτρους ειδικά για εντολές που θα τις εκτελεί μια στο τόσο. Οπότε μπορούμε να φτιάξουμε μια μικρή εφαρμογή και απλά να τρέχουμε αυτήν και όχι το makrinari-entolis
Ο τρόπος στους περισσότερα έμπειρους είναι γνωστός και το έχουμε δει αναλυτικά στο άρθρο «Φτιάξτε τις δικές σας εντολές«. Οπότε εδώ θα δούμε μόνο το ρεζουμε.
Δημιουργείστε ένα αρχείο με ότι όνομα θα σας θυμίζει «το ιστορικό εγκατάσταση/ πότε έκανα εγκατάσταση τις εφαρμογές» και προσθέστε τον παρακάτω κώδικα:
#!/bin/bash makrinari-entolis
όπου αντικαθιστάτε το makrinari entolis με την αντίστοιχη εντολή, όπως είπαμε παραπάνω.
Αποθηκεύστε το αρχείο, μετατρέψτε το σε εκτελέσιμο και τρέξτε το όπως είδαμε στο αντίστοιχο άρθρο.
Για μελέτη:
for f in /var/log/dpkg.log*; do GREP=’grep’; file «$f»|grep -qwi compressed && GREP=’zgrep’; $GREP –color=auto -w install «$f»; done
Μαύρη μαγεία ! :P
^^ –color=auto
sudo rm /var/log/dpkg.log*
Τώρα πώς θα το δεις;
Για ποιο λόγο να το κάνεις αυτό;; Εκτός αν έχεις πρόβλημα με το apt δε βλέπω άλλο λόγο.
Δεν έπιασες το αστείο μάλλον…. ρε Bill… εννοείται δεν το κάνεις αυτό.
Αντί για
cmd | less
μπορείς και
cmd | more
δεν θυμάμαι που, νομίζω σε ένα γυμνό debian, δεν είχε μέσα less ( :-O )
Ναι γίνεται και καλά κάνεις και το αναφέρεις.