我有一个 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 安全吗?
确保安全的唯一方法是执行完整的系统备份,您知道如何做并且可以轻松恢复。更好的方法是将系统复制到虚拟机中,然后在那里测试升级。
如果您没有记录准确的安装,或者您没有好的备份,那么您几乎肯定不应该将此盒子升级到新版本,即使其上的任何东西稍微重要一些。
您是否考虑过询问最初安装的人更新需要什么?