我正在研究一个新的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最低。 另外,我看到它安装了mysql 5.0.77,尽pipe目前的版本是5.5.20。 但希望MySQL 5.0将工作。 PHP 5.1不会。
所以真正的问题是():
如何修复我的PHP,使其成为最新的稳定版本(根据PHP.net 5.3.9)? 如何使我的CentOS机器更像Ubuntu一样工作,所以我不必再处理这个问题?
非常感谢。
编辑:CentOS 5.7上周由托pipe公司安装,所以我不知道他们为什么要安装CentOS的旧版本,而不是最新版本。 我至less需要PHP 3.2,所以我很欣赏如何做到这一点的build议。 我对包和存储库不是很熟悉,但似乎任何人都可以启动一个存储库,所以我很担心从一些可能感染服务器的随机存储库中安装东西。
CentOS是非常保守的红帽企业Linux的衍生产品,所以软件包更新通常比RHEL更进一步延迟。 这两种版本的软件包都会稍微老一点。
如果你正在运行CentOS 5,你应该试试CentOS 6来看看它是否适合你的需求。
如果你需要一些比CentOS 6更先进的东西,你应该看看Fedora。
后续措施:CentOS已经被“内部”带入,并且更加紧密地集成在一起。 较新的CentOS版本将会看到更严格的发布周期的好处,但是对于较早版本,这个答案仍然适用。
他们不过时; 他们是CentOS 5在其仓库中的最新版本。
为了稳定性,Red Hat(和Ubuntu)永远不会在其软件仓库中发布一个新的主要版本的软件,为了稳定性 – 你不想运行升级,并突然让你的configuration不是工作。
相反,他们将安全修复和重要的错误修复移植到操作系统发布时“稳定”的软件版本中,避免引入新function(及其错误)。
由于你在CentOS 5上,官方的软件库有一些相当老的版本。 但是不要害怕 – 你可能很容易find一个第三方仓库和你需要的软件版本。
或者,为什么不升级到6?
我会说卸载CentOS和安装Ubuntu,如果这就是你想使用的。 但是它必须是你使用的CentOS的老版本。 CentOS 6.2使用PHP 5.3和MySQL 5.1。
您可以使用Remi存储库来获取更新版本的Apache / PHP / MySQL
而且你不会让你的CentOS机器更像Ubuntu,因为它不是 Ubuntu。 这就像是说“我怎样让克莱斯勒的驾驶更像福特”。
更新回应:
我在这方面得到了一些赞成票,所以我觉得我的意图被误解了,让我试着去纠正这个问题。
我已经在我们的环境中build立了一个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仓库,正如我上面所述。 但是,如果centOS中的PHP 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是另一回事,因为MySQL 5.0是默认的CentOS仓库中唯一的MySQL。 我运行64位版本的CentOS,如果你不需要调整下面的内容来代替32位。
有几种方法可以做到这一点,但我会去与Remi存储库。 它已经存在多年了,而且使用简单的RPM文件比使用repo更容易维护。
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