我想将我的CentOS 6.4服务器从php53 (epel存储库)升级到php53u (尤斯存储库)。我已经启用了尤斯存储库,但我犹豫不决,因为服务器上有生产网站。
(因为生产站点在Drupal 7中,所以我想保持在5.3的轨道上,但我也想安装一个Drupal 8开发站点,它至少需要5.3.10 - epel只给我5.3.3)
有人能告诉我什么是最安全的方法吗?
几分钟的休息时间是可以接受的,但不是更多。
发布于 2013-08-06 21:33:03
好吧,这就是我所做的,成功的和不成功的:
三种情况:
yum erase php yum install php53u php53u-common php53u-xml php53u-devel php53u-mysql php53u-pecl php53u-gd最后,没有停机,只是对httpd进行了优雅的重新加载。
发布于 2013-08-26 13:39:30
我假设您的命令应该放在两行。我编辑了它以反映这一点。
这里的问题是"yum擦除php“也将提取依赖项。这意味着您将丢失所有安装的依赖PHP的包。有一个名为replace的yum命令。但它并不总是存在,有时.惊喜。但不是很好。
因此,我更喜欢使用yum shell。完成操作的命令如下所示:
yum shell
erase php
install php53u php53u-common php53u-xml php53u-devel php53u-mysql php53u-pecl php53u-gd
ts
run因此,我们:
yum shelly/n提示符以供批准。为了确保我真的得到了所有的东西,大家都知道我写了一篇简短的bash文章。类似于:
rpm -qa --queryformat '%{NAME}-%{VERSION}.%{ARCH}\n' | grep -E '^php53[^u].*5\.3' | tr '\n' ' '
rpm -qa --queryformat '%{NAME}-%{VERSION}.%{ARCH}\n' | grep -E '^php53[^u].*5\.3' | sed 's/php53/php53u/;s/-5\.3\..*//'第一行给出了我在erase之后在yum shell中放置的包列表。第二行给出了要放在install之后的包列表。请注意,您可能需要手动处理一些辅助包(例如来自PECL的包)。在rpm -qa | grep php | grep -vE '^php53.*5\.3'上使用一些变体来跟踪这些变量。不过,它们应该是罕见的。
发布于 2014-06-07 16:08:17
我的问题主要围绕着“phP53--与php--公共的冲突”问题。这个盒子是一个旧的服务器,我打算在把它放到生产机器上之前测试一些代码。它正在运行Centos 5,过去是生产版,但现在被降级到测试阶段。它太老了,不能升级到Centos 6x,没有新的肠子,所以我现在只能使用它了。
所以..。实际上,直到我在网上偶然发现了这个想法,才起了作用:
安装epel和ius存储库。删除所有php包,安装上述答案中反映的所有php53u包。
我根本没有用"yum擦除“。
https://serverfault.com/questions/525776
复制相似问题