kuinka LDD-komentoa käytetään Linuxissa

Mietitkö, miten LDD-komentoa käytetään Linuxissa?

Linux tarjoaa runsaasti joustavuutta, sillä sen avulla voit virittää järjestelmääsi tarpeidesi mukaan. Tämä tarkoittaa, että voit helposti käyttää järjestelmää terminaalin kautta. Lisäksi, voit hallita erilaisia parametreja ja pitää tarkistaa tiedostot jaettu ja käyttää eri ohjelmia järjestelmään.

yhden komennon avulla voit tunnistaa tietyn ohjelman käyttämät kirjastot. Tämä on Roland McGrathin ja Ulrich Drepperin kehittämä LDD-komento.

LDD (List Dynamic Dependencies) auttaa käyttäjää tunnistamaan eri suoritettaville tiedostoille jaettavat kirjaston riippuvuudet.

tämä opas auttaa sinua oppimaan LDD-komennon käytön Linuxissa.

joten pitemmittä puheitta, aloitetaan!

Kirjastotyypit.

kirjasto on tarkoin määritelty funktioiden, objektien, muuttujien, luokkien, tyyppimääritysten, ehtojen ja alirutiinien joukko, joka määrää tiedostojen ja ohjelmien toiminnan ilman, että lähdekoodia tarvitsee ylläpitää.

kirjastoja on kolmenlaisia:

  1. dynaamiset kirjastot: nämä ovat kirjastoja, joita käyttävät pienemmässä mittakaavassa kootut ohjelmat. Nimensä mukaisesti se ladataan dynaamisesti suoritushetkellä, joten yksittäistä kopiota käytetään dynaamisesti useiden ohjelmien ajamiseen.

tämä vähentää muistin kulutusta, mikä pienentää ohjelman kokoa ja parantaa suorituskykyä. Niissä on yleensä “.so” – laajennukset.

  1. staattiset kirjastot: näitä kirjastoja käyttävät kokonaiset ohjelmat. Ne linkittävät ohjelmia kääntämättä lähdekoodia uudelleen, mikä säästää aikaa. Nämä kirjastot sisältyvät erikseen sen toimintoja vaativiin ohjelmatiedostoihin. Niitä seuraa yleensä” .a ” – laajennus.
  2. jaetut kirjastot: nämä ovat yksilöllisesti asennettuja kirjastoja, joita ohjelmat käyttävät automaattisesti lyhennysvapaan yhteydessä. Ne voivat ohittaa tiettyjä osia olemassa olevasta kirjastosta, Kun ohjelma suorittaa tiettyjä tehtäviä. Plus, niitä voidaan käyttää ajon aikana meidän koodi tai ohjelma.

useimmat päivittäin käyttämämme suoritettavat tiedostot sisältävät jaettuja kirjastoja. LDD-komento listaa dynaamisen kirjaston riippuvuudet. Näitä kirjastoja käytetään uudelleen ja jaetaan ohjelmien kesken ohjelmien kehityksen helpottamiseksi ja niiden koon ja kuormituksen vähentämiseksi tietokoneen muistiin.

Linuxissa nämä tiedostot ovat” .so ” – laajennuksen muodossa ja niitä varastoidaan /usr/lib* tai yksinkertaisesti /lib*.

Linux-järjestelmien eri jakelut voivat paketoida ohjelmalle erilaisia kirjastoja, jolloin se toimii eri tavoin käyttöjärjestelmän eri versioissa. Kun ohjelman jaettu kirjasto ei ole käytettävissä järjestelmässäsi, saat virheen, joka voi näyttää tältä:

Sudo: error while loading shared libraries: libpthread.so.0:Cannot open shared object file: no such file or directory.

voimme sitten tarkistaa jaetuista kirjastoista tietyn ohjelman LDD-komennolla.

LDD-komennon asentaminen.

LDD-komento on luonnostaan saatavilla lähes jokaisessa Linux-jakelussa. Jos se ei ole, voit käyttää seuraavaa komentoa asentaa sen:

$ sudo apt-get install libc-bin

$ ldd komennolla on seuraava syntaksi:

$ ldd <options> <executable>

tai yleisemmin:

$ ldd -v /path/to/program/executable

