共有ライブラリの確認(ldd)と設定(ldconfig)

「lddコマンド」「ldconfigコマンド」を利用した、共有ライブラリの確認と設定方法について紹介します。

共有ライブラリの確認

プログラムで必要とする共有ライブラリを表示するには lddコマンド を利用します。

下記利用例です。

$ ldd /bin/find
        linux-vdso.so.1 =>  (0x00007ffcfa5a1000)
        librt.so.1 => /lib64/librt.so.1 (0x00007ff4eaa2a000)
        libm.so.6 => /lib64/libm.so.6 (0x00007ff4ea728000)
        libselinux.so.1 => /usr/lib64/libselinux.so.1 (0x00007ff4ea507000)
        libc.so.6 => /lib64/libc.so.6 (0x00007ff4ea143000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff4e9f27000)
        /lib64/ld-linux-x86-64.so.2 (0x00007ff4eac32000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007ff4e9d23000)
$ 
$ ldconfig -p | grep libpthread.so.0
        libpthread.so.0 (libc6,x86-64, OS ABI: Linux 2.6.35) => /lib64/libpthread.so.0

まず、findコマンドで必要な共有ライブラリを調べてます。

利用している共有ライブラリの1つである libpthread.so.0 が現在の共有ライブラリキャッシュに保存されているか ldconfig -p で調べています。

共有ライブラリの設定

検索順序

共有ライブラリは以下順序で検索されます。

  1. 環境変数 LD_LIBRARY_PATH で指定されたディレクトリパス配下
  2. /etc/ld.so.cache ファイルで指定されたディレクトリパス配下
  3. /lib/usr/lib ディレクトリ配下

個人の環境のみでパスを通したいときは LD_LIBRARY_PATH にパスを追加し、
システム全体でパスを通したいときは /etc/ld.so.cache ファイルにパスを追加します。

「/etc/ld.so.cache」ファイルの更新

以下手順で更新します。

  1. /etc/ld.so.conf ファイルにディレクトリパスを追加。
  2. ldconfigコマンド を実行 ⇒ /etc/ld.so.conf を参照し、 /etc/ld.so.cache を作成します。

共有ライブラリがインストールされてない場合

以下のようのに not found と表示されている状態ではプログラムを実行することができません。

$ ldd chrome | grep "not found"
        libXcursor.so.1 => not found
        libXss.so.1 => not found
        libatk-1.0.so.0 => not found
        libatk-bridge-2.0.so.0 => not found
        libatspi.so.0 => not found
        libgtk-3.so.0 => not found
        libgdk-3.so.0 => not found
        libgdk_pixbuf-2.0.so.0 => not found

この場合、共有ライブラリをインストールする必要があります。

yum を例にインストール作業を進めます。まず、インストールするパッケージを検索します。
yum provides を利用するとファイル名から、そのファイルを提供しているパッケージを検索できます。

$ yum provides */libXcursor.so.1
Loaded plugins: priorities, update-motd, upgrade-helper
libXcursor-1.1.14-2.1.9.amzn1.i686 : Cursor management library
Repo        : amzn-main
Matched from:
Filename    : /usr/lib/libXcursor.so.1



libXcursor-1.1.14-2.1.9.amzn1.x86_64 : Cursor management library
Repo        : amzn-main
Matched from:
Filename    : /usr/lib64/libXcursor.so.1

検索でヒットした libXcursor というパッケージをインストールします。

yum install libXcursor
【エンジニア向け】仕事を見つける方法

転職する

転職エージェントを活用する

転職サイトの場合、自身でサイト上から企業を探す必要があります。 一方「レバテックキャリア」 などの転職エージェントの場合、エージェントが企業を紹介してくれます。エージェントが間に入ることにより、日程調整や、条件交渉などもサポートしてくれます。

転職ドラフトを活用する

転職ドラフト」は、 企業がITエンジニアをドラフトという形で指名するサービスです。年収が最初に提示されるなどのメリットがあります。 ただ、初回登録時にレジュメ作成が必要で、すでにエンジニア経験が豊富にあるエンジニア向けのサービスかと思います。 レジュメ作成が手間ですが、自身のキャリアを見直す機会になり、他の仕事探しにも役立つはずです。

エンジニア転職保証のあるスクールを活用する

ある程度、開発経験のあるかたであれば、独学で必要なスキルを身につけることができるはずです。ただ、別業種からエンジニアに転職したい場合など、1から独学で学ぶのはハードルが高いです。そういった方は、スクールの活用を検討しても良いと思います。 「TechAcademy」は、エンジニア転職保証コースを提供しています。給付金制度の対象講座として認定されているため、金銭面の負担も抑えることができます。

フリーランスとして活動する

レバテックフリーランス」「ITプロパートナーズ」「ギークスジョブ」は、フリーランスエージェントサービスです。 エージェントによって、支払いサイトなど細かい違いはありますが、まずは良い案件を見つけることが重要です。 登録自体は無料なので、複数エージェントに登録して、より多くの案件を紹介してもらうのがおすすめです。

logo
わくわくBank.
技術系の記事を中心に、役に立つと思ったこと、整理したい情報などを掲載しています。