1

apcの rpm を作成しています。仕様ファイルを作成しているときに、一部のコマンドには、コンパイル時に必要なパスが変更され続ける可能性があることに気付きました。たとえば。これらのコマンドは、ビルド時に実行する必要があります。

$ /usr/local/php/bin/phpize
$ ./configure --with-php-config=/usr/local/php/bin/php-config

phpizeただし、ファイルの完全なパスはphp-config変更される場合があります。では、これらのパスを仕様ファイルにハードコーディングしないようにするには、どうすればこの依存関係を防ぐことができますか。

4

1 に答える 1

1

これらのコマンドはビルド時に使用されるため、この問題の理想的な解決策は次のとおりです。

  1. これらのコマンドまたはパスを提供するディストリビューション上のパッケージを見つけます。たとえば、php-config は、Fedora オペレーティング システムの php-devel パッケージによって提供されます。fedora では、 を使用して見つけることができます。yum whatprovides "*/php-config"システムにすでにインストールされている場合は、を使用して見つけることができますrpm -qf /path/to/command

  2. パッケージがわかったら、spec ファイルに BuildRequire タグとして追加します。手順 2 では、ハード コードされたパスを使用している場合でも、spec ファイルからパッケージをビルドするたびにパスが常に存在するようにします (これはもちろん最善の方法ではありません)。

  3. /usr/ の代わりに %{_prefix} を使用できます。これは、この rpm を構築しているディストリビューションで利用可能なマクロに完全に依存します。パス マクロのマクロ ファイルを確認します。一般的なマクロ定義を含む 1 つのリンクは、こちらです。

于 2012-10-25T13:00:11.997 に答える