ਲੀਨਕਸ ਵਿੱਚ "ldd" ਕਮਾਂਡ ਦੀ ਵਰਤੋਂ ਕਰਨਾ

Ldd ਕਮਾਂਡ ਨੂੰ ਕਿਸੇ ਵੀ ਦਿੱਤੇ ਗਏ ਪ੍ਰੋਗਰਾਮ ਦੁਆਰਾ ਤੁਹਾਨੂੰ ਲੋੜੀਂਦੀਆਂ ਸਾਂਝੀਆਂ ਲਾਇਬ੍ਰੇਰੀਆਂ ਦਿਖਾਉਣ ਲਈ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ.

ਇਹ ਉਦੋਂ ਕੰਮ ਕਰਨ ਲਈ ਲਾਭਦਾਇਕ ਹੈ ਜਦੋਂ ਲਾਪਤਾ ਨਿਰਭਰਤਾ ਹੈ ਅਤੇ ਲੁਕੀਆਂ ਫੰਕਸ਼ਨਾਂ ਅਤੇ ਚੀਜ਼ਾਂ ਨੂੰ ਸੂਚੀਬੱਧ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ.

ldd ਕਮਾਂਡ ਸੰਟੈਕਸ

ਇਹ ਸਹੀ ਸੰਟੈਕਸ ਹੈ ਜਦੋਂ ldd ਕਮਾਂਡ ਵਰਤਦੀ ਹੈ:

ldd [OPTION] ... FILE ...

ਇੱਥੇ ਉਪਲੱਬਧ ldd ਕਮਾਂਡ ਸਵਿੱਚ ਹੁੰਦੇ ਹਨ ਜੋ ਉਪਰੋਕਤ ਕਮਾਂਡ ਵਿੱਚ [OPTION] ਸਪਾਟ ਵਿੱਚ ਪਾਏ ਜਾ ਸਕਦੇ ਹਨ:

--help ਇਹ ਮੱਦਦ ਛਾਪੋ ਅਤੇ ਬੰਦ ਕਰੋ - ਵਿਵਰਜਨ ਪ੍ਰਿੰਟ ਵਰਜਨ ਜਾਣਕਾਰੀ ਅਤੇ ਬੰਦ ਕਰੋ- d, - data-relocs ਪ੍ਰਕਿਰਿਆ ਡਾਟਾ relocations -r, - ਫੰਕਸ਼ਨ-ਰੀਲੌਕਸ ਪ੍ਰਕਿਰਿਆ ਡਾਟਾ ਅਤੇ ਫੰਕਸ਼ਨ ਰੀਲੋਕੇਸ਼ਨ -u, - ਵਰਤਿਆ ਪ੍ਰਿੰਟ ਨਾ ਵਰਤੇ ਸਿੱਧੀਆਂ ਨਿਰਭਰਤਾ -v, --verbose ਸਾਰੇ ਜਾਣਕਾਰੀ ਛਾਪੋ

Ldd ਕਮਾਂਡ ਨੂੰ ਕਿਵੇਂ ਵਰਤਣਾ ਹੈ

ਕਿਸੇ ਵੀ ldd ਕਮਾਂਡ ਤੋਂ ਹੋਰ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਤੁਸੀਂ ਹੇਠਲੀ ਕਮਾਂਡ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ:

ldd -v / path / to / program / executable

ਆਊਟਪੁੱਟ ਵਰਜ਼ਨ ਜਾਣਕਾਰੀ ਅਤੇ ਨਾਲ ਹੀ ਸ਼ੇਅਰਡ ਲਾਇਬਰੇਰੀਆਂ ਨੂੰ ਮਾਰਗ ਅਤੇ ਐਡਰੈੱਸ ਵੇਖਾਉਦੀ ਹੈ, ਇਸ ਤਰਾਂ:

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 path / to / program

ਆਊਟਪੁਟ ਹੇਠ ਦਿੱਤੇ ਅਨੁਸਾਰ ਹੈ:

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 ਦੀ ਲੋੜ ਹੈ

ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਲਈ ਪਾਥ ਕਿਵੇਂ ਲੱਭੀਏ

ਜੇ ਤੁਸੀਂ ਆਪਣੀ ਨਿਰਭਰਤਾ ਨੂੰ ldd ਨਾਲ ਲੱਭਣਾ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ ਤੁਹਾਨੂੰ ਕਿਸੇ ਐਪਲੀਕੇਸ਼ਨ ਲਈ ਪੂਰਾ ਮਾਰਗ ਦੇਣਾ ਪਵੇਗਾ, ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਕਈ ਤਰੀਕਿਆਂ ਨਾਲ ਕੰਮ ਕਰ ਸਕਦੇ ਹੋ.

ਉਦਾਹਰਣ ਵਜੋਂ, ਤੁਸੀਂ ਫਾਇਰਫਾਕਸ ਲਈ ਰਸਤਾ ਲੱਭ ਸਕਦੇ ਹੋ:

/ -name ਫਾਇਰਫਾਕਸ ਲੱਭੋ

ਲੱਭਣ ਕਮਾਂਡ ਨਾਲ ਸਮੱਸਿਆ ਇਹ ਹੈ ਕਿ ਇਹ ਸਿਰਫ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਦੀ ਸੂਚੀ ਨਹੀਂ ਦੇਵੇਗਾ ਪਰ ਹਰ ਥਾਂ ਫਾਇਰਫਾਕਸ ਸਥਿਤ ਹੈ, ਇਸ ਤਰਾਂ:

ਇਹ ਪਹੁੰਚ ਇੱਕ ਓਵਰਕਿਲ ਦੀ ਥੋੜ੍ਹੀ ਜਿਹੀ ਹੈ ਅਤੇ ਤੁਹਾਨੂੰ ਆਪਣੇ ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰਾਂ ਨੂੰ ਉੱਚਾ ਚੁੱਕਣ ਲਈ ਸੂਡੋ ਕਮਾਡ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਜ਼ਰੂਰਤ ਹੋ ਸਕਦੀ ਹੈ, ਨਹੀਂ ਤਾਂ ਤੁਹਾਨੂੰ ਬਹੁਤ ਜ਼ਿਆਦਾ ਇਜਾਜ਼ਤ ਨਹੀਂ ਮਿਲੇਗੀ.

ਇਸ ਦੀ ਬਜਾਏ ਐਪਲੀਕੇਸ਼ਨ ਦਾ ਮਾਰਗ ਲੱਭਣ ਲਈ whichis ਕਮਾਂਡ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਸੌਖਾ ਹੈ:

ਫਾਇਰਫਾਕਸ

ਇਸ ਵਾਰ ਆਉਟਪੁੱਟ ਇਸ ਤਰ੍ਹਾਂ ਦਿਖਾਈ ਦੇ ਸਕਦੀ ਹੈ:

/ 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 ++ .6.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 ਲਾਇਬ੍ਰੇਰੀ ਦਾ ਨਾਮ ਹੈ ਅਤੇ ਹੈਕਸਾ ਨੰਬਰ ਉਹ ਸਿਰਨਾਵਾਂ ਹੈ ਜਿੱਥੇ ਲਾਇਬ੍ਰੇਰੀ ਨੂੰ ਮੈਮੋਰੀ ਵਿੱਚ ਲੋਡ ਕੀਤਾ ਜਾਵੇਗਾ.

ਤੁਸੀਂ ਹੋਰ ਲਾਈਨਾਂ ਤੇ ਨੋਟਿਸ ਕਰੋਗੇ ਕਿ => ਚਿੰਨ੍ਹ ਇੱਕ ਮਾਰਗ ਤੋਂ ਬਾਅਦ ਹੁੰਦਾ ਹੈ. ਇਹ ਭੌਤਿਕ ਬਾਈਨਰੀ ਲਈ ਮਾਰਗ ਹੈ; ਹੈਕਸ ਨੰਬਰ ਉਹ ਐਡਰਸ ਹੈ ਜਿੱਥੇ ਲਾਇਬਰੇਰੀ ਲੋਡ ਕੀਤੀ ਜਾਏਗੀ.