デスクトップから起動したアプリケーションにLD_LIBRARY_PATHを設定します


8

Qt CreatorをUbuntu 10.04 LTSにインストールしました。デスクトップからQt Creatorを起動すると、作業中のアプリケーションを構築できますが、実行またはデバッグできません。かなり苦労した後、LD_LIBRARY_PATHがデスクトップから実行されるアプリケーションに設定されていないことがわかりました。Qt Creatorをbash(LD_LIBRARY_PATHが.bashrcに設定されている)から起動すると、すべてが実行され、完全にデバッグされます。

実行中のすべてのアプリケーションに対してLD_LIBRARY_PATHが設定されるようにするにはどうすればよいですか?

回答:


6

これは、アプリケーション自体のバグのようです。必要なLD_LIBRARY_PATH変数を正しく設定するラッパースクリプトが必要です。ただし、そのようなスクリプトを書くときは注意してくださいLD_LIBRARY_PATH。パスの区切り文字として使用するコロンの間に文字列の空の部分を入れたくないからです。たとえば、最初に変数が空だった場合、結果としてパスが不正になる可能性があります(結果として、コロンの前に空の文字列が先行します)。

LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/some/path/for/app"

したがって、パスを追加するときは、最初に空の文字列をテストする必要があります。たとえば、シェルコードを使用します。

LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}/some/path/for/app

2

以下を含む新しいファイル/etc/ld.so.confを作成します。

# Begin /etc/ld.so.conf
/lib
/usr/lib
/usr/X11R6/lib
# whatever else #

次のコマンドを実行して、ダイナミックローダーキャッシュを更新します。

ldconfig

0

に加えて.bashrc、環境変数もに設定します.profile。このファイルはセッションによって処理およびロードされるため、ユーザーとして実行されているすべてに影響を与えるはずです。また、このファイルは、.bashrc存在する場合はBashによって読み取られないことを示していますが、まだ適用されているようです(おそらく、Bashは開始された場所からXセッションを継承しているためです)。ただし、両方のファイルに変数が含まれていても問題はありません。


運が悪かったので、.profileも作成してみました。
dwj 2010年

.profileのロード後に上書きされるため、起動時にLD_LIBRARY_PATHを設定できないUbuntu(Debian?)の「安全」機能があることをどこかで読みました。まだ回避策があります。
alfC


0

ブートアップ時にシステム全体の変更を行うには、上部の/etc/bash.bashrcに設定します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.