Hits : 6161

PACkage Organizer :: Mini How To 


Contents


Paco


http://paco.sourceforge.net/

http://paco.sourceforge.net/doc/README

Paco is a source code package organizer for Unix/Linux systems.

latest version: 2.0.7 (30/08/2009)

Ο καλύτερος τρόπος για να εγκαταστήσεις ένα πρόγραμμα και κυρίως μία υπηρεσία είναι όταν
μεταγλωττίζεις τον πηγαίο κώδικα της εφαρμογής σύμφωνα με τις ανάγκες που πρέπει να καλύψεις.
Δυστυχώς όμως όταν πραγματοποιείς την εγκατάσταση ενός προγράμματος από τον πηγαίο κώδικά του,
δεν γνωρίζεις ποια είναι τα ακριβή αρχεία που εγκαταστήθηκαν στο μηχάνημά σου και που ακριβώς πέρασαν.

Το λογισμικό paco (PACkage Organizer) καταγράφει (wraps) το αποτέλεσμα (τις αλλαγές στο σύστημα αρχείων)
που προκύπτει από την εγκατάσταση ενός προγράμματος από τον πηγαίο του κώδικα. Τα περισσότερα
προγράμματα που γίνονται εγκατάσταση από πηγαίο κώδικα πραγματοποιούν την εγκατάσταση στο σύστημα
αρχείων με την εντολή make install. Το λογισμικό paco έχει την δυνατότητα καταγραφής σε μορφή logs
όλων των αρχείων που γίνονται εγκατάσταση καθώς και την ακριβή διαδρομή τους.

Μερικές από τις δυνατότητες που έχει είναι οι εξής:


top

Installation


$ wget -c http://heanet.dl.sourceforge.net/sourceforge/paco/paco-2.0.7.tar.bz2
$ tar jxvf paco-2.0.7.tar.bz2
$ ./configure --disable-gpaco --enable-scripts
$ make


Κι εδώ γινόμαστε διαχειριστές:

# make install


Και για να καταγράψουμε και την εγκατάσταση του paco:

# make logme


Με τις παραπάνω εντολές έχουμε εγκαταστήσει το paco στον υπολογιστή μας.

ΥΠΟΣΗΜΕΙΩΣΗ:
Η επιλογή disable-gpaco ΔΕΝ μας κάνει εγκατάσταση του gui εργαλείου του paco.
Ο λόγος που ΔΕΝ το χρησιμοποιώ είναι γιατί θέλει πλήθος από gtk libraries.

top

Simple Usage


Default Path of paco logs: /var/log/paco/

Για να δούμε εάν δουλεύει μπορούμε (και καλό είναι) να το χρησιμοποιήσουμε
στην μόλις εγκατεστημένη εφαρμογή μας, δλδ το ίδιο το paco.
Ως διαχειριστές πληκτρολογούμε:

$ paco -lD make install


Για να ελέγξουμε ότι η εγκατάσταση πραγματοποιήθηκε και πλέον έχει γίνει καταγραφή
όλων των αρχείων του προγράμματος πληκτρολογούμε τις παρακάτω εντολές:

$ paco -a 
paco-2.0.7

$ paco -f paco
paco-2.0.7:
/usr/local/share/paco/README
/usr/local/lib/libpaco-log.a
/usr/local/lib/libpaco-log.la
/usr/local/lib/libpaco-log.so
/usr/local/lib/libpaco-log.so.0
/usr/local/lib/libpaco-log.so.0.0.0
/usr/local/bin/paco
/usr/local/etc/pacorc
/usr/local/lib/pkgconfig/paco.pc
/usr/local/man/man5/pacorc.5
/usr/local/man/man8/paco.8
/usr/local/man/man8/pacoball.8
/usr/local/man/man8/rpm2paco.8
/usr/local/man/man8/superpaco.8
/usr/local/share/paco/faq.txt
/usr/local/share/paco/pacorc
/usr/local/bin/ocap
/usr/local/bin/pacoball
/usr/local/bin/rpm2paco
/usr/local/bin/superpaco


top

Basic Options

Synchronize Database


