web-dev-qa-db-ja.com

CentOSでyumによって古いパッケージがインストールされるのはなぜですか? (具体的にはPHP 5.1)修正するには?

私は新しいCentOSサーバーで作業していますが、yumがUbuntuでの「apt-get install」のようにスムーズかつ見事に機能しないことを知って非常にイライラしています。

LAMPスタックをインストールして、私は以下を実行しました:

$ yum install php
$ yum install mysql

さらに:

$ yum install mysql-server
$ yum install mysql-devel
$ yum install php-mysql

現在実行中:

$ rpm -qa | grep php

...すべての種類のphp 5.1.6パッケージがインストールされており、最低5.2が必要であることを示しています。さらに、現在のリリースは5.5.20ですが、mysql 5.0.77がインストールされていることがわかります。しかし、うまくいけばmysql 5.0が機能するでしょう。 PHP 5.1はできません。

したがって、本当の質問は次のとおりです。

PHPを最新の安定版リリース(PHP.netによると5.3.9)にするにはどうすればよいですか?)CentOSマシンをUbuntuのように機能させるにはどうすればよいですか?これに再び対処するには?

どうもありがとう。

編集:CentOS 5.7はホスティング会社によって先週インストールされたので、なぜ最新のものではなく古いバージョンのCentOSをインストールしたのか、私にはわかりません。 PHP 3.2が少なくとも必要なので、その方法についての提案に感謝します。パッケージやリポジトリについてはあまり詳しくありませんが、誰でもリポジトリを起動できるようです。サーバーに感染する可能性のあるランダムなリポジトリからのインストールを心配しています。

14
Buttle Butkus

CentOSは非常に保守的なRed Hat Enterprise Linuxの派生物なので、パッケージの更新は一般にRHELよりもさらに遅れます。どちらのディストリビューションのパッケージも少し古いものになります。

CentOS 5を実行している場合は、CentOS 6を試して、ニーズに合っているかどうかを確認する必要があります。

CentOS 6よりももう少し最先端のものが必要な場合は、Fedoraを調べてください。

フォローアップ:CentOSは「社内」に持ち込まれ、より緊密に統合されています。 CentOSの新しいリリースでは、リリースサイクルが厳しくなるというメリットが見られますが、古いリリースでは、この答えは依然として当てはまります。

11
Magellan

彼らは時代遅れではありません。これらはCentOS 5のリポジトリにある最新のものです。

Red Hat(およびそのことについてはUbuntu)は、安定性のために、特定のOSバージョンのパッケージリポジトリにソフトウェアの新しいメジャーバージョンを公開することは決してありません。作業。

代わりに、セキュリティ修正と重要なバグ修正を、OSのリリース時に「安定」していたソフトウェアのバージョンにバックポートし、新機能(およびそのバグ)の導入を回避します。

CentOS 5を使用しているので、公式リポジトリにはかなり古いバージョンのものがあります。しかし、恐れる必要はありません。おそらく、必要なソフトウェアのバージョンを備えたサードパーティのリポジトリを簡単に見つけることができます。

または、なぜ6にアップグレードしないのですか?

6
Shane Madden

CentOSをアンインストールし、Ubuntuをインストールしたい場合は、それを使用します。ただし、使用しているCentOSの古いバージョンである必要があります。 CentOS 6.2は、PHP 5.3およびMySQL 5.1を使用します。

Remi repository を使用して、Apache/PHP/MySQLの新しいバージョンを取得できます

また、Ubuntuではないため、CentOSマシンをUbuntuのように動作させることはできません。 「クライスラードライブをフォードのよ​​うにするにはどうすればよいですか」と言うようなものです。


更新された応答:

私はこれについていくつかの反対票を得たので、私の意図は誤解されていると思います。それを修正してみましょう。

私たちの環境にVPSをセットアップしてパッケージをインストールしたので、今あなたがいるところにいるはずです:

[root@centos5 /]# cat /etc/issue
CentOS release 5.7 (Final)
Kernel \r on an \m

[root@centos5 /]# rpm -qa |grep php
php-common-5.1.6-27.el5_7.4
php-mysql-5.1.6-27.el5_7.4
php-cli-5.1.6-27.el5_7.4
php-pdo-5.1.6-27.el5_7.4
php-5.1.6-27.el5_7.4

私の最初の回答では、最新のリリースが必要だと思っていたので、前述のようにRemiリポジトリを使用する必要があります。ただし、PHP centOS内の5.3バージョンが問題ない場合(5.3.3))、次に読み進めてください。

Php53をインストールしようとすると、このパッケージはPHP 5.1パッケージと同じものをカバーするため、競合があると不平を言います。これを解決するには、すべてのPHP関連するパッケージ:

[root@centos5 /]# yum remove php*
[root@centos5 /]# rpm -qa |grep php
[root@centos5 /]# 

次に行うことは、php53で同等のパッケージをインストールすることです。

[root@centos5 /]# yum install php53 php53-cli php53-mysql
[root@centos5 /]# rpm -qa |grep php
php53-common-5.3.3-1.el5_7.5
php53-cli-5.3.3-1.el5_7.5
php53-pdo-5.3.3-1.el5_7.5
php53-5.3.3-1.el5_7.5
php53-mysql-5.3.3-1.el5_7.5

したがって、PHPは非常に簡単でした。ただし、MySQLは別の話です。MySQL5.0がデフォルトのCentOSリポジトリで唯一のMySQLだからです。必要がない場合は、64ビットバージョンのCentOSを実行します。代わりに32ビットに合うように以下を調整してください。

これにはいくつかの方法がありますが、Remiリポジトリを使用します。それは何年も前からあり、メンテナンスはプレーンなRPMファイルを使用するよりもリポで簡単です。

Remiには EPELリポジトリ が必要なので、まずは次のようにインストールします。

[root@centos5 /]# rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
Retrieving http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
warning: /var/tmp/rpm-xfer.lvLBMJ: Header V3 DSA signature: NOKEY, key ID 217521f6
Preparing...                ########################################### [100%]
   1:epel-release           ########################################### [100%]

次に、Remi repo RPMをインストールします

[root@centos5 /]# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
Retrieving http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
warning: /var/tmp/rpm-xfer.ztjinG: Header V3 DSA signature: NOKEY, key ID 00f97f56
Preparing...                ########################################### [100%]
   1:remi-release           ########################################### [100%]

次に、現在のMySQLサーバーを削除します(そうしないと、新しいサーバーをインストールしようとすると競合が発生します)。注! そこにデータベースがある場合、これを行う前にバックアップを作成してください!

[root@centos5 /]# yum remove mysql*

次に、RemiリポジトリからMySQLをインストールします。

[root@centos5 /]# yum --enablerepo=remi install mysql.x86_64 mysql-server.x86_64

MySQLを起動しようとすると、古いmysqlがいくつかのことを残したために失敗する可能性があります。私の場合、私はそれを機能させるためにいくつかのものを削除する必要がありました。これらは私のためにそれをしました:

# rm -rf /usr/share/mysql
# rm -rf /var/lib/mysql
# yum --enablerepo=remi reinstall mysql-libs
# /usr/libexec/mysqld --skip-grant &
# mysql_install_db
# /etc/init.d/mysqld stop
# /etc/init.d/mysqld start
4
Frands Hansen