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

Могу ли я выполнить дистанционное обновление, не сломав LAMP?

У меня есть Debian 5 VPS, который запускает стек LAMP и Redmine (Ruby) и DokuWiki для меня и некоторых клиентов, которые можно использовать в организационных целях.

А apt-get upgrade запрос говорит, что много пакетов будет задержано, но apt-get dist-upgrade запрос, кажется, приводит к пугающему (для меня) списку пакетов, которые будут удалены. Они мне понадобятся для LAMP?

Вот история из командной строки:

user@machine:~$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages have been kept back:
  bind9 bind9-host bind9utils dnsutils libapache2-mod-php5 libbind9-50 libdns55 libisccc50
  libisccfg50 liblwres50 mysql-client-5.1 mysql-server-5.1 mysql-server-core-5.1 php5 php5-apc
  php5-cli php5-common php5-curl php5-gd php5-imagick php5-imap php5-mcrypt php5-mysql
  php5-suhosin php5-tidy
0 upgraded, 0 newly installed, 0 to remove and 25 not upgraded.
user@machine:~$ sudo apt-get dist-upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages will be REMOVED
  libapache2-mod-php5 libdns55 libisc52 mysql-server mysql-server-5.1 php5 php5-cli php5-curl
  php5-gd php5-imagick php5-imap php5-mcrypt php5-mysql php5-tidy
The following NEW packages will be installed
  libdb4.8 libdns58 libisc50 liblqr-1-0 libltdl7 libonig2 libqdbm14
The following packages have been kept back:
  mysql-client-5.1
The following packages will be upgraded:
  bind9 bind9-host bind9utils dnsutils libbind9-50 libisccc50 libisccfg50 liblwres50
  mysql-server-core-5.1 php5-apc php5-common php5-suhosin
12 upgraded, 7 newly installed, 14 to remove and 1 not upgraded.
Need to get 7698kB of archives.
After this operation, 25.9MB disk space will be freed.
Do you want to continue [Y/n]? n
Abort.

Безопасно ли продолжать dist-upgrade?

Обновление с выводом из apt-get dist-upgrade -V:

The following packages will be REMOVED
   libapache2-mod-php5 (5.3.5-0.dotdeb.1)
   libdns55 (9.6.ESV.R2+dfsg-0+lenny1)
   libisc52 (9.6.ESV.R1+dfsg-0+lenny2)
   mysql-server (5.1.54-0.dotdeb.1)
   mysql-server-5.1 (5.1.54-0.dotdeb.1)
   php5 (5.3.5-0.dotdeb.1)
   php5-cli (5.3.5-0.dotdeb.1)
   php5-curl (5.3.5-0.dotdeb.1)
   php5-gd (5.3.5-0.dotdeb.1)
   php5-imagick (5.3.5-0.dotdeb.1)
   php5-imap (5.3.5-0.dotdeb.1)
   php5-mcrypt (5.3.5-0.dotdeb.1)
   php5-mysql (5.3.5-0.dotdeb.1)
   php5-tidy (5.3.5-0.dotdeb.1)
The following NEW packages will be installed
   libdb4.8 (4.8.24-1~bpo50+1)
   libdns58 (9.6.ESV.R3+dfsg-0+lenny1)
   libisc50 (9.6.ESV.R3+dfsg-0+lenny1)
   liblqr-1-0 (0.1.0-1)
   libltdl7 (2.2.6b-2~bpo50+1)
   libonig2 (5.9.1-1)
   libqdbm14 (1.8.74-1.4)
The following packages have been kept back:
   mysql-client-5.1 (5.1.54-0.dotdeb.0 => 5.1.54-0.dotdeb.1)
