• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PATHとLD_LIBRARY_PATHの設定)

ソースインストール時のPATHとLD_LIBRARY_PATHの設定について

このQ&Aのポイント
  • ソースインストール時にPATHやLD_LIBRARY_PATHを設定する必要があるかについての質問です。
  • ソースインストール時の一般ユーザとrootユーザのPATHやLD_LIBRARY_PATHの異なりについての質問です。
  • プロファイルやld.so.confなどで固定的に設定する場合の注意点についての質問です。

質問者が選んだベストアンサー

  • ベストアンサー
  • entree
  • ベストアンサー率55% (405/735)
回答No.3

> ソースインストールする際に、事前にPATHやLD_LIBRARY_PATHを設定してから、 > ./configure → make をするよう説明しているサイトがありますが、 > インストールするときだけPATHやLD_LIBRARY_PATHを変更しても問題ないのでしょうか? インストールアプリによります。 /libまたは/usr/lib以外の場所にインストールされたライブラリとリンクされた場合、 基本的には実行するときもLD_LIBRARY_PATHの設定が必要になります。 ただし、インストール時に実行時パスが設定されている(リンカオプションの-Rまたは 環境変数LD_RUN_PATHが設定されている)場合には、実行ファイルにライブラリ検索パスが 追加されるため、実行時にLD_LIBRARY_PATHの設定が必要ありません。 拡張子が.laのファイルがインストールされている場合は自動的に実行時パスが追加 されることがほとんどですが、zlibやopensslのライブラリのようにlibtoolを使用しない アプリケーションのライブラリとリンクする場合にはconfigure完了後にconfig.status を編集して自分で実行時パスを追加する必要があります。 # configureが終わったら、config.statusを開いて、例えばzlibであれば -lz と # いう箇所を -lz -R/usr/local/libのように書き換えて ./config.status を実行し、 # その後 make する > ソースインストールする際、./configureとmakeを実行する一般ユーザのPATHや > LD_LIBRARY_PATHの示すパスと、 > make installを実行するrootユーザのPATHやLD_LIBRARY_PATHの示すパス > (または順番)が異なっていても大丈夫でしょうか? アプリケーションにも依ります。makeやmake install時にLD_LIBRARY_PATHが必要な アプリケーションはほとんど無いと思います。 > exportなどによる一時的な設定ではなく、profieや/etc/ld.so.conf(solarisでは > crleによる)などで固定で設定する場合、注意することはありますか? 認識されていることが全てでしょう。 よくWebを見ていると、Linux向けのサイトで/etc/ld.so.confに追加するような 記述があり、ミッション・クリティカルなシステムでもそれを真似ているケースも 散見されますが、OS全体に影響を与え下手するとOSの動きが変わってしまうリスク さえあります。なので、できるだけ設定すべきではないでしょう。ましてや先頭に 追加するのはもってのほかです。極力影響度が少ない実行時パスやLD_LIBRARY_PATHを 使うのが望ましいでしょう。

type-slave
質問者

お礼

丁寧な説明ありがとうございました。 おかげでいくつかの疑問が解消されました。 まだ自分自身、しっかりとした認識ができていませんが、説明の中で出てきた 単語をヒントにさらに調べてみたいと思います。

その他の回答 (2)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

(1),(2) ちょっと冷静に考えれば、「必要なライブラリやコマンドが見付からない可能性がある」という致命的な問題があることがわかると思うのですが。

type-slave
質問者

補足

その問題について悩んでいます。 サービスを実行するユーザ(多くはrootだとも思いますが)のPATHとLD_LIBRARY_PATHが示すパスは、makeまで実行する一般ユーザのそれを含んでいなければならないということになるのでしょうか? そうでなければ、makeした時点で、ライブラリ等のパスが絶対パスでコンパイルされるのではないか?とも思っています。

  • 0909union
  • ベストアンサー率39% (325/818)
回答No.1

なぜ、この投稿にスレが付かないか、考えて、分析してから、これを読んでください。 1番の答え。 未経験者の発言。机上で質問(当たり前か=頭の中だけで考えていると言う意味)であるので、なぜ、こんな変な質問をだしてくるのか。みなさん、釣りと思ってしまう。 2番の答え。 これも1番と同じ。 3番の答え。 言っている事が意味不明。 全体として、ちゃんと、意味を分かって物事をすすめるようにしましょう。 LD_LIBRARY_PATHが何を意味するのか、pathとは何か、何のために環境変数があるのか? 一般ユーザーと、開発環境は違うの当たり前。最終ビルドして、他人に渡すわけだから(そのように考える事)、その環境で動作するように、設計、構築してください。 ちなみに「export」とはexportコマンドの事を指すのですか?

type-slave
質問者

補足

詳しい人からしてみれば未経験者ですが、あなたからしてみればそういう人は質問してはダメなんですね。

関連するQ&A