Назад | Перейти на главную страницу

Обновление PHP в Linux - «Пакеты не отмечены для обновления»?

Заметка: У меня есть приложение, для которого требуется версия 5.2, но на моем сервере сейчас используется версия 5.1.6.

Я новичок в администрировании серверов, но думал, что задача обновления PHP до версии 5.2+ должна быть относительно простой. В сети я обнаружил, что для этого предположительно достаточно:

yum update php

Но когда я запускаю это, выводится следующее:

[root@ip-XXX-XXX-XXX-XXX /]# php -v
PHP 5.1.6 (cli) (built: Jan 13 2010 17:13:05)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
[root@ip-XXX-XXX-XXX-XXX /]# yum update php
Loaded plugins: fastestmirror
Determining fastest mirrors
 * addons: p3plmirror02.prod.phx3.secureserver.net
 * base: p3plmirror02.prod.phx3.secureserver.net
 * extras: p3plmirror02.prod.phx3.secureserver.net
 * turbopanel-base: p3plmirror02.prod.phx3.secureserver.net
 * turbopanel-centos5: p3plmirror02.prod.phx3.secureserver.net
 * update: p3plmirror02.prod.phx3.secureserver.net
addons                       |  951 B     00:00
addons/primary               |  201 B     00:00
base                         | 2.1 kB     00:00
base/primary_db              | 1.6 MB     00:00
extras                       | 1.1 kB     00:00
extras/primary               | 107 kB     00:00
extras                         325/325
turbopanel-base              |  951 B     00:00
turbopanel-base/primary      |  72 kB     00:00
turbopanel-base                494/494
turbopanel-centos5           |  951 B     00:00
turbopanel-centos5/primary   | 2.1 kB     00:00
turbopanel-centos5             8/8
update                       | 1.9 kB     00:00
update/primary_db            | 463 kB     00:00
Setting up Update Process
No Packages marked for Update
[root@ip-XXX-XXX-XXX-XXX /]# php -v
PHP 5.1.6 (cli) (built: Jan 13 2010 17:13:05)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technolog
[root@ip-XXX-XXX-XXX-XXX /]# No Packages marked for Update
[root@ip-XXX-XXX-XXX-XXX /]# php -v
bash: No: command not found
[root@ip-XXX-XXX-XXX-XXX /]# [root@ip-XXX-XXX-XXX-XXX /]# php -v
bash: [root@ip-XXX-XXX-XXX-XXX: command not found
[root@ip-XXX-XXX-XXX-XXX /]# PHP 5.1.6 (cli) (built: Jan 13 2010 17:13:05)
bash: syntax error near unexpected token `('
[root@ip-XXX-XXX-XXX-XXX /]# Copyright (c) 1997-2006 The PHP Group
bash: syntax error near unexpected token `c'
[root@ip-XXX-XXX-XXX-XXX /]# Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
bash: syntax error near unexpected token `('
[root@ip-XXX-XXX-XXX-XXX /]#

Моя версия PHP - 5.1.6 до и после выполнения команды. Я слишком наивен с этим процессом обновления? Есть ли более подробный маршрут, который мне необходимо выбрать?

Вы пытаетесь обновить пакет, предоставленный дистрибутивом. Часто дистрибутивы не изменяют версию, а исправляют безопасность резервного копирования, что делается для поддержания более стабильной среды. Поскольку основные изменения версии могут повлиять на работу программного обеспечения, они обычно будут вноситься только между основными версиями дистрибутива.

Если вы хотите запустить последнюю версию PHP, вам, вероятно, придется создать свой собственный пакет, найти сторонний пакет или скомпилировать из исходного кода, создав свой собственный стандарт сборки.

Основываясь на предоставленных результатах, разумно предположить, что вы используете последнюю версию PHP, доступную для текущего дистрибутива, который вы используете.

Похоже, что в вики CentOS есть прохождение для обновления до 5.2 с помощью репозитория разработки.

Нет, вы не делаете ничего плохого, просто 5.1.6 - это последний доступный пакет - по крайней мере, в репозиториях CentOS. Вы можете сделать yum info php чтобы получить более подробную информацию, в том числе номер версии в репозиториях.