12
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

El Capitan では LD_LIBRARY_PATH, DYLD_LIBRARY_PATH が環境変数にならない

Posted at

シェルスクリプトから走らせると自作の共有ライブラリがみつからず四苦八苦。ターミナル(zsh)からは問題ないのに。

% sh test.sh
Library not loaded: libmockgal.so
  Referenced from: /usr/local/lib/python3.5/site-packages/mockgallib/_mockgallib.cpython-35m-darwin.so
  Reason: image not found

原因は El Capitan から LD_LIBRARY_PATH, DYLD_LIBRARY_PATH がセキュリティ強化のため環境変数にできなくなったために、/bin/sh から LD_LIBRARY_PATH が見えないことにあった。

% export LD_LIBRARY_PATH=hoge
% echo $LD_LIBRARY_PATH # 変数はある
hoge
% env | grep LD # LD_LIBRARY_PATH は環境変数にない

ログインシェル(zsh)で作業する分には良いのだけれども、シェルスクリプトでライブラリがみつからないことに。

#!/bin/sh
echo $LD_LIBRARY_PATH # 空っぽ

"System Integrity Protection (SIP)" なるものをがんばって無効にしてもよいけれど [2]、そこまでではない。あきらめて、/usr/local/lib に自作のライブラリへのリンクを作りました。

参考

1: https://github.com/meteor/meteor/issues/5431

2: http://www.macworld.com/article/2986118/security/how-to-modify-system-integrity-protection-in-el-capitan.html

12
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?