スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

UbuntuのLD_LIBRARY_PATH

自分で開発したライブラリをホームディレクトリ以下の特定のディレクトリ(例えば~/lib)に置いて、他の(やはり自分で書いている)プログラムからリンクするということは、ソフトウェアを書いていればごく普通にあることだろう。

これを実現するには、環境変数LD_LIBRARY_PATHを設定すればよい…と思いきや、なにやらUbuntuを使っていると、個人ユーザレベルでは設定できないのである。.bash_profile、.profile、.xprofile、どこに記述しても無視されて、ログイン後はLD_LIBRARY_PATHは空白になってしまう。PATHなどの、他の環境変数は問題なく設定できるので、LD_LIBRARY_PATH固有の問題である。

いや、もちろん/etc/ld.so.conf.d以下のファイルで設定するとか、/etc/profileで設定するとかすれば一応設定はできる。しかしそれは、システムワイド、全ユーザ共通の設定になってしまう。全ユーザがある個人ユーザの個人ライブラリをリンクしに来る(しかも知らずに)というのは、明らかに正しい設定ではない。

調べて見たところ、一応バグとして報告されているようなのだが、原因はグラフィカルログインの後、すべてのプロセスがssh-agentなるものの子プロセスとして再設定され、ssh-agentが「セキュリティ上の配慮で」LD_LIBRARY_PATHの設定を空白で強制的に上書きするために、個人ユーザレベルの設定が無効化されてしまう、ということらしい。

セキュリティも結構であるが、*nix的にこんなに基本的な個人設定をぶち壊しにしてくれるとは、大きなお世話としか言いようがない。

対処法としては、/etc/X11/Xsession.optionsを編集し、
use-ssh-agent
の行を
no-use-ssh-agent
とすれば良いらしい。

ふー、これで一安心。

出典:LD_LIBRARY_PATH not loading from .profile nor /etc/environment
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

GM3D

Author:GM3D
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
FC2カウンター
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。