Iuscommunityリポジトリを使用してCentOS6ノードを実行しており、以前にインストールしたphp53uをphp54にアップグレードしたいと考えています。
ただし、これにより、php53uとphp54の間に依存関係の競合が発生します。誰かがこの問題について考えを持っていますか?
--> Running transaction check
---> Package php54-fpm.i686 0:5.4.5-1.ius.el6 will be installed
--> Processing Dependency: php-common = 5.4.5-1.ius.el6 for package: php54-fpm-5.4.5-1.ius.el6.i686
---> Package php54-Gd.i686 0:5.4.5-1.ius.el6 will be installed
---> Package php54-mbstring.i686 0:5.4.5-1.ius.el6 will be installed
---> Package php54-pecl-apc.i686 0:3.1.11-2.ius.el6 will be installed
--> Processing Dependency: php54 >= 5.3.5-1 for package: php54-pecl-apc-3.1.11-2.ius.el6.i686
--> Running transaction check
---> Package php54.i686 0:5.4.5-1.ius.el6 will be installed
--> Processing Dependency: php54-cli = 5.4.5-1.ius.el6 for package: php54-5.4.5-1.ius.el6.i686
---> Package php54-common.i686 0:5.4.5-1.ius.el6 will be installed
--> Running transaction check
---> Package php54-cli.i686 0:5.4.5-1.ius.el6 will be installed
--> Processing Conflict: php54-5.4.5-1.ius.el6.i686 conflicts php53u
--> Processing Conflict: php54-5.4.5-1.ius.el6.i686 conflicts php < 5.4
--> Finished Dependency Resolution
Error: php54 conflicts with php53u
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
Php53uを削除してみましたか?シンプルな:
yum remove php53u
に続く:
yum install php54
あなたのためにトリックをしているはずです。そうでない場合は、「rpm」ツールを使用してphp53uパッケージを削除し、依存関係をそのままにしておくことができますが、最初にインストールされているパッケージのリストを確認して、後で新しいphp54リポジトリから再インストールできるようにします。
rpm -qa | grep ^php53u.* > /root/php-packages.log
作成したリストのコピーを保管してください。私のサーバーの1つでは、このリストは次のようになります。
$ rpm -qa | grep ^php54*
php54-common-5.4.4-1.ius.el6.x86_64
php54-pdo-5.4.4-1.ius.el6.x86_64
php54-mysql-5.4.4-1.ius.el6.x86_64
php54-fpm-5.4.4-1.ius.el6.x86_64
php54-Gd-5.4.4-1.ius.el6.x86_64
php54-cli-5.4.4-1.ius.el6.x86_64
php54-5.4.4-1.ius.el6.x86_64
php54-mbstring-5.4.4-1.ius.el6.x86_64
次に、依存関係を削除せずに、これらを削除できます。
for p in $( cat /root/php-packages.log ); do rpm -e --nodeps $p; done
(ここでは「php54」を使用していることに注意してください。「php53u」を使用する必要があります)。
これを行ったら、yumを介してphp54パッケージをインストールするだけです。
yum install php54
または、すべての再インストールを自動化することもできます。
yum install $( cat /root/php-packages.log | sed 's/php53u/php54/g' )
完了。
これが全体のワンライナーです:
rpm -qa | grep ^php53u.* > /root/php-packages.log; for p in $( cat /root/php-packages.log ); do rpm -e --nodeps $p; done; yum install $( cat /root/php-packages.log | sed 's/php53u/php54' ) -y
これがお役に立てば幸いです:-)
これを行う別の方法は、yumプラグインを使用することですyum-plugin-replace
( http://iuscommunity.org/pages/IUSClientUsageGuide.html で説明されているように)。
yum install yum-plugin-replace
その後、次の方法で交換できます。
yum replace php53u --replace-with php54
これは、必要に応じてインストールされているすべての依存関係の代替を見つけようとするため、iusが推奨する方法です。