Skip to main content

Βρείτε τις Κοινόχρηστες Βιβλιοθήκες ενός Προγράμματος με την εντολή "ldd"

Hellmaster 1992 Ολόκληρη Ταινία Τρόμου με Ελληνικούς Υπότιτλους (Ιούνιος 2026)

Hellmaster 1992 Ολόκληρη Ταινία Τρόμου με Ελληνικούς Υπότιτλους (Ιούνιος 2026)
Anonim

Χρησιμοποιήστε το ldd εντολή για την εμφάνιση των κοινόχρηστων βιβλιοθηκών που απαιτούνται από οποιοδήποτε πρόγραμμα - χρήσιμη για την επεξεργασία όταν υπάρχει έλλειψη εξάρτησης. Η εντολή περιέχει επίσης λίστες λειτουργιών και αντικειμένων που λείπουν.

ldd Command Syntax

Παρατηρήστε τη σωστή σύνταξη της εντολής ldd για να αποφύγετε σφάλματα:

ldd ΕΠΙΛΟΓΗ … ΑΡΧΕΙΟ …

Χρησιμοποιήστε έναν ή περισσότερους από τους διαθέσιμους διακόπτες εντολών ldd, που έχουν εισαχθεί στο ΕΠΙΛΟΓΗ σημείο στην παραπάνω εντολή:

--help | εκτυπώστε αυτή τη βοήθεια και βγείτε --version | εκτυπώστε πληροφορίες έκδοσης και έξοδο -d, --εγκαταστάσεις | μετεγκαταστάσεις δεδομένων διεργασίας -r, - λειτουργίες-επανατοποθετήσεις | επεξεργασία δεδομένων και μετεγκαταστάσεις λειτουργιών -u, - αχρησιμοποίητο | εκτυπώστε τις αχρησιμοποίητες άμεσες εξαρτήσεις -v, --verbose | εκτυπώστε όλες τις πληροφορίες

Πώς να χρησιμοποιήσετε την εντολή ldd

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

$ ldd -v / διαδρομή / στο / πρόγραμμα / εκτελέσιμο

Η έξοδος εμφανίζει πληροφορίες έκδοσης καθώς και τις διαδρομές και διευθύνσεις στις κοινόχρηστες βιβλιοθήκες, όπως αυτή:

$ ldd libshared.so linux-vdso.so.1 => (0x00007fff26ac8000) libc.so.6 => /lib/libc.so.6 0x00007ff1df55a000) /lib64/ld-linux-x86-64.so.2 (0x00007ff1dfafe000)

Εάν το αρχείο SO δεν υπάρχει καθόλου, μπορείτε να βρείτε τις ελλείπουσες βιβλιοθήκες χρησιμοποιώντας την ακόλουθη εντολή:

$ ldd -d διαδρομή / προς / πρόγραμμα

Η έξοδος είναι παρόμοια με τα ακόλουθα:

linux-vdso.so.1 (0x00007ffc2936b000) /home/gary/demo/garylib.so => ​​not foundlibc.so.6 => usr / lib / libc.so.6 (0x00007fd0c6259000) /lib64/ld-linux-x86-64.so.2 (0x00007fd0c65fd000)

Ποτέ μην εκτελείτε την εντολή ldd σε ένα μη αξιόπιστο πρόγραμμα, επειδή το ldd μπορεί να το εκτελέσει. Αντ 'αυτού, χρησιμοποιήστε μια ασφαλέστερη εναλλακτική λύση που δείχνει μόνο τις άμεσες εξαρτήσεις και όχι ολόκληρη την εξάρτηση:

$ objdump -p / διαδρομή / σε / πρόγραμμα | grep NEEDED

Πώς να βρείτε τη διαδρομή σε μια εφαρμογή

Πρέπει να δώσετε την πλήρη διαδρομή σε μια εφαρμογή, αν θέλετε να βρείτε τις εξαρτήσεις της με το ldd, το οποίο μπορείτε να κάνετε με διάφορους τρόπους.

Για παράδειγμα, με αυτόν τον τρόπο θα βρείτε τη διαδρομή προς τον Firefox:

$ find / -name firefox

Το πρόβλημα με την εντολή εντοπισμού, ωστόσο, είναι ότι δεν θα εμφανίζεται μόνο το εκτελέσιμο αλλά παντού που βρίσκεται ο Firefox, όπως παρακάτω:

  • /etc/skel/.mozilla/firefox
  • / home // cache / mozilla / firefox
  • /home//.mozilla/firefox
  • / usr / bin / Firefox
  • / usr / lib / Firefox
  • / usr / lib / Firefox / Firefox

Αυτή η προσέγγιση είναι λίγο υπερβολική και ίσως χρειαστεί να χρησιμοποιήσετε την εντολή sudo για να αυξήσετε τα προνόμιά σας, αλλιώς πιθανόν να λάβετε πολλά λάθη που δεν επιτρέπονται από δικαιώματα.

Είναι αντίθετα πολύ πιο εύκολο να χρησιμοποιήσετε την εντολή whereis για να βρείτε τη διαδρομή μιας εφαρμογής:

$ whereis firefox

Αυτή τη φορά η έξοδος μπορεί να φαίνεται ως εξής:

/ usr / bin / firefox

/ etc / firefox

/ usr / lib / firefox

Το μόνο που έχετε να κάνετε τώρα για να βρείτε τις κοινές βιβλιοθήκες για τον Firefox είναι να πληκτρολογήσετε την ακόλουθη εντολή:

$ ldd / usr / bin / firefox

Η έξοδος από την εντολή θα είναι κάτι σαν αυτό:

linux-vdso.so.1 (0x00007ffff8364000)libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007feb9917a000)libdl.so.2 => /usr/lib/libdl.so.2 (0x00007feb98f76000)libstdc ++. so.6 => /usr/lib/libstdc++.so.6 (0x00007feb98bf4000)libm.so.6 => /usr/lib/libm.so.6 (0x00007feb988f6000)libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007feb986e0000)libc.so.6 => /usr/lib/libc.so.6 (0x00007feb9833c000)/lib64/ld-linux-x86-64.so.2 (0x00007feb99397000)

Το Linux-vdso.so.1 είναι το όνομα της βιβλιοθήκης και ο δεκαεξαδικός αριθμός είναι η διεύθυνση όπου θα φορτωθεί η βιβλιοθήκη στη μνήμη.

Θα παρατηρήσετε σε πολλές από τις άλλες γραμμές ότι το σύμβολο => ακολουθείται από μια διαδρομή. Αυτή είναι η πορεία προς το φυσικό δυαδικό. ο δεκαεξαδικός αριθμός είναι η διεύθυνση όπου θα φορτωθεί η βιβλιοθήκη.