Πώς να ξέρετε ποιες εφαρμογές εξαρτώνται από το πακέτο X

Αυτό το σύντομο mini-tutorial εμφανίζεται ως απάντηση στην ανησυχία ενός από τους αναγνώστες μας, Felipe, που μας έγραψε ρωτώντας: «Πώς μπορώ να ξέρω ποιες εφαρμογές χρησιμοποιούν Java;«. Λοιπόν, δεν νομίζω ότι υπάρχει τρόπος να το ξέρεις, αλλά υπάρχει ένας απλός τρόπος να το ξέρεις ποια πακέτα (δηλαδή ποιες εφαρμογές) παρατίθενται στα αποθετήρια εξαρτώνται από τα πακέτα JAVA. Η ίδια μέθοδος μπορεί να χρησιμοποιηθεί για οποιοδήποτε άλλο πακέτο, για παράδειγμα για να μάθετε από ποιες εφαρμογές εξαρτώνται MONO.


Το πιο συνηθισμένο είναι να μάθετε ποια άλλα πακέτα πρέπει να εγκατασταθούν για να λειτουργήσει καλά το πακέτο X. Αυτά τα απαιτούμενα πακέτα ονομάζονται εξαρτήσεις και μπορούν να βρεθούν ως εξής:

Το apt-cache εξαρτάται από το mypackage 

Μπορείτε επίσης να μεταβείτε στο Synaptic, να βρείτε το πακέτο, να το κάνετε κάντε δεξί κλικ πάνω του> Ιδιότητες> Εξαρτήσεις.

Ωστόσο, ο στόχος αυτής της ανάρτησης είναι να μάθετε ακριβώς το αντίστροφο: ποια πακέτα έχουν πακέτο X ως εξάρτηση. Με άλλα λόγια, σε αυτήν την περίπτωση γνωρίζουμε το πακέτο "μητέρα" και θέλουμε να μάθουμε τι άλλα πακέτα απαιτούν να εγκατασταθεί αυτό το πακέτο "μητέρα" για να λειτουργήσει.

Ας προχωρήσουμε στο παράδειγμα για να κατανοήσουμε καλύτερα το θέμα. Ας δούμε πώς να εντοπίσουμε πακέτα που εξαρτώνται από το πακέτο openjdk-6-jre. Δηλαδή, πώς να εντοπίζετε αυτές τις εφαρμογές που αναφέρονται στα αποθετήρια, οι οποίες εξαρτώνται από το JAVA.

Άνοιξα ένα τερματικό και έγραψα:

apt-cache rdependens openjdk-6-jre 

Θα εμφανιστεί μια μεγάλη λίστα πακέτων, συμπεριλαμβανομένων των OpenOffice, FreeMind, OpenCol κ.λπ.

Πώς να βρείτε το σωστό πακέτο "μητέρα";

Εντάξει, τόσο εύκολο, αλλά πώς μπορώ να μάθω ποιο είναι το πακέτο "μητέρα" με βάση το οποίο πρέπει να αναζητήσω; Λοιπόν, αυτό απαιτεί κάποια εμπειρία και προηγούμενη ανάλυση.

Ας υποθέσουμε ότι θέλω να μάθω όλες τις εφαρμογές που βασίζονται στο MONO. Σε αυτήν την περίπτωση, αυτό που έκανα ήταν να αναζητήσω τις εξαρτήσεις μιας εφαρμογής (GBrainy) που γνωρίζω ότι χρησιμοποιεί το MONO και, βάσει αυτού, εντοπίζει το πακέτο "μητέρα" και αναζητήστε τις αντίστροφες εξαρτήσεις. Φαίνεται δύσκολο, αλλά είναι ανοησία.

Άνοιξα ένα τερματικό και έγραψα:

Το apt-cache εξαρτάται από τον εγκέφαλο

Τα αποτελέσματα είναι τα εξής:

  Εξαρτάται: μονο-χρόνος εκτέλεσης
 Εξαρτάται: libc6
 Εξαρτάται: libc6.1
  Εξαρτάται: libc0.1
  Εξαρτάται: libglib2.0-cil
  Εξαρτάται: libgtk2.0-0
  Εξαρτάται: libgtk2.0-cil
  Εξαρτάται: liblaunchpad-integration1.0-cil
  Εξαρτάται: libmono-addins-gui0.2-cil
  Εξαρτάται: libmono-addins0.2-cil
  Εξαρτάται: libmono-cairo2.0-cil
  Εξαρτάται: libmono-corlib2.0-cil
  Εξαρτάται: libmono-posix2.0-cil
  Εξαρτάται: libmono-system2.0-cil
  Εξαρτάται: librsvg2-2
  Εξαρτάται: mono-csharp-shell

Μου φάνηκε ότι το μονο-runtime θα μπορούσε να είναι καλός υποψήφιος, γι 'αυτό αποφάσισα να ψάξω για όλα τα πακέτα που εξαρτώνται από το μονο-runtime:

Το apt-cache εξαρτάται από το μονο-χρόνο εκτέλεσης

Βόιλα! Εμφανίζονται όλα τα πακέτα που χρησιμοποιούν το MONO.

Για να δείτε μια πλήρη λίστα όλων των πακέτων που εξαρτώνται από κάποιο πακέτο MONO, θα μπορούσαμε να γράψουμε:

apt-cache rdepends mono *
Σημείωση: αυτή η μέθοδος λειτουργεί μόνο για τις εφαρμογές που παρατίθενται στα αποθετήρια APT.
Ευχαριστώ Φέλι!

Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   Φελίπε Μπέκερα dijo

    Ευχαριστώ που απαντήσατε στον Pablo και ευχαριστώ για την ανάρτηση 🙂

  2.   Σάιτο Μόρντραγκ dijo

    Πάμπλο είσαι το είδωλό μου!

    Εξαιρετική θέση.

  3.   Ας χρησιμοποιήσουμε το Linux dijo

    Μεγάλος! Ευχαριστώ για τα δεδομένα!

  4.   τέλεια dijo

    Για όσους από εμάς χρησιμοποιούν ακαθάριστες διανομές ………… αστείο

    Για όσους χρησιμοποιούν διαχειριστές πακέτων με βάση το RPM χρησιμοποιείται αυτή η εντολή

    πακέτα rpm -qR

    Παράδειγμα:

    linux @ dhcppc3: ~> rpm -qR xmms
    / Bin / sh
    / Bin / sh
    rpmlib (PayloadFilesHavePrefix) <= 4.0-1
    rpmlib (CompressedFileNames) <= 3.0.4-1
    libICE.so.6
    libSM.so.6
    libX11.so.6
    libXxf86vm.so.1
    libc.so.6
    libc.so.6 (GLIBC_2.0)
    libc.so.6 (GLIBC_2.1)
    libc.so.6 (GLIBC_2.3)
    libc.so.6 (GLIBC_2.3.4)
    libc.so.6 (GLIBC_2.4)
    libc.so.6 (GLIBC_2.7)
    libdl.so.2
    libdl.so.2 (GLIBC_2.0)
    libdl.so.2 (GLIBC_2.1)
    libgdk-1.2.so.0
    libglib-1.2.so.0
    libgthread-1.2.so.0
    libgtk-1.2.so.0
    libpthread.so.0
    libpthread.so.0 (GLIBC_2.0)
    libpthread.so.0 (GLIBC_2.1)
    libpthread.so.0 (GLIBC_2.3.2)
    libxmms.so.1
    rpmlib (PayloadIsLzma) <= 4.4.6-1