共有ライブラリを含む GNU/Linux Firefox プラグインの出荷 (root アクセスなしでのインストール用)

StackOverflow https://stackoverflow.com/questions/3015411

質問

アプリケーションは Firefox プラグイン ($HOME/.mozilla/plugins からロードされる) であるため、LD_LIBRARY_PATH を設定するラッパー スクリプトは簡単なオプションではありません。

私の知る限り、RPATHは$HOMEを参照できず、絶対パスのみにすることができます。

Firefox は ~/.mozilla/plugins からプラグインを dlopen しようとしますが、失敗します (ユーザーのホーム ディレクトリのどこかにインストールされた共有ライブラリに依存しているため)。

Firefox のメニュー項目を変更して Firefox の周囲にラッパー (LD_LIBRARY_PATH を使用) を提供するのはハッキングすぎます。

共有ライブラリに依存する標準の Firefox ロード プラグインを作成するには、インストーラー スクリプトは (root アクセスなしで) 何をすべきですか?

  1. 依存関係を削除するには、その .so にすべてを埋め込むだけでよいでしょうか?
  2. リンクを完了するためのインストーラー スクリプトを作成するか、インストール段階で RPATH にパッチを適用する必要がありますか?
役に立ちましたか?

解決

$ORIGIN/lib

設定RPATHローダが私のファイルへの相対ライブラリを探しますのでます。

スクリプトは、ちょうど$HOME/.mozilla/plugins/myplugin.so

$HOME/.mozilla/plugins/lib/やライブラリへのプラグインをアンパック Wl,-rpath,'$ORIGIN/lib'を添加することにより、GCCは($がMakefileで倍増しなければならない)、またpatchelfによってコンパイル後に変更することができるもののます。

RPATHがリンカーに指定することができ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top