Το εργαλείο dpkg

Εικόνα: markos
Submitted by markos on Δευ, 05/03/2007 - 01:11

Για την εγκατάσταση ή απεγκατάσταση των πακέτων, το βασικό εργαλείο είναι η εντολή dpkg. Αυτή αναλαμβάνει να κάνει τους ελέγχους για τις εξαρτήσεις των πακέτων, να τοποθετήσει τα αρχεία στις σωστές τους θέσεις, να εκτελέσει πιθανά σενάρια κελύφους για τη ρύθμιση ή απορύθμιση του πακέτου και να εκκινήσει ακόμη κάποια προγράμματα-δαίμονες (daemons).

Βασικές λειτουργίες

Το εργαλείο dpkg έχει σχεδιαστεί για χρήση από την γραμμή εντολών του κελύφους μόνον. Για το λόγο αυτό δέχεται μια πληθώρα από επιλογές και παραμέτρους. Στο παρόν κείμενο, θα αναφερθούμε μόνο στις πιο σημαντικές από αυτές.
Γενικά η σύνταξη είναι η εξής:

dpkg [OPTIONS] ACTION packagename | filename

όπου packagename το όνομα του πακέτου ενώ filename το όνομα του αρχείου κάποιου πακέτου (όπως αναφέρθηκε σε προηγούμενη παράγραφο), ACTION το είδος της εργασίας που θέλουμε να πραγματοποιήσουμε με το πακέτο και ως επιλογές έχουμε τις εξής:

Επιλογές
Λειτουργία
-B
--auto-deconfigure
Όταν απεγκαθιστούμε κάποιο πακέτο, το dpkg αυτομάτως απορυθμίζει (deconfigure) όσα πακέτα εξαρτώνται από αυτό.
--force-depends Η ομάδα των επιλογών --force-*, επιβάλει στο dpkg την εργασία που του δώσαμε, ακόμη και αν οι συνθήκες αποτρέπουν κάτι τέτοιο. Η συγκεκριμένη --force-depends, επιβάλει την εγκατάσταση/απεγκατάσταση ενός πακέτου ακόμη και αν δεν ικανοποιούνται οι εξαρτήσεις των υπολοίπων πακέτων με την εργασία αυτή.
--force-overwrite Η επιλογή αυτή αντικαθιστά αρχεία στο σύστημα που παρέχονται από άλλο πακέτο.
--force-downgrade Εγκαθιστά το πακέτο ακόμη και αν είναι εγκατεστημένη νεώτερη έκδοση.
--force-conflicts Εγκαθιστά το πακέτο ακόμη και αν είναι ασύμβατο με κάποιο άλλο εγκατεστημένο.
--force-all Χρησιμοποιεί όλες τις παραπάνω και ακόμη περισσότερες επιλογές --force-xxx. Αποφύγετε τη χρήση της επιλογής αυτής.
--no-act Προσποιείται τη διαδικασία χωρίς στην πραγματικότητα να κάνει κάποια εγκατάσταση/απεγκατάσταση στο σύστημα.

Γενικά οι επιλογές --force-* θα πρέπει να αποφεύγονται, καθώς είναι πολύ εύκολο να καταστρέψετε το σύστημά σας με κάποια λάθος εγκατάσταση ή απεγκατάσταση κάποιου βασικού πακέτου.

Ως ACTION μπορούμε να χρησιμοποιήσουμε μία από τις ακόλουθες:

Εργασία
Λειτουργία
-i
--install
Εγκαθιστά το πακέτο που περιέχεται στο αρχείο filename.
-r
--remove
Απεγκαθιστά το πακέτο packagename (σημ. Χρειάζεται μόνο το όνομα του πακέτου). Η απεγκατάσταση εννοεί την διαγραφή και όλων των αρχείων του πακέτου πλην των αρχείων παραμετροποίησης (configuration files) τα οποία διατηρούνται για πιθανή μελλοντική χρήση.
--purge Όπως η -r, αλλά διαγράφει και τα αρχεία παραμετροποίησης.
--configure Ολοκληρώνει την εγκατάσταση κάποιου πακέτου που για κάποιο λόγο δεν είχε ολοκληρώσει την εγκατάστασή του.
-l
--list
Παρουσιάζει τη λίστα των εγκατεστημένων πακέτων (δέχεται μια κανονική παράσταση ως παράμετρο).
-s
--status
Παρουσιάζει πληροφορίες για κάποιο εγκατεστημένο πακέτο.
-S
--search
Αναζητά το εγκατεστημένο πακέτο που περιέχει το ζητούμενο αρχείο.
-L
--list-contents
Παρουσιάζει τη λίστα των αρχείων ενός εγκατεστημένου πακέτου.
-C
--audit
Εμφανίζει τα πακέτα των οποίων η εγκατάσταση δεν έχει ολοκληρωθεί και αν είναι δυνατόν εμφανίζει τις αιτίες.
-c
--contents
Εμφανίζει τη λίστα των αρχείων του πακέτου που περιέχεται στο αρχείο filename (αντίστοιχη της -L).
-I
--info
Εμφανίζει πληροφορίες για το πακέτο που περιέχεται στο αρχείο filename (αντίστοιχη της -s).