LDD on perus, mutta voimakas komento. Se tarjoaa apua ja muita muunnelmia käyttämällä eri lippuja. Niitä kuvataan lyhyesti alla.

– version: näyttää käytössä olevan ldd-version.

-v --verbose: näyttää info taidokkaasti.

-u --unused: käyttämättömien riippuvuuksien näyttäminen.

-d --data-relocs: kadonneiden esineiden siirtäminen ja tunnistaminen.

-r --function-relocs: siirtää tietoobjekteja ja toimintoja sekä tunnistaa puuttuvat toiminnot tai objektit.

-help: auttaa komentojen käytössä.

käyttäen LDD-komentoa.

nyt kun olet suorittanut asennuksen, olet valmis opettelemaan LDD-komennon käyttöä Linuxissa. Esittelemme tämän yhdessä sen kanssa, miten se auttaa tunnistamaan jaetut kirjastot.

tutkimme jaettuja kirjastoja Bashille, joka on Linux-käyttöjärjestelmän tavallinen komentotulkki. Se on vastuussa komentojen suorittamisesta ja käyttöliittymän tarjoamisesta käyttäjän ja käyttöjärjestelmän välillä.

jos haluat käyttää LDD-komentoa, toimi seuraavasti:

  1. Aloita avaamalla Komentopääte painamalla näppäimistöllä Ctrl + Alt + T.
  2. Etsi polku seuraavaksi komennolla which tai whereis, jota seuraa LDD-komento kirjoittamalla seuraava:
$ which bash$ whereis bash$ ldd /usr/bin/bash
LDD-komento Linuxissa

kuten näet, jaettujen kirjastojen riippuvuudet ovat näkyvissä. Tarkempaa ja monimutkaisempaa yleiskuvaa varten käytä -v lippua $ ldd komennolla seuraavasti:

$ ldd -v /usr/bin/bash
LDD-komento Linuxissa

samoin voimme käyttää -u – lippua käyttämättömien riippuvuuksien näyttämiseen.

$ ldd -u /usr/bin/bash
-u-lippu

yllä olevassa tapauksessa ei ole käyttämättömiä riippuvuuksia. On aina suositeltavaa pitää silmällä, mitkä kirjastot ovat tyhjäkäynnillä ja kuluttavat muistia. Jos näin ei tehdä, kernel saattaa latautua käyttämättömillä tiedostoilla, mikä haittaa suorituskykyä. Olisi hyödyllistä tarkistaa artikkelimme siitä, miten vapaata tilaa Ubuntussa.

tietojen ja toimintojen siirroissa käytetään -d – ja -r – lippuja vastaavasti $ ldd – komennon rinnalla.

$ ldd -d /usr/bin/bash$ ldd -r /usr/bin/bash
LDD-komento Linuxissa

nämä liput auttavat myös tunnistamaan puuttuvat esineet ja toiminnot.

viimeisenä, mutta ei vähäisimpänä, voimme käyttää --help – lippua nopeaan kuulemiseen lipuista ja niiden toimista.

--ohjelippu

LDD-komennon rajoitukset.

on huomattava, että LDD-komento ei toimi ohjelmille, jotka eivät ole dynaamisesti suoritettavia, “a.out” jaetuille kirjastoille tai tiedostoille, jotka ovat vanhentuneita tai jotka on kehitetty ennen LDD: n julkaisua.

lopuksi suositellaan, että LDD-komentoja ei tulisi käyttää epäluotettavilla lähteillä, koska se voi johtaa äkillisiin virheisiin ja poikkeuksiin.

LDD: n manuaalisivulla ehdotetaan vaihtoehtoista komentoa, joka koostuu objdump ja grep apuohjelmista.

 ~/$objdump -p /path/program/grep NEEDED

LDD on yksi niistä heikentyneistä ohjeista, jotka oikein käytettynä voivat vaikuttaa merkittävästi vuorovaikutukseesi käyttöjärjestelmän kanssa. Se on tehokas linkittävä komento, jolla on tietty tarkoitus, ja se varmasti toimittaa. Lisätietoja komennosta ja sen käytöstä voit suunnata LDD-komennon man-sivulle.

Leave a Reply