我可以在不破坏 LAMP 的情况下进行 dist-grade 吗?

我可以在不破坏 LAMP 的情况下进行 dist-grade 吗?

我有一个 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]? 

答案1

不,看起来您的 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 更新问题

答案2

继续进行 dist-upgrade 安全吗?

确保安全的唯一方法是执行完整的系统备份,您知道如何做并且可以轻松恢复。更好的方法是将系统复制到虚拟机中,然后在那里测试升级。

如果您没有记录准确的安装,或者您没有好的备份,那么您几乎肯定不应该将此盒子升级到新版本,即使其上的任何东西稍微重要一些。

您是否考虑过询问最初安装的人更新需要什么?

相关内容