Linux માં "ldd" આદેશનો ઉપયોગ કરવો

Ldd આદેશનો ઉપયોગ તમને આપેલ કોઈપણ પ્રોગ્રામ દ્વારા આવશ્યક શેર્ડ લાઇબ્રેરીઓ બતાવવા માટે કરી શકાય છે.

ગુમ થયેલી નિર્ભરતા હોય છે અને ગુમ થયેલ કાર્યો અને ઑબ્જેક્ટ્સની સૂચિમાં ઉપયોગ કરવા માટે આનો ઉપયોગ કરવા માટે આ ઉપયોગી છે.

ldd આદેશ સિન્ટેક્સ

આ યોગ્ય વાક્યરચના છે જ્યારે ldd આદેશ વાપરી રહ્યા હોય:

ldd [વિકલ્પ] ... ફાઇલ ...

અહીં ઉપલબ્ધ ldd આદેશ સ્વીચ છે જે ઉપરોક્ત આદેશમાં [OPTION] સ્થાનમાં સામેલ કરી શકાય છે:

- આ મદદ છાપી અને બહાર નીકળો - પ્રિન્ટ વર્ઝન માહિતી અને બહાર નીકળો- d, - ડેટા રીલોક્સ પ્રક્રિયા ડેટા રીલેક્શન્સ -આર, --ફંક્શન-રિલોક્સ પ્રક્રિયા માહિતી અને વિધેય પુન: સ્થાનો -ઉ, --ઉપયોગિત છાપિત બિનઉપયોગી સીધી નિર્ભરતા -v, --verbose તમામ માહિતી છાપો

Ldd આદેશનો ઉપયોગ કેવી રીતે કરવો

તમે કોઈપણ ldd આદેશમાંથી વધુ માહિતી મેળવવા માટે નીચેનો આદેશ વાપરી શકો છો:

ldd -v / path / to / program / એક્ઝેક્યુટેબલ

આઉટપુટ વર્ઝનની માહિતી તેમજ શેર કરેલા લાઈબ્રેરીઓના પાથો અને સરનામાંઓ બતાવે છે, જેમ કે:

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 => ​​મળેલ નથી libc.so.6 => usr / lib / libc.so.6 (0x00007fd0c6259000) / lib64 / ld-linux-x86 -64.so.2 (0x00007fd0c65fd000)

મહત્વનું: અવિશ્વસનીય કાર્યક્રમ વિરુદ્દ ldd આદેશને ક્યારેય ચલાવો નહિં કારણ કે આદેશ વાસ્તવમાં તે ચલાવી શકે છે. આ એક સલામત વિકલ્પ છે જે ફક્ત સીધી નિર્ભરતા દર્શાવે છે અને સંપૂર્ણ નિર્ભરતા વૃક્ષને નહીં: objdump -p / path / to / program | grep ને જરૂર છે

એપ્લિકેશન માટેનો પાથ કેવી રીતે મેળવવો

જો તમે તેની ડિપેન્ડન્સીને એલડીડી સાથે શોધવા માંગતા હો તો તમારે એપ્લિકેશનને સંપૂર્ણ પાથ પૂરો પાડવાનું રહેશે, જે તમે ઘણી બધી રીતો કરી શકો છો.

ઉદાહરણ તરીકે, તમે આ રીતે ફાયરફોક્સનો માર્ગ શોધી શકો છો:

/ -name ફાયરફોક્સ શોધો

શોધ આદેશ સાથે સમસ્યા, તેમછતાં, એ છે કે તે ફક્ત એક્ઝેક્યુટેબલની સૂચિ નહીં પરંતુ દરેક જગ્યાએ જે ફાયરફોક્સ સ્થિત છે તે આના જેવી જ છે:

આ અભિગમ ઓવરકિલના એક બીટ છે અને તમને તમારા વિશેષાધિકારોને સુધારવામાં સુડો આદેશનો ઉપયોગ કરવાની જરૂર પડી શકે છે, અન્યથા તમને પરવાનગી ન મળવાની ઘણી ભૂલો થઈ શકે છે

તેના બદલે અરજીના પાથને શોધવા માટે whereis આદેશનો ઉપયોગ કરવો તે વધુ સરળ છે:

ફાયરવૉક્સ

આ વખતે આઉટપુટ આના જેવું દેખાશે:

/ usr / bin / firefox

/ etc / firefox

/ usr / lib / 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 એ લાઇબ્રેરીનું નામ છે અને હેક્સ નંબર એ સરનામું છે જ્યાં લાઇબ્રેરીને મેમરીમાં લોડ કરવામાં આવશે.

તમે અન્ય લીટીઓની નોંધ લો કે જે => પ્રતીક પાથ દ્વારા અનુસરવામાં આવે છે. આ ભૌતિક દ્વિસંગીનો માર્ગ છે; હેક્સ નંબર સરનામું છે જ્યાં લાઇબ્રેરીને લોડ કરવામાં આવશે.