Cannot configure PHP from source to use the desired Kerberos library path
まだ誰も着手していません。
- 主要言語
- C
- スター
- 40.4k
- フォーク
- 8.1k
- 平均マージ
- 2日 13時間
- マージ済み PR(30日)
- 96
説明
Description
On Oracle Linux 8
I configure, make and make install my Kerberos library as follows
./configure --prefix=/kerberos-1.21.3 --enable-dns-for-realm
The above creates the folder /kerberos-1.21.3/lib with all my libraries in it.
I manually amend all /kerberos-1.21.3/lib/pkgconfig/*.pc files to contain the value libdir=/library
I then relocate an entire copy of the created library folder to my desired library location /library as follows:
cp /kerberos-1.21.3/lib/* /library
I "configure", "make" and "make install" PHP, with configure looking as follows:
env LD_LIBRARY_PATH=/library PKG_CONFIG=/usr/bin/pkg-config PKG_CONFIG_PATH=/library/pkgconfig KERBEROS_LIBS="-L/library -Wl,-rpath,/library" KERBEROS_CFLAGS="-I/kerberos-1.21.3/include" ./configure --prefix=/myphp --with-kerberos
Everything completes as normal.
As can be seen above, the environment I have set is:
- LD_LIBRARY_PATH=/library
- PKG_CONFIG_PATH=/library/pkgconfig
- KERBEROS_LIBS="-L/library -Wl,-rpath,/library"
- KERBEROS_CFLAGS="-I/kerberos-1.21.3/include"
This points all library information to the /library directory, and only the include header files directory to my original kerberos build location (via KERBEROS_CFLAGS and the /library/pkgconfig/*.pc files includedir= value)
All the documentation I have read says that with my configuration above, running ldd /myphp/bin/php should report as:
libkrb5.so.3 => /library/libkrb5.so.3
but when I run it, for libkrb5.so.3 I get the following:
libkrb5.so.3 => /kerberos-1.21.3/lib/libkrb5.so.3
Why am I getting the wrong -ie. original build - library location? I am literally tearing my hair out with this. Thanks
PHP Version
php 8.2.22
Operating System
Oracle Linux 8.10
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
提供された Kerberos パスと環境変数を使用して Oracle Linux 8.10 上で報告された PHP 8.2.22 の構成を再現し、その後 configure の出力と ldd /myphp/bin/php が報告するリンク済みライブラリを調査します。完了条件は、元の /kerberos-1.21.3/lib パスが保持される理由を特定し、文書化された、または実行可能な修正を特定することです。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- php
- 領域
- build-system
- issue の種類
- バグ
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 25/100