*ldconfig [#t6bc5d48] 共有(シェアード)ライブラリをLinuxに認識させるコマンド。 “/etc/ld.so.conf”に記述したPATHに対してリンクを張っていく ~ *ソースからビルド・インストールした時 [#b0690a9d] 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 LDCONFIG_FILE=/etc/ld.so.conf.d/user-make.conf 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 LIB_DIR=`ls ${DIRECTORY} | egrep -i "(lib|lib64)"` if ! [ "${LIB_DIR}" = "" ]; then echo ${DIRECTORY}/${LIB_DIR} >> ${LDCONFIG_FILE} fi 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