查看Linux上程序或進程用到的依賴庫

有時候咱們會遇到這樣一個場景: 一臺Linux電腦要執行某個尚未安裝好的程序,若是有這個程序的安裝包咱們能夠直接安裝,或者聯網安裝,但若是沒有這個程序的安裝包電腦又不能聯網,咱們能夠從另外一臺已經裝了該程序的電腦(確保同樣的平臺和系統)把這個程序以及依賴庫文件拷過去,所以,你須要知道該程序用到的依賴庫。 下面介紹怎麼查看Linux上程序或進程用到的依賴庫。linux

查看可執行程序的共享庫依賴關係

$ ldd /path/to/programvim

$ ldd /bin/ls
	linux-vdso.so.1 =>  (0x00007fff73b06000)
	libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f0ba2672000)
	libacl.so.1 => /lib/x86_64-linux-gnu/libacl.so.1 (0x00007f0ba246a000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f0ba20a3000)
	libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f0ba1e65000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f0ba1c61000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f0ba28b9000)
	libattr.so.1 => /lib/x86_64-linux-gnu/libattr.so.1 (0x00007f0ba1a5b000)

注意!並不推薦爲任何不可信的第三方可執行程序運行ldd,由於某些版本的ldd可能會直接調用可執行程序來明確其庫文件依賴關係,這樣可能不安全。安全

取而代之的是用一個更安全的方式來顯示一個未知應用程序二進制文件的庫文件依賴,使用以下命令: $objdump -p /path/to/program | grep NEEDEDcode

$ objdump -p /bin/ls | grep NEEDED
  NEEDED               libselinux.so.1
  NEEDED               libacl.so.1
  NEEDED               libc.so.6

查看運行進程的共享庫依賴關係

若是你想要找出被一個運行中的進程載入的共享庫,你能夠使用pmap命令,它報告一個進程的內存映射,也能顯示出運行進程的庫文件依賴: $ sudo pmap <PID>進程

$ pmap 5271
5271:   vim /home/linjc/test/test/a.txt
0000000000400000   2420K r-x-- vim.gnome
000000000085d000      4K r---- vim.gnome
000000000085e000     96K rw--- vim.gnome
0000000000876000     60K rw---   [ anon ]
00000000023b7000   4276K rw---   [ anon ]
00007fba38e1f000     44K r-x-- libnss_files-2.19.so
00007fba38e2a000   2044K ----- libnss_files-2.19.so
00007fba39029000      4K r---- libnss_files-2.19.so
00007fba3902a000      4K rw--- libnss_files-2.19.so
00007fba3902b000     44K r-x-- libnss_nis-2.19.so
00007fba39036000   2044K ----- libnss_nis-2.19.so
00007fba39235000      4K r---- libnss_nis-2.19.so
00007fba39236000      4K rw--- libnss_nis-2.19.so
00007fba39237000     92K r-x-- libnsl-2.19.so
00007fba3924e000   2044K ----- libnsl-2.19.so
00007fba3944d000      4K r---- libnsl-2.19.so
00007fba3944e000      4K rw--- libnsl-2.19.so
00007fba3944f000      8K rw---   [ anon ]
00007fba39451000     36K r-x-- libnss_compat-2.19.so
00007fba3945a000   2044K ----- libnss_compat-2.19.so
00007fba39659000      4K r---- libnss_compat-2.19.so
00007fba3965a000      4K rw--- libnss_compat-2.19.so
00007fba3965b000      4K -----   [ anon ]
00007fba3965c000   8192K rw---   [ anon ]
00007fba39e5c000   5748K r---- locale-archive
......
相關文章
相關標籤/搜索