跳轉到內容

LPI Linux 認證/管理共享庫

來自華夏公益教科書,開放的書籍,開放的世界

詳細目標

[編輯 | 編輯原始碼]

(LPIC-1 版本 5.0)

權重:1

描述
考生應該能夠確定可執行程式所依賴的共享庫,並在必要時安裝它們。

關鍵知識領域

  • 識別共享庫。
  • 識別系統庫的典型位置。
  • 載入共享庫。

以下是用到的檔案、術語和實用程式的列表

  • ldd
  • ldconfig
  • /etc/ld.so.conf
  • LD_LIBRARY_PATH

共享庫

[編輯 | 編輯原始碼]

庫是一組函式,程式可以使用它們來實現其功能。在構建(連結)程式時,這些庫可以靜態或動態地連結到可執行檔案。靜態連結意味著最終程式將包含其檔案內的庫函式。(lib.a)動態連結意味著在程式需要執行時,需要將需要的庫載入到 RAM 中。(lib.so)

所有標準庫的預設目錄為

  • /lib:主要用於 /bin 程式。
  • /usr/lib:主要用於 /usr/bin 程式。

檔案/etc/ld.so.conf用於系統指定其他庫位置。要構建執行時載入程式使用的所有可用庫的快取檔案,請使用 ldconfig。檔案/etc/ld.so.cache將被生成。

庫依賴

[編輯 | 編輯原始碼]

要列印共享程式或庫依賴項,請使用 ldd。

ldd [-vdr] program|library

示例

$ ldd -d -v /bin/cp
  libc.so.6 => /lib/libc.so.6 (0x40027000)
  /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

  Version information:
  /bin/cp:
               libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
               libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
               libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
               libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
  /lib/libc.so.6:
               ld-linux.so.2 (GLIBC_2.1.1) => /lib/ldlinux.so.2
               ld-linux.so.2 (GLIBC_2.2.3) => /lib/ldlinux.so.2
               ld-linux.so.2 (GLIBC_2.1) => /lib/ldlinux.so.2
               ld-linux.so.2 (GLIBC_2.2) => /lib/ld-linux.so.2
               ld-linux.so.2 (GLIBC_2.0) => /lib/ld-linux.so.2

執行時載入器

[編輯 | 編輯原始碼]

執行時載入程式ld.so找到程式所需的庫,並將其載入到 RAM 中。ld.so 的搜尋順序是

  • LD_LIBRARY_PATH
  • 快取檔案 /etc/ld.so.cache
  • 預設目錄 /lib 和 /usr/lib。


華夏公益教科書