ldconfig

共有(シェアード)ライブラリをLinuxに認識させるコマンド。
“/etc/ld.so.conf”に記述したPATHに対してリンクを張っていく

ソースからビルド・インストールした時

OpenSSL等をソースからビルドした時には、自ら“ld.so.conf”にPATHを記述する必要がある。
しかし、システムの開発要件によっては全部のライブラリをソースからという無茶振りの時に一々追記していくのは骨が折れる作業。
なので、以下のスクリプトを作成して一括登録出来るようにする。

# mkdir /root/script
# cd /root/script
# vi ldconfig_path.sh
  • ソースコードを"/usr/local/src/source"の中で一括管理している場合
    #!/bin/sh
    
    PATH=/bin:/sbin
    
    find /usr/local -type d -name "lib" | grep -v "source" | grep -E -v 'local\/lib$' > /etc/ld.so.conf.d/user_make.conf
    ldconfig
  • バイナリが"./configure --prefix=/usr/local/hoge-0.0.0.0"で、"ln -s /usr/local/hoge-0.0.0.0 /usr/local/hoge"とかで管理している場合
    #!/bin/sh
    
    PATH=/bin:/sbin:/usr/bin
    LDCONFIG_FILE=/etc/ld.so.conf.d/user-lib.conf
    
    rm ${LDCONFIG_FILE} > /dev/null 2>&1 
    
    for DIRECTORY in `find /usr/local -maxdepth 1 -type l`
    do
        for LIB_DIR in `ls ${DIRECTORY} | egrep -i "lib" | tr '\n' ' '`
        do
            if ! [ "${LIB_DIR}" = "" ];
            then
                echo ${DIRECTORY}/${LIB_DIR} >> ${LDCONFIG_FILE}
            fi
       done
    done
    ldconfig
# chmod 750 ldconfig_path.sh
# chown root.root ldconfig_path.sh
# ./ldconfig_path.sh