2009-03-18 7 views
3

CentOS 5.1でyumを使用しています - PHP 5.2.8をソースから手作業でコンパイルしましたが、yumを使用してインストールされています。私はpecl経由でPHP拡張モジュールをインストールする必要があり、phpizeもインストールする必要があります。ただし、次の操作を実行すると、依存関係のエラーが得られます。依存ソフトウェアの新しいバージョンが存在するときにyum依存関係チェックを無効にする

sudo yum install php-devel

エラー:不足している依存関係:PHP = 5.1.6-20.el5_2.1があるので、パッケージのphp-develの

によって必要とされている私は実際に新しいを持っていますPHPのバージョンが既にインストールされている場合、どうすればyumにこれを無視させることができますか?ソースからpecl/phpizeを手でコンパイルする必要がありますか?私は以前はまったく問題がなかったことは確かですが、それはコンパイルとyumのインストールの組み合わせのためだけだと思われます。

どのような考えですか?あなたはRPMSのすべてをパッケージ化し、yumを経由して、それを管理したほうが良いでしょうので、経験則として

おかげで、 カイル

+0

私はそれが手動でコンパイルするか、phpを再インストールすると思います(今度はyumから)。しかし、私は確信していません。 – andi

答えて

2

は、それは、システム内の1つのパッケージ管理を持っている方が良いでしょう。それは長期的にあなたに多くの時間を節約します。

ソースから手作業で何か(fe PHP)コンパイラを手に入れたいのであれば、stow/checkinstall/...またはソースコンパイルされたものの基本的なパッケージ管理を可能にする他のソリューションを使用してください。

あなたの質問をRegerding、あなたはyumを強制インストール

+0

'--force'は依存関係を無視するためには動作しません。 '--nodeps'を実行する必要があります。 –

3

のための任意のオプションを持っていないので、「RPM -i --force file.rpm」やって必要なパッケージのRPMをダウンロードして、依存性チェックを無効にしようとすることができyumは手作業でコンパイルされたPHPバージョンについて何も知らない。 rpm --nodepsを使用してパッケージをインストールし、RPMの依存関係の解決をバイパスして動作させることもできます。

あなたが自分でコンパイルしたPHPバージョンを別のディレクトリにインストールして、yumの古いバージョンと共存できるようにしてください。そうすれば誰でも幸せです(確かに分かりません。 PHPかどうか)。

あなたが運が良ければ、EPELRPMForgeのようなサードパーティ製のリポジトリには、新しいPHPパッケージが含まれている可能性があるので、自分でコンパイルする必要はありません。一般的に

4

あなたはそれを自分で構築する場合、それは/usr/localに入り、/usr/localで他のものにのみアクセス可能です。

RPM/Yumからインストールする場合、/usrに入り、/usr/usr/localにアクセスできます。あなたが家にコンパイルされたPHPを使用してPHPツールをインストールしたいのであれば、同様/usr/localにそれらをインストール

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

または

:一般的に、GNU型ソフトウェアで、そのようなものになるだろう
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はどこを教えてくれます)

このアップストリーム(元の作者)のソース(通常はtarball)とOS固有のパッチを含む.src.rpmパッケージをダウンロードします。ソースを~/rpm(またはrpmbuild接頭辞)にインストールします。ソースをアンパックし、そこから~/rpm/BUILD/WHATEVER-PACKAGE/

にパッチを適用し、その後、あなたは、configureを行うことができます/手順を自分で作る、/usr/local接頭もちろん

で、ちょうどRPMのからインストールする

:-)はるかに簡単です
関連する問題