The following packages will be upgraded:
   bind9 (9.6.ESV.R1+dfsg-0+lenny2 => 9.6.ESV.R3+dfsg-0+lenny1)
   bind9-host (9.6.ESV.R1+dfsg-0+lenny2 => 9.6.ESV.R3+dfsg-0+lenny1)
   bind9utils (9.6.ESV.R1+dfsg-0+lenny2 => 9.6.ESV.R3+dfsg-0+lenny1)
   dnsutils (9.6.ESV.R1+dfsg-0+lenny2 => 9.6.ESV.R3+dfsg-0+lenny1)
   libbind9-50 (9.6.ESV.R1+dfsg-0+lenny2 => 9.6.ESV.R3+dfsg-0+lenny1)
   libisccc50 (9.6.ESV.R1+dfsg-0+lenny2 => 9.6.ESV.R3+dfsg-0+lenny1)
   libisccfg50 (9.6.ESV.R1+dfsg-0+lenny2 => 9.6.ESV.R3+dfsg-0+lenny1)
   liblwres50 (9.6.ESV.R1+dfsg-0+lenny2 => 9.6.ESV.R3+dfsg-0+lenny1)
   mysql-server-core-5.1 (5.1.54-0.dotdeb.0 => 5.1.54-0.dotdeb.1)
   php5-apc (5.2.17-0.dotdeb.0 => 5.3.5-0.dotdeb.1)
   php5-common (5.2.17-0.dotdeb.0 => 5.3.5-0.dotdeb.1)
   php5-suhosin (5.2.17-0.dotdeb.0 => 5.3.5-0.dotdeb.1)
12 upgraded, 7 newly installed, 14 to remove and 1 not upgraded.
Need to get 7698kB of archives.
After this operation, 25.9MB disk space will be freed.
Do you want to continue [Y/n]? 

Нет, похоже, что довольно много вашего php и mysql удаляется и не заменяется. Я думаю, что в таком случае было бы лучше выполнить обновление через aptitude или dselect или какой-либо другой интерфейс, где вы можете узнать, ПОЧЕМУ это происходит, и исправить это или, по крайней мере, дать указание повторно добавить пакеты в список пакетов для установки, чтобы обо всем позаботиться за одну операцию.

Все они были установлены из lenny или вы использовали какой-то другой репозиторий? Тот факт, что mysql-client-5.1 все еще сохраняется на dist-upgrade, предполагает, что либо что-то закреплено за конкретной версией, которую необходимо открепить, либо mysql-client-5.1 пришел откуда-то, что не обеспечивает четкий путь обновления, чтобы выжать.

РЕДАКТИРОВАТЬ На основе вывода с -V

Эти пакеты были установлены из репозитория dotdeb, цель которого состоит в том, чтобы упаковать последние и лучшие пакеты PHP и MySQL, поскольку Debian обычно отстает на несколько версий.

Пара вещей: проверьте, не /etc/apt/preferences существует, если да, прочтите его и посмотрите, есть ли что-нибудь, кроме php и mysql, закрепленных за конкретным выпуском. Если он существует, и все это php и mysql, переименуйте его в .bak. Во-вторых, убедитесь, что Репозиторий dotdeb squeeze настроен в /etc/apt/sources.list:

deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable all

Исходя из того, что у вас установлен PHP 5.3, это, вероятно, означает, что вам нужно удалить старые строки, относящиеся к http://php53.dotdeb.org

Как только вы это сделаете, запустите apt-get update поэтому он получает текущие списки пакетов, затем apt-get dist-ugprade. Если это по-прежнему не помогает, обновите вопрос с помощью нового dist-upgrade -V

Безопасно ли продолжать установку dist-upgrade?

Единственный способ быть уверенным в своей безопасности - это выполнить полное резервное копирование системы, которое вы знаете, как легко восстановить. Еще лучше будет скопировать вашу систему в виртуальную машину, а затем протестировать там обновление.

Если у вас нет задокументированной точной установки или у вас нет хорошей хорошей резервной копии, вам почти наверняка не следует обновляться до новой версии на этом устройстве, если что-то в этом даже немного важно.

Думали ли вы спросить человека, который установил исходную версию, о том, что потребуется для обновления?