Ακολουθούν μερικά παραδείγματα της χρήσης του dpkg.
Για να μάθουμε ποια πακέτα υπάρχουν στο Debian διαθέσιμα, των οποίων το όνομα αρχίζει με vim:

# dpkg -l 'vim*'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name                         Version                      Description
+++-============================-============================-=================
ii  vim                          6.1-320+1                    Vi IMproved - enhanced vi editor
pn  vim-gtk                      <none>                       (no description available)
pn  vim-perl                     <none>                       (no description available)
pn  vim-python                   <none>                       (no description available)
un  vim-rt                       <none>                       (no description available)
pn  vim-ruby                     <none>                       (no description available)
pn  vim-scripts                  <none>                       (no description available)
pn  vim-tcl                      <none>                       (no description available)
un  vim-tiny                     <none>                       (no description available)
un  vim-tty                      <none>                       (no description available)

Αντίθετα, για μάθουμε ποιο πακέτο του vim είναι εγκατεστημένο στο σύστημά μας μπορούμε να χρησιμοποιήσουμε την εξής:

# dpkg -l |grep vim
ii  vim            6.1-320+1      Vi IMproved - enhanced vi editor

Για να διαγράψουμε το πακέτο elvis (ένας κειμενογράφος τύπου vi), μπορούμε να γράψουμε το εξής:

# dpkg -r elvis

Για να εγκαταστήσουμε ένα πακέτο:

# dpkg -i vim_4.5-3.deb

Μια χρήσιμη εντολή σε περίπτωση που έχουμε υποψίες για κάποια πακέτα, π.χ. μπορεί να μην έχουν εγκατασταθεί σωστά, ή μπορεί το σύστημα να μας έχει ειδοποιήσει ανάλογα, είναι ο συνδυασμός της configure και της --audit. Στην ουσία, ολοκληρώνει την εγκατάσταση όλων των πακέτων που δεν έχουν για κάποιο λόγο εγκατασταθεί πλήρως.

# dpkg --configure --audit

Η παρακάτω εντολή θα μας δώσει το εξής αποτέλεσμα (αν φυσικά είναι εγκατεστημένος ο vim):

# dpkg -s vim
Package: vim
Status: install ok installed
Priority: optional
Section: editors
Installed-Size: 14848
Maintainer: Luca Filipozzi <lfilipoz@debian.org>
Version: 1:6.1-320+1
Replaces: vim-rt, vim-tiny (<< 6.0), vim-perl (<< 6.0), vim-python (<< 6.0),
vim-tcl (<< 6.0), vim-tty (<< 6.0), vim-gtk (<< 6.0)
Provides: editor, vim-rt
Depends: libc6 (>= 2.3.1-1), libgpmg1 (>= 1.19.6-1), libncurses5 (>= 5.3.20021109-1)
Pre-Depends: dpkg (>= 1.6.8)
Suggests: ctags
Conflicts: vim-rt, vim-tiny (<< 6.0), vim-perl (<< 6.0), vim-python (<< 6.0),
vim-tcl (<< 6.0), vim-tty (<< 6.0), vim-gtk (<< 6.0)
Conffiles:
 /etc/vim/gvimrc b0b75c84c84ac6a3397316a6e0876f97
 /etc/vim/vimrc 6ad2e5a7195e1d055392627a9fe42ec5
Description: Vi IMproved - enhanced vi editor
 Vim is an almost compatible version of the UNIX editor Vi.  Many new
 features have been added: multi level undo, syntax highlighting,
 command line history, on-line help, filename completion, block operations,
 folding, unicode support, etc.

Το ίδιο αποτέλεσμα θα έχουμε αν εκτελέσουμε την εντολή:

# dpkg --info vim_4.5-3.deb

Εκτελώντας την εντολή dpkg με παράμετρο -L, θα μας τυπώσει τη λίστα αρχείων του vim:

# dpkg -L vim
/.
/usr
/usr/bin
/usr/bin/vim
/usr/bin/vimtutor
/usr/bin/xxd
/usr/share
/usr/share/man
...

Και το ίδιο αποτέλεσμα θα έχουμε με την εντολή:

# dpkg -c vim_4.5-3.deb

Αν υποθέσουμε ότι θέλουμε να μάθουμε σε ποιο (εγκατεστημένο) πακέτο βρίσκεται κάποιο συγκεκριμένο αρχείο, μπορούμε να χρησιμοποιήσουμε την εξής εντολή:

# dpkg -S /usr/bin/vim
vim: /usr/bin/vim

Περισσότερες πληροφορίες για την εντολή dpkg μπορείτε να βρείτε στη σελίδα οδηγιών της.

0
Your rating: None