3

CentOS5.1でyumを使用しています-ソースからPHP5.2.8を手動でコンパイルしましたが、yumを使用して他のパッケージをインストールしています。peclを介してPHP拡張機能をインストールする必要があり、phpizeもインストールする必要があります。ただし、次の手順を実行すると、依存関係エラーが発生します。

sudo yum install php-devel

エラー:依存関係がありません:php=5.1.6-20.el5_2.1がパッケージphp-develに必要です

実際には新しいバージョンのPHPがすでにインストールされているので、yumにこれを無視させるにはどうすればよいですか?ソースからpecl/phpizeを手動でコンパイルする必要がありますか?確かに、これまで問題が発生したことはありませんでした。これは、コンパイルとyumインストールの組み合わせが原因のようです。

何かご意見は?

ありがとう、カイル

4

3 に答える 3

4

一般に:

自分でビルドすると、 に入り/usr/local、 内の他のものからのみアクセスできます/usr/local

RPM/Yum からインストールする場合は、 に入り/usr、 および からアクセスでき/usrます/usr/local

したがって、ホーム コンパイルされた PHP を使用して PHP ツールをインストールする場合は/usr/local、同様にインストールします。通常、GNU タイプのソフトウェアでは、次のようになります。

   ./configure --prefix=/usr/local && make && sudo make install

また

   make prefix=/usr/local all && sudo make prefix=/usr/local install

…ただし、プレフィックス設定を上書きしない限り、ほとんどのソフトウェアはデフォルトであるはずです。/usr/local

RPM に基づいたパッケージを「手作業でビルド」したい場合は、以下を使用できます。

   yumdownloader --source WHATEVER-PACKAGE
   rpm -i WHATEVER-PACKAGE.rpm
   rpmbuild -bp ~/rpm/SPECS/WHATEVER-PACKAGE.spec

(あなたのパスに相当するもの~/rpmは異なる場合があります;rpmbuild --showrcどこにあるかがわかります)

.src.rpmこれにより、アップストリーム (元の作成者の) ソース (通常は tarball) と OS 固有のパッチを含むパッケージがダウンロードされます。ソースを~/rpm(または rpmbuild プレフィックス) にインストールします。次に、ソースを解凍し、パッチを適用します~/rpm/BUILD/WHATEVER-PACKAGE/

そこから、/usr/localプレフィックスを使用して、構成/作成手順を自分で実行できます

もちろん、RPM からインストールする方がはるかに簡単です :-)

于 2012-02-22T15:40:31.423 に答える
3

yum手作業でコンパイルされたphpバージョンについては何も知りません。を使用してパッケージをインストールすることにより、RPMの依存関係の解決をバイパスし、rpm --nodepsそれが機能することを期待できます。

または、自分でコンパイルしたphpバージョンを別のディレクトリにインストールして、yumの古いバージョンと共存できるようにします。そうすれば、誰もが満足できます(それが可能かどうかはわかりませんが、アプリがphpへのハードコードされたパスを使用しているかどうかによって異なります)。 。

または、運が良ければ、EPELRPMForgeなどのサードパーティリポジトリに新しいphpパッケージが含まれている可能性があるため、独自にコンパイルする必要はありません。

于 2009-03-23T19:20:21.753 に答える
2

経験則として、システムで 1 つのパッケージ管理を行うほうがよいため、RPMS ですべてをパッケージ化し、yum を介して管理する方がよいでしょう。長期的には多くの時間を節約できます。

ソースから手動で何か (fe PHP) コンパイラーが絶対に必要な場合は、stow/checkinstall/... またはソースでコンパイルされたものの基本的なパッケージ管理を実行できるその他のソリューションを使用してください。

あなたの質問に関して、yum には強制インストールのオプションがないため、必要なパッケージの RPM をダウンロードして「rpm -i --force file.rpm」を実行することにより、依存関係のチェックを無効にすることができます。

于 2009-03-18T23:10:21.580 に答える