Το πρόγραμμα paco διατηρεί μία βάση την οποία πρέπει να ενημερώνουμε συχνά (τουλάχιστον ανά 7 ημέρες).
Με αυτό τον τρόπο πραγματοποιείται ο συγχρονισμός του αρχείου καταγραφής με το σύστημα αρχείων για
το πρόγραμμα που έχουμε ήδη καταγράψει. Εάν για παράδειγμα ένα αρχείο έχει συμπιεστεί (bzip / gzip) θα το
εντοπίσει επίσης. Η εντολή για να πραγματοποιήσουμε update για όλα τα logs (δλδ για όλα τα προγράμματα
που έχουμε καταγράψει) είναι η εξής:

# paco -ua


Επίσης είναι αρκετά χρήσιμο να μπει ένα cronjob ώστε να γίνεται αυτόματα:

# crontab -l
30 0 * * 0 /usr/local/bin/paco -ua


ή εναλλακτικά:

@weekly /usr/local/bin/paco -ua


top

Listing Software


Φυσικά ο λόγος που έχουμε εγκαταστήσει το paco είναι για να καταγράφουμε τις εγκαταστάσεις μας
και να είμαστε σε θέση να βλέπουμε και να ενημερώνουμε ανά πάσα στιγμή τυχόν αλλαγές. Για να μπορέσουμε
να δούμε όλα τα προγράμματα που έχουμε καταγράψει πληκτρολογούμε:

$ paco -a


Με αυτό τον τρόπο θα δούμε το σύνολο των προγραμμάτων σε λίστα. Εάν επιθυμούμε να δούμε σε μία μονο στήλη
τα αποτελέσματα της παραπάνω εντολής τότε χρειάζεται να πληκτρολογήσουμε το εξής:

$ paco -a1


Από τα πιο χρήσιμα και λειτουργικά options που έχει το paco είναι ότι μπορούμε να ταξινομήσουμε την λίστα με το λογισμικό που έχουμε εγκαταστήσει
με βάση την ημερομηνία (και εάν θέλουμε και την ώρα). Έτσι εάν χρησιμοποιούμε προγράμματα από κάποιο version control ή δεν έχουμε καταγράψει
το πρόγραμμα με βάση την έκδοσή του, μπορούμε εύκολα να δούμε με μια ματιά πότε πραγματοποιήσαμε την εγκατάσταση του προγράμματος.
Για να το κάνουμε αυτό, πολύ απλά γράφουμε:

$ paco -add --sort=date


Το αποτέλεσμα είναι κάτι σαν το παρακάτω:

Formatter "highlight/html" not found

top

Listing Files


Μέχρι στιγμής έχουμε δει πως μπορούμε να συγχρονίσουμε την βάση των εγκατεστημένων προγραμμάτων
και πως να δούμε όλα τα προγράμματα που έχουμε εγκαταστήσει. Φυσικά το πιο σημαντικό από όλα είναι
να εντοπίσουμε όλα τα αρχεία τα οποία εγκαταστήθηκαν για ένα συγκεκριμένο πρόγραμμα. Για να γίνει αυτό
χρειάζεται να πληκτρολογήσουμε την παρακάτω εντολή:

$ paco -f openldap


Η παραπάνω εντολή θα μας εμφανίσει όλα τα αρχεία που έχουμε καταγράψει κατά την εγκατάσταση. Δηλώνει όμως ότι
έχουμε εγκατεστημένο μόνο μία έκδοση του παραπάνω προγράμματος. Πιο σωστά πρέπει να γράψουμε το εξής:

$ paco -f openldap-2.3.39


Εάν θέλουμε να δούμε πόσα αρχεία έχουμε εγκαταστήσει για ένα πρόγραμμα:

$ paco -F paco
20  paco-2.0.7


Εάν θέλουμε να δούμε ποια είναι η έκδοση του προγράμματος που έχουμε εγκαταστήσει ή εάν έχουμε εγκαταστήσει και
καταγράψει παραπάνω από 2 εκδόσεις χρειάζεται να κάνουμε expand το όνομα από την βάση. Αυτό γίνεται εύκολα ως εξής:

$ paco -x php
php-4.4.7  php-5.2.5

$ paco -f php-5.2.5


top

Shared Files


Εάν θέλουμε να δούμε μήπως υπάρχει κάποιο αρχείο το οποίο "μοιραζόμαστε" με ένα άλλο πρόγραμμα:
$ paco -fc php
php-5.2.4:
/usr/local/apache2/conf/httpd.conf

$ paco -fc httpd-2.0.61
httpd-2.0.61:
/usr/local/apache2/conf/httpd.conf


και γενικά εάν θέλουμε να δούμε για ένα πρόγραμμα το αρχείο το οποίο "μοιραζόμαστε"
με άλλο πρόγραμμα:

$ paco -fcw php-5.2.4
php-5.2.4:
(httpd-2.0.61)
/usr/local/apache2/conf/httpd.conf


Και τελικά εάν θέλουμε να δούμε και το μέγεθος του αρχείου που "μοιραζόμαστε":

$ paco -fcws php
php-5.2.4:
(httpd-2.0.61)
 36k  /usr/local/apache2/conf/httpd.conf


top

Usefull Options


Παρακάτω θα περιγράψω μερικά από τα πιο σημαντικά option του paco.

Ημερομηνία εγκατάστασης:

$ paco -d php-5.2.5
29-Nov-2007  php-5.2.5


Ημερομηνία και ώρα:

$ paco -dd paco
01-Sep-2008 18:46  paco-2.0.5


Μέγεθος που έχουν καταλάβει τα εγκαταστημένα αρχεία:

$ paco -s php-5.2.5
44M  php-5.2.5


Μέγεθος κάθε αρχείου:

$ paco -fs php-5.2.5
 36k  /usr/local/apache2/conf/httpd.conf
 36k  /usr/local/apache2/conf/httpd.conf.bak
 20M  /usr/local/apache2/modules/libphp5.so
...
  4k  /usr/local/share/man/man1/php-config.1
 12k  /usr/local/share/man/man1/php.1
  4k  /usr/local/share/man/man1/phpize.1


Πληροφορίες εγκατεστημένου προγράμματος:

$ paco -i glib-2.21.6
-------------
 glib-2.21.6 
-------------

Name:     GLib
Version:  2.21.6
Summary:  C Utility Library


ή εάν υπάρχουν παραπάνω από μία εκδόσεις:

$ paco -i php
-----------
 php-5.2.4 
-----------

Name:     php
Version:  5.2.4

-----------
 php-4.4.8 
-----------

Name:     php
Version:  4.4.8


Πληροφορίες ρύθμισης (είναι το configuration από τον πηγαίο κώδικα):

paco -o pidgin
--disable-screensaver --disable-vv --disable-meanwhile --disable-nm --disable-tcl


Μετά από κάθε update της database του paco, μπορεί να εντοπιστεί κάποιο αρχείο να λείπει (πιθανά κάποιο λανθασμένο rm):
Με την παρακάτω εντολή βλέπουμε τον αριθμό που λείπουν:

$ paco -M elinks
[1]  elinks-0.11.4


βλέπουμε λείπει ένα αρχείο, για να δούμε ποιο:

paco -m elinks
elinks-0.11.4:
/usr/local/bin/elinks


top

Εγκατάσταση / Απεγκατάσταση Λογισμικού


Για να γίνει η καταγραφή και εγκατάσταση ενός προγράμματος χρειάζεται να 
ενεργοποιήσουμε την παράμετρο -l (log) στο paco. Εάν θέλουμε να δώσουμε
εμείς το όνομα της καταγραφής στην βάση του paco τότε χρησιμοποιούμε την παράμετρο
-p (package) και στην συνέχεια το όνομα που θέλουμε. Εάν θέλουμε να πάρει το όνομα
του καταλόγου τότε χρειάζεται να χρησιμοποιήσουμε την παράμετρο -D (dirname).

Για να γίνουνε όλα αυτά κατανοητά δείτε τα παρακάτω παραδείγματα:

# pwd
/usr/local/source/openldap-2.3.39
# paco -lp "open-ldap v2.3.39" make install


όπου θα κάνει την καταγραφή με όνομα αρχείου open-ldap v2.3.39
ή εναλλακτικά:

# pwd
/usr/local/source/openldap-2.3.39
# paco -lD make install


όπου θα γίνει η καταγραφή με όνομα: openldap-2.3.39

Για να απεγκαταστήσουμε ένα πρόγραμμα και ταυτόχρονα να διαγραφούν όλα τα αρχεία
τα οποία καταγράφτηκαν κατά την εγκατάσταση πληκτρολογούμε:

# paco -r openldap-2.3.39


ΠΡΟΣΟΧΗ:
Εάν υπάρχουν αρχεία τα οποία χρησιμοποιούνται από άλλο πρόγραμμα και έχουν καταγραφεί μέσω του paco ΔΕΝ
θα διαγραφούν και αυτά. Οπότε το έταιρο πρόγραμμά μας να συνεχίσει να λειτουργεί. Υπάρχει βέβαια παράμετρος
που διαγράφει και τα share files αλλά καλύτερα να την ψάξει κανείς μόνος του.

Εάν για οποιοδήποτε λόγο θέλει κάποιος να διαγράψει το αρχείο καταγραφής μίας εγκατάστασης από την βάση που
χρησιμοποιεί το πρόγραμμα paco τότε υπάρχει η παράμετρος -U (unlog) και παράδειγμα χρήσης είναι το εξής:

# paco -U openldap-2.3.39


top

Add a program to paco


Όταν έχουμε εγκαταστήσει ένα πρόγραμμα χωρίς την χρήση του paco
και θέλουμε να περάσουμε ένα νέο πρόγραμμα στην βάση του paco τότε
απλά τρέχουμε την εντολή find. Παράδειγμα:

$ find /opt/Adobe/ | paco -lp Adobe-8.1.2


οπότε στην συνέχεια:

$ paco -i Adobe-8.1.2
-------------
 Adobe-8.1.2 
-------------

Name:     Adobe
Version:  8.1.2

$ paco -F Adobe-8.1.2
440 Adobe-8.1.2


top

Upgrade paco


Πως μπορεί κανείς να κάνει αναβάθμιση του λογισμικού paco με το πρόγραμμα paco !
Κατεβάζουμε την νέα έκδοση του paco, έστω λοιπόν ότι έχουμε την έκδοση paco-2.0.3
και θέλουμε να αναβαθμίσουμε στην έκδοση 2.0.7:

$ wget -c http://heanet.dl.sourceforge.net/sourceforge/paco/paco-2.0.7.tar.bz2
$ tar jxvf paco-2.0.7.tar.bz2
$ cd paco-2.0.7
$ ./configure --disable-gpaco --enable-scripts
$ make
$ su -m -
# paco -rB paco-2.0.3
# make install
# make logme


εύκολο !

top

pacoball


Έαν έχετε κάνει την εγκατάσταση του paco με την επιλογή στο configuration enable-scripts τότε
έχετε εγκαταστήσει το pacoball. Το pacoball μας δίνει την δυνατότητα να πάρουμε ένα αντίγραφο της
εγκατάστασής από ένα πρόγραμμα που καταγράψαμε και εγκαταστήσαμε μέσω του paco. Αυτό μας δίνει
την ευκολία και του backup αλλά και την άμεση δημιουργία ενός πακέτου που μπορεί να χρησιμοποιηθεί
σε παρόμοια εγκατεστημένη διανομή (ειδικά σε συστήματα mirroring ή production που δεν έχουν compiler
και τα πάντα γίνονται στο development μηχάνημα !!!). Παράδειγμα χρήσης είναι το εξής:

Formatter "highlight/html" not found

top

superpaco


Με την εντολή superapaco μπορείς να καταγράψεις την εγκατάσταση ενός


ώστε τα αρχεία τους να προστεθούν στην βάση δεδομένων του paco. Είναι μία καλή λύση
ώστε να μπορούμε να εντοπίσουμε ένα αρχείο το οποίο μπορεί να είναι share από διαφορετικά προγράμματα.

Απλή η χρήση του :

$ sudo superpaco openvpn_2.0.9-8_i386.deb


και βλέπουμε ότι ενημερώθηκε η βάση ως:

$ paco -f openvpn | head

openvpn-2.0.9-8:
/etc/default/openvpn
/etc/init.d/openvpn
/etc/network/if-down.d/openvpn
/etc/network/if-up.d/openvpn
/etc/openvpn/update-resolv-conf
/usr/include/openvpn/openvpn-plugin.h
/usr/lib/openvpn/openvpn-auth-pam.so
/usr/lib/openvpn/openvpn-down-root.so
/usr/sbin/openvpn


top