У меня есть выделенный сервер с Ubuntu 8.04, и мне действительно нужно обновить php до версии 5.3, чтобы развернуть новую версию системы.
Эта версия php является версией по умолчанию в ubuntu 10.04, поэтому я подумал об обновлении ОС, но после этой попытки я потерял установку plesk, что раздражало моего клиента.
Я попытался добавить репозитории dotdeb.org, но не знаю почему, после запуска apt-get upgrade
, Я получаю эту ошибку:
# apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages have been kept back:
libapache2-mod-php5 php5 php5-cgi php5-cli php5-common php5-curl php5-gd php5-imap php5-mysql php5-sqlite php5-xsl
0 upgraded, 0 newly installed, 0 to remove and 11 not upgraded.
Есть идеи, почему это происходит?
Или вы знаете какой-либо альтернативный метод (кроме компиляции моих собственных двоичных файлов) для обновления php или обновления ubuntu без потери plesk?
Спасибо!
«Отложено» обычно означает «Я бы обновил их, но для их обновления от меня требуется выполнить какое-то другое действие, которое я не хочу выполнять». К сожалению, ничего не говорится о том, что это за «другое действие». Часто это добавление или удаление какого-либо другого пакета. dist-upgrade
(который легко установит новые пакеты или удалит другие пакеты для выполнения обновления) будет реже иметь эту проблему. Хотя в стабильном выпуске этого обычно не должно происходить. Если dist-upgrade тоже не желает этого делать, значит, проблема посерьезнее.
Неплохо сначала убедиться, что нет каких-либо ожидающих действий, которые нужно сначала выполнить, или других сломанных пакетов. Поэтому рекомендую:
apt-get --fix-missing install
Чтобы узнать, что должно произойти, нужно указать apt явно обновить пакеты. Вы можете сделать это:
apt-get install libapache2-mod-php5 php5 php5-cgi php5-cli php5-common php5-curl php5-gd php5-imap php5-mysql php5-sqlite php5-xsl
Другой вариант - попробовать aptitude, используя aptitude full-upgrade
. Поскольку aptitude обычно готов немного поработать, чтобы решить проблему зависимости, и готов предложить вам несколько способов решения проблемы зависимости. (Если он говорит «Принять это решение?», Вы можете сказать «Нет», чтобы попробовать другое решение).
Это может просто сработать, а также может просто жаловаться на то, что некоторые другие пакеты сохраняются, и в этом случае вы можете попробовать установить их и повторять это, пока не найдете и / или не решите проблему зависимости.
ОДНАКО, плохая новость заключается в том, что даже если вы исправите эту проблему с зависимостями, это НЕ должно привести вас к версии 5.3, поскольку версия php в 8.04 (hardy) - 5.2.4-2ubuntu5.19, как можно видеть. Вот. Этого следовало ожидать, поскольку номер версии 8.04 вашего Ubuntu указывает, что он был выпущен в апреле 2008 года, а в то время PHP 5.3.0 еще не был выпущен.
Если вы проверите apt-cache policy php5
, Вы не должны видеть в списке никаких версий php, кроме 5.2.4- *. Если да, значит, кто-то уже пытался вставить сюда другую версию php, что не рекомендуется для решения этой проблемы.
Если вам действительно нужен php 5.3, я рекомендую перейти на более новую версию ubuntu. Вы можете найти сторонний репозиторий, в котором 5.3 скомпилирован для hardy, но я бы заподозрил качество и своевременность исправлений безопасности (особенно с чем-то с таким же количеством регулярно обнаруживаемых проблем безопасности, как php) при использовании стороннего репозитория.
Пытаться apt-get dist-upgrade
. Не следует обновлять ваш дистрибутив, если у вас в /etc/apt/sources.list есть «харди», а только проблемные пакеты.