君は心理学者なのか?

大学時代に心理学を専攻しなぜかプログラマになった、サイコ(心理学)プログラマかろてんの雑記。

lddコマンドでプログラムが参照している共有ライブラリ一覧を取得する(LPIC対策)〜依存関係とは何か〜

共有ライブラリとは

共有ライブラリとは、

「いろんなプログラムから使えるプログラムの部品」

実際に共有ライブラリをみてみる

たとえばvimが使用している共有ライブラリ。

$ ldd /usr/local/bin/vim
    linux-vdso.so.1 =>  (0x00007ffcae5e8000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f5dfe3ef000)
    libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007f5dfe1ce000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f5dfdfca000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f5dfdc36000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f5dfe673000)

たとえばgit。

$ ldd /usr/local/bin/git
    linux-vdso.so.1 =>  (0x00007fff94977000)
    libz.so.1 => /lib64/libz.so.1 (0x00007fd9d8d51000)
    libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007fd9d896c000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd9d874f000)
    librt.so.1 => /lib64/librt.so.1 (0x00007fd9d8547000)
    libc.so.6 => /lib64/libc.so.6 (0x00007fd9d81b3000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007fd9d7faf000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fd9d8f67000)

vimとgitでは、

libc.so.6というライブラリを共通で使っていることがわかる。

なお、使っているライブラリとプログラムの間には、

「依存関係」

がある。

yumはこの依存関係を解決してパッケージをinstallしているのかな。

依存関係というものがぼんやりとわかった気